서비스 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/ 로 접속합니다.
테스트 중에 동시에 실행되는 가상 사용자의 수.
테스트의 시작부터 종료까지의 전체 기간 동안 사용자를 점진적으로 추가하는 속도. 일반적으로 초 단위로 설정.
테스트 대상 서버의 주소 또는 호스트.
특정 사용자들이 어떤 비율로 특정 엔드포인트를 호출하는지와 사용자의 행동 패턴 등을 세밀하게 제어.
Chart로 RPS를 시각화할 수 있습니다.
다양한 과부하 옵션을 주면서 시나리오 테스트를 할 수 있습니다.
시나리오 중에 발생한 에러를 확인할 수 있습니다.
장애가 발생한 부분을 상세하게는 알고 싶다면 jaeger같은 별도의 추적 도구로 파악해야 합니다.