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