nGrinder 로컬에서 사용하는 방법

nGrinder는 서버 부하 테스트를 위한 오픈 소스입니다.
테스트를 위해 실제 사용할 서버로 구성해야 하겠지만, 로컬에서 단순하게 사용법을 익혀보겠습니다.
Docker로 설치하기
controller 설치하기
docker pull ngrinder/controller
controller 실행하기
docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller --name controller -p 80:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller
agent 설치하기
docker pull ngrinder/agent
agent 실행하기
docker run -d --name agent --link controller:controller ngrinder/agent
controller 접속하기
http://127.0.0.1
로 접속하면 login 페이지로 리다이렉트 됩니다.
기본 아이디, 패스워드로 admin을 입력해서 로그인합니다.
스크립트 작성하기
상단 메뉴에서 스크립트를 선택하고 새로운 스크립트를 작성합니다.
스크립트를 생성하고 검증을 누르면 요청이 잘 가는지 확인할 수 있습니다.
요청을 보내보면 다음과 같이 접속 실패를 확인할 수 있습니다. nGrinder에서 테스트 시 localhost나 127.0.0.1로 테스트할 수 없습니다. 요청을 보내는 agent의 localhost는 서버의 아이피와 달라서 그렇습니다. 본인의 공인 IP를 찾아서 할 수도 있겠지만 이 경우 포트 포워딩 작업이 추가적으로 필요합니다.
외부에서 로컬 서버 접속하기
이를 해결하려고 ngrok을 사용했습니다. ngrok으로 요청을 받을 서버의 포트를 설정합니다. 제 경우는 3000번 포트를 사용했습니다.
이제 스크립트에서 요청할 주소를 포워딩된 주소로 바꿔주면 요청이 성공합니다.
성능 테스트하기
성능 테스트 메뉴를 선택하고 테스트 생성을 합니다. 사용하는 에이전트 수, 생성한 스크립트, 시간등을 입력하고 테스트를 진행하면 됩니다.
테스트 결과 확인
성능 테스트를 마치고 나면 테스트 결과를 그래프와 함꼐 확인할 수 있습니다.
정리
공식문서에도 자세하게 설명이 나와있지만 로컬 에이전트 ➜ 로컬 서버를 테스트하는 방법이 나와있지 않아 정리했습니다. 할 필요가 없는 테스트이기도 하지만 다른 서버가 없어 간단하게 테스트해보고 싶을 때, 로컬에서 사용하는 법을 알아봤습니다.