[🎵MIML] nGrinder로 성능테스트 하기
✅ nGrinder Controller 설치 (docker X)
깃에서 다운로드
nGrinder: https://github.com/naver/ngrinder/releases
위 링크에 들어가서 war 파일을 다운 받는다.
터미널에서 war 파일 실행
다운받은 위치에서 실행해야 한다.
$ java -jar ngrinder-controller-3.5.8.war --port=8300
# Please set `java.io.tmpdir` property like following. 에러가 발생한다면?
$ java -Djava.io.tmpdir=/Users/minju/ngrinder -jar ngrinder-controller-3.5.8.war --port=8300
nGrinder 실행 시 필요한 임시 파일의 저장 경로를 명시하지 않아서 "Please set 'java.io.tmpdir' ...." 에러가 발생한다면, 임시 파일을 생성할 위치를 명시해주면 된다.
나는 `/Users/${username}/${디렉토리명}`으로 명시했다.
브라우저에서 접속
지정해준 포트 번호로 접속하면 된다. 초기 아이디와 패스워드는 admin이다.
http://localhost:8300
nGrinder Agent 설치 (docker X)
다운로드
agent는 사이트에 로그인한 이후 메뉴에서 admin > Download Agent를 클릭하면 다운로드할 수 있다.
nGrinder 3.3 이후로는 Agent를 Controller에서 다운받는다.
압축 해제
# 압축 해제
$ tar -xvf ngrinder-agent-{version}-localhost.tar
# 폴더로 이동
$ cd ngrinder-agent
Agent 실행
# Agent쉘스크립트 파일 실행
$ ./run_agent.sh
# Agent 백그라운드 실행
$ ./run_agent_bg.sh
✅ 스크립트 작성
✅ 부하테스트 작성 및 실행
상단 메뉴에서 Performance Test (성능 테스트) > Create Test (테스트 생성)을 클릭한다.
적절한 값을 채우고 `Save and Start` 클릭
각각의 옵션 설명은 아래와 같다.
- Agent: 성능 측정에 사용할 Agent
- Agent를 여러 개로 구성하고 싶은 경우 Docker나 cloud service를 고려할 수 있다.
- 일반적인 로컬에서 테스트를 실행할 경우 1이 고정값
- Vuser per agent: 프로세스 수 * 스레드 수가 각각 agent 당 가상 사용자의 수가 된다.
- Agent 당 설정할 가상 사용자 수
- 동시에 요청을 날리는 사용자
- Process / Thread
- 하나의 Agent에서 생성할 프로세스 수와 스래드 수
- 한 Agent에 얼마나 많은 worker process를 쓸 지이다. 그리고 이 process들은 또 스레드를 가지게 된다.
- Script
- 성능 측정 시 각 Agent에서 실행할 스크립트
- 방금 우리가 생성한 Script를 추가한다.
- Duration: 얼마나 오래 테스트가 지속될지 정하는 것
- 성능 측정 수행 시간 (0:00:10 (시:분:초로 10초 의미))
- 어느 블로그의 말을 따르면 어느정도 길게 확보해줘야 의미있는 평균치가 나온다고 한다.
테스트 결과 확인
테스트 실행 종료 후 `Detailed Report`(상세 보고서)를 클릭한다.
- MTT: 평균적인 1회 수행 시간으로 중요한 지표이다.
- TPS는 초당 트랜잭션 개수를 말한다.
- Total Vusers: VUsers 수 (버츄얼 유저)
- TPS: 평균 TPS
- Peak TPS: 최고 TPS
- Mean Test Time: 평균 테스트 시간
- Executed Tests: 테스트 실행 횟수
- Successful Tests: 테스트 성공 횟수
- Errors: 에러 횟수
- Run time: 테스트 실행 시간
참고
[ETC] 성능 테스트를 위한 nGrinder 설치 및 사용해보기(Docker)