Locust로 강도 테스트하기

JaeGu Jeong·2024년 2월 18일
0

개발 도구들

목록 보기
3/12
post-custom-banner

사용 목적

서비스 API의 성능을 객관적으로 알아야합니다. 성능 테스트하는 것은 복잡하고 비용이 많이 들어가는 작업이지만 시각적으로 정리된 수치를 확인가능하다면 조금 더 쉽게 작업할 수 있습니다.

선택 이유

강도 테스트 도구는 여러 가지가 있지만 최신 정보가 많은 k6와 Locust중에 고민하다가 다음과 같은 이유로 Locust로 테스트했습니다.

1.브라우저로 모니터링 가능하도록 GUI를 지원.
2.플러그인 확장이 k6보다 유리하다.
3.평소 사용하던 파이선이라는 빠른 생산성을 가진 언어로 쉽게 테스트가 가능.

단점

CLI환경에서 바로 테스트 가능한 K6와 달리 브라우저로 접속가능하도록
서버를 띄워야 하기 때문에 리소스를 상대적으로 차지할 수 있습니다.

설치

Python 의존성이 있습니다.

pip3 install locust

안되면 아래 명령어로 설치합니다.

python3 -m ensurepip --default-pip
python3 -m pip install --upgrade pip
python3 -m pip install locust

zsh를 사용한다면 alias를 추가합니다.

 alias locust="python3 -m locust"

스크립트 작성

테스트 항목을 작성합니다.

웹서버 인증서 관련 문제가 있는 경우도 무시하고 테스트도 가능합니다.

실행

터미널에 "locust -f " + "작성한 스크립트 파일.py"

브라우저 접속

http://localhost:8089/ 로 접속합니다.

항목 설명

Number of Users

테스트 중에 동시에 실행되는 가상 사용자의 수.

Ramp up

테스트의 시작부터 종료까지의 전체 기간 동안 사용자를 점진적으로 추가하는 속도. 일반적으로 초 단위로 설정.

Host

테스트 대상 서버의 주소 또는 호스트.

Advanced Options

특정 사용자들이 어떤 비율로 특정 엔드포인트를 호출하는지와 사용자의 행동 패턴 등을 세밀하게 제어.

테스트

Chart로 RPS를 시각화할 수 있습니다.

다양한 과부하 옵션을 주면서 시나리오 테스트를 할 수 있습니다.
시나리오 중에 발생한 에러를 확인할 수 있습니다.

장애가 발생한 부분을 상세하게는 알고 싶다면 jaeger같은 별도의 추적 도구로 파악해야 합니다.

profile
BackEnd Developer
post-custom-banner

0개의 댓글