BE
[BE] Locust 부하 테스트 (Pycharm)
셰욘
2025. 3. 5. 15:57
728x90
파이참 환경에 Locust 설치
pip install locust

locustfile.py 파일 생성
locustfile.py에 테스트하고 싶은 HTTP 요청 URL을 추가한다.
from locust import HttpUser, task, between
class UserBehavior(HttpUser):
wait_time = between(1, 5) # 1~5초 사이 대기
@task
def index_page(self):
self.client.get("/") # 메인 페이지 요청
@task
def about_page(self):
self.client.get("/about") # About 페이지 요청
locust 명령어 입력 후 테스트
locust 입력 후 테스트하면 8089 포트가 열린다.

해당 포트로 들어가면 부하 테스트를 할 수 있는 환경이 나온다.

Number of users (peak concurrency)
- 한 번에 동시에 실행될 가상의 사용자 수 (동시 접속 사용자 수)
- 예: 100이면 최대 100명의 가상 사용자가 동시 요청
Ramp up (users started/second)
- 초당 몇 명의 가상 사용자를 추가할지 설정
- 예: 10이면 매초 10명씩 사용자 증가
- 부하를 점진적으로 올릴 때 사용
Host
- 부하 테스트 대상이 되는 서버의 주소
- 예: http://localhost:8080이면 로컬에서 실행 중인 웹 서버 테스트
- 실제 서버 테스트 시 http://yourdomain.com 입력 가능
Advanced options (Run time 설정 가능)
- 테스트 실행 시간 지정 (20s, 3m, 1h30m 등)
- 입력하지 않으면 무제한 실행 (수동으로 중지해야 함)
설정하고 실행하면 실시간으로 확인할 수 있다.

RPS (Requests Per Second)
- 초당 처리된 요청 수(Throughput)
50th Percentile (P50)
- 전체 응답 시간 중 50%의 요청이 해당 값 이하에서 응답됨 (중간 값)
- 예: 50th percentile: 20ms → 50%의 요청이 20ms 이하에서 응답됨
95th Percentile (P95)
- 전체 응답 시간 중 95%의 요청이 해당 값 이하에서 응답됨 (최악의 5% 제외)
- 예: 95th percentile: 200ms → 95%의 요청이 200ms 이하에서 응답됨
- 높은 값을 가지면 일부 요청이 느려지는 지연 문제 가능성이 있음
728x90