locust를 이용한 부하 테스트

허준현·2021년 9월 13일
0
post-thumbnail

최근에 추천시스템을 개발하고 나서 내 추천서버가 어느 정도로 부하를 견딜 수 있는지 테스트 해보고자 하였다.

파이썬으로 추천시스템을 작성하다보니 파이썬 부하 테스트로 유명한 locust를 사용하고자 한다.

locust 불러오기

pip3 install locust

파이프 라인을 통해 locust를 다운받고 아래와 같은 실행을 통해서 버전을 확인한다.

locust --version

locust 실행하기

locust document: https://docs.locust.io/en/stable/quickstart.html
필자는 API 테스트를 해보기 위해서 HttpUser를 상속받아 테스트를 진행하였다.

또한 @task() 안에 들어가는 숫자로 가중치를 두어 숫자가 높은 API를 테스트 해볼 수 있다. 예를 들어 @task(1) 인 API 보다 @task(2) 는 2번 더 실행되는 격이다.

그리고 임시로 넣어둔 다이어리 1~16까지의 id값과 테스트 유저값 4개를 넣어두어 해당 API를 테스트 해볼 수 있는 기회였다.

recommand API 또한 위와 동일하다.
만약 API가 post로 이루어져 있다면 self.client.post("/", body) 형식으로 체크가 가능하다.

locust 실행하기

위의 코드를 test.py 로 작성을 하고 나서 locust로 실행시켜 주자

locust -f test.py


정상적으로 실행이 되었다면 위와 같이 실행되고 있는 포트 번호와 실행중인 locust 의 버전이 나올 것이다.
http://localhost:8089/ 에 접근하게 된다면 아래와 같은 사이트가 나온다.
첫번째 빈칸은 유저의 인원수를 작성하는 칸과 두번째 칸으로 유저가 투입되는 시간을 나타는 second 작성 및 마지막으로 테스트할 Host를 작성하는 것이다.

flask 서버 가동

자신이 테스트 해 볼 서버에 대해서 실행 시켜 주도록 하자. 필자는 블로그 작성을 위한 로컬로 테스트 하지만 EC2 에서 돌아가는 서버의 IP주소를 대신해서 넣으면 된다.

위의 사진을 통해서 주소가 http://125.129.73.84:5000/ 라는 것을 알았으므로 위의 마지막 칸 안에 작성해 주도록 하자.

실행 결과

shell 창에 나온 분석 결과

web 에서 확인 가능한 차트 분석 결과

서버 로그 기록

데스크 탑 사양이 나쁘지 않아 RPS 값이 28인데도 불구하고 시간이 0.12초 정도 나오는 것을 확인할 수 있다. 이 처럼 간단히 부하테스트를 할 수 있고 시각적인 그래프를 보여주는 locust를 한 번 실행해보는 것을 추천한다.

profile
best of best

1개의 댓글

comment-user-thumbnail
2022년 10월 11일

정말 감사합니다. 굿굿

답글 달기