네이버에서 만든 nGrinder를 사용하여 부하 테스트를 진행해보고자 합니다. 모니터링을 하려면 추가적으로 pinpoint 같은 APM 을 이용해야 하지만 이번엔 nGrinder만 사용하여 부하 테스트를 진행해보고자 합니다.
부하 테스트는 다음과 같은 순서로 진행됩니다.
우선 위의 링크는 nGrinder 공식 저장소 릴리즈 페이지로 링크를 눌러 ngrinder-controller-{version}.war 파일을 다운로드 합니다.
다운로드를 완료했다면, war 파일을 터미널로 실행시켜주며, 포트 번호는 나중에 사용되니 꼭 기억해주세요.
java -jar ngrinder-controller-{version}.war --port=8300
터미널에서 실행이 되었다면 브라우저의 http://localhost:8300 으로 접속해주세요.
초기 ID : admin , PW : admin 입니다.
다음은 다음과 같이 에이전트 다운로드를 활용하여 다운로드 합니다.
다운로드가 완료되었다면, 압출을 풀고 다음 파일을 실행합니다.
run_agent.sh
다음과 같은 화면이 나오면 준비 작업은 끝났으므로 이제 테스트 코드 스크립트를 작성해주시면 됩니다.
우선 부하 테스트 ( stress test ) 는 서버가 얼마만큼의 요청을 견딜 수 있는지 테스트하는 방법입니다.
작성한 API 에 병목 현상과 얼마 만큼의 트래픽을 수용할 수 있는지 테스트하는 방법을 의미합니다.
테스트는 실제 운영 서버와 동일하거나 유사해야 합니다. 인프라 및 데이터의 양 또한 같으면 좋습니다. 만약 외부 API를 사용한다면 Mocking을 하여 테스트를 해야 합니다.
Smoke 테스트
- VUser : 1 ~ 2
Load 테스트
- 평소 트래픽과 최대 트래픽일 때 VUser 를 계산 후 시나리오를 검증
Stress 테스트
- 최대 사용자 혹은 최대 처리량인 경우 한계점을 확인하는 테스트
성능 목표를 설정하기 위해 VUser 를 구해야합니다. ( Load 테스트인 경우 )
VUser를 구하기위해 다음과 같은 지표가 필요합니다.
대충 DAU 수와 최대 요청 수 , 평균 요청 수 를 구하자..
준비는 이걸로 마치고 다음 챕터에는 본격적으로 테스트를 진행해보겠습니다.
참고 블로그 : https://leezzangmin.tistory.com/42