✍️ 개발 기록

[🎵MIML] nGrinder로 성능테스트 하기

ming412 2023. 12. 28. 20:51

✅ 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: 테스트 실행 시간

 

 

참고

nGrinder 소개와 설치 방법, 간단 테스트

[ETC] 성능 테스트를 위한 nGrinder 설치 및 사용해보기(Docker)

nGrinder 성능 테스트 도중 만난 에러들

[Ngrinder] MAC M1 설치