User class
User class는 시스템의 사용자/시나리오를 나타낸다.
User class 에 포함된 속성
wait_time 속성
wait_time 메서드는 각 task의 실행 지연을 쉽게 도와 준다.
constant : 고정된 시간
between : random time between a min and max value
constant_throughput : 초당 최대 X회 작업이 실행되도록 보장
constant_pacing : 작업이 X초마다 한 번씩 실행되도록 보장
from locust import User, task, between
class MyUser(User):
@task
def my_task(self):
print("executing my_task")
wait_time = between(0.5, 10)
위 예제는 각 사용자가 모든 작업 실행에 있어 0.5 ~ 10초 동안 기다리도록 설정 한다.
클래스에서 wait_time 메서드를 직접 선언하는 것도 가능하다.
class MyUser(User):
last_wait_time = 0
def wait_time(self):
self.last_wait_time += 1
return self.last_wait_time
...
weight 와 fixed_count 속성
파일에 두 개 이상의 사용자 클래스가 존재 하고 명령줄에 사용자 클래스가 지정되지 않으면 Locust는 각 사용자 클래스를 동일한 수로 생성한다. 명령줄에서 사용자 클래스를 지정할 수도 있다.
locust -f locustfile.py WebUser MobileUser
특정 사용자 클래스를 더 많이 시뮬레이션 하고자 할 때 사용자 클래스에 가중치를 설정할 수 있다.
아래는 WebUsers가 MobileUsers보다 3배 더 많이 생성된다.
class WebUser(User):
weight = 3
...
class MobileUser(User):
weight = 1
...
만약 fixed_count 속성을 설정하면, 가중치 속성은 무시되고 정확히 지정한 수의 사용자만 생성된다.
아래 코드에서는 AdminUser의 경우 하나만 생성된다.
class AdminUser(User):
wait_time = constant(600)
fixed_count = 1
@task
def restart_app(self):
...
class WebUser(User):
...
host 속성
테스트 하려고 하는 호스트에 대한 URL 접두사를 자동으로 추가 한다.
명령줄 --host 옵션이나 웹 UI에서 이 값을 덮어쓸 수 있다.
on_start와 on_stop 메서드
on_start : 사용자 시뮬레이션 시작할 때
on_stop : 사용자 시뮬레이션 종료할 때
'성능과 튜닝 > 부하 테스트 도구 - 애플리케이션 (Locust)' 카테고리의 다른 글
locustfile 작성 (0) | 2024.09.23 |
---|---|
Locust 개요 및 설치 (0) | 2024.09.23 |