본문 바로가기
nGrinder

nGrinder와 친해져볼까(feat.공식문서)

by sangyunpark99 2024. 9. 1.

서버의 스트레스 테스트를 하기 위해서 nGrinder를 사용해보려고 한다.

nGrinder에 대해서 아무것도 모르기 때문에 nGrinder에 대해 공식문서를 보고 친해져보자

https://naver.github.io/ngrinder/

 

nGrinder

Please post questions in Discussions not Issues. nGrinder 3.5.5-p1 version is now available. Check the changes at here. nGrinder is a platform for stress tests that enables you to execute script creation, test execution, monitoring, and result report gener

naver.github.io

 

🔎 nGrinder 소개글

스트레스 테스트를 위한 하나의 플랫폼이라고 설명되어있다. 아주 쉽고 편리하게 통합된 환경에서 스트레스 테스트를 할 수 있다고 한다.

 

🔎 nGrinder 2가지 구성요소

 

nGrinder Controller 이친구는 무엇일까?

해석을 해보면, 웹 애플리케이션인데 성능 테스트 스크립터를 만들고 테스트 실행을 구성할 수 있도록 해준다고 한다.

 

nGrinder agent 이 친구는 무엇일까?

부하를 생성하는 가상 유저 생성기라고 한다.

 

🔎 nGrinder 기능

기능이 상당히 많다.

(1) Jython 또는 Groovy 스크립트를 사용하여 테스트 시나리오를 만들고 여러 에이전트를 사용하여 JVM에서 스트레스를 생성한다.

(2) 커스텀 라이브러리를 사용하여 테스트를 연장한다. (제한이 없다.)

(3) 프로젝트 관리, 모니터링, 결과 관리 및 보고서 관리를 위해 웹 기반 인터페이스를 제공한다.

(4) IDE에서 그루비 스크립트를 개발 및 테스트하고 분산 에이전트에서 실행합니다.

(5) 여러 테스트를 동시에 실행한다.각 에이전트의 활용률을 극대화하기 위해 미리 설치된 에이전트를 할당합니다.

(6) 여러 네트워크 영역에 에이전트를 배포하고 다양한 네트워크 위치에서 테스트를 실행한다.

(7) 하위 버전을 포함하여 스크립트를 관리한다.

(8) 스트레스를 발생시키는 에이전트의 상태를 모니터링하고 스트레스를 받는 기계를 대상으로 한다.

(9) 1억 명 이상의 사용자를 보유한 거대한 시스템을 테스트하는 데 사용되는 검증된 솔루션이다.

 

오.. 1억 명이상의 사용자를 보유한 거대한 시스템을 테스트하는 것도 가능하다니, 굉장히 신뢰가 간다.

 

🔎 nGrinder  Quick Start

https://github.com/naver/ngrinder/wiki/Quick-Start

 

Quick Start

enterprise level performance testing solution. Contribute to naver/ngrinder development by creating an account on GitHub.

github.com

 

nGrinder 설치하기

# NGrinder 다운로드
wget https://github.com/naver/ngrinder/releases/download/ngrinder-3.5.9-20230227/ngrinder-controller-3.5.9.war

 

 

nGrinder 실행하기

공식 문서에 나와있는 명령어를 통해 실행해보도록 하겠습니다.

 

제 맥북 기준으로 다음과 같은 명령어가 되겠군요!

java -Djava.io.tmpdir=/Users/developer/ngrinder/lib -jar ngrinder-controller-3.5.9.war --port 9090

 

 

http://localhost:9090에 접속하면 로그인 화면 등장!

 

UserID와 Password에 admin을 입력해서 로그인을 해준다..!

 

 

테스트를 위해서 빠르게 구글 홈페이지를 테스트 해보도록 하겠습니다!

 

Test Configuration 화면이 등장했다!

 

테스트를 하기 전에 Agent를 추가해주어야 한다.

사이트에 로그인을 한 후, adim의 Agent Management를 클릭해준다.

 

클릭해 준뒤, 링크를 눌러어 agent 압출 파일을 다운받아준다.

 

다운을 받고, 압축을 풀어준뒤, 다음 명령어로 agent를 실행시켜 준다.

./run_agent.sh

 

 

주의할점) 압축을 풀어주고, ngrinder-agent라는 디렉토리 내부에서 명령어를 실행시켜 주어야 한다.

 

✅ Agent 등록 완료!

 

잘 실행이 되는지 Google 홈페이지에 부하 테스트를 해보려고 한다.

 

TPS란 무엇일까?

Transaction Per Second로 초당 트랜잭션 개수를 의미한다.

 

TPS가 높다면..?

초당 처리할 수 있는 트랜잭션 갯수가 많기 때문에, 성능이 더 뛰어나다고 생각할 수 있다.

 

A서버는 1초에 100개의 트랜잭션을 처리할 수 있고, B서버는 1초에 50개의 트랜잭션을 처리할 수 있다고 하면 A서비스의 TPS가 더 높고, 서비스 성능이 더 뛰어나다고 볼 수 있다.

 

nGrinder와 나름 친해진 것 같다..😘