JMeter와nGrinder
JMeter란?
•
재단에서 개발한 오픈소스 부하 테스트 도구.
•
주로 웹 애플리케이션에 대한 부하 테스트를 진행, 데이터베이스, FTP, 메일 서버 등 다양한 서버에 대한
테스트도 가능
•
GUI를 통해 테스트 케이스를 손쉽게 작성할 수 있으며, 다양한 형태의 결과 보고서를 생성할 수 있음
•
대규모 부하 테스트의 경우, 테스트 실행 자체에도 상당한 리소스가 필요
nGrinder란?
•
네이버에서 개발한 오픈소스 부하 테스트 도구JMeter의 단점을 보완하고자 만들어졌음
•
nGrinder는 여러 대의 에이전트를 활용해 대규모 부하 테스트를 진행할 수 있으며,
스크립트 작성을 위한 Groovy와 같은 도구를 제공
•
또한 웹 기반 GUI를 통해 테스트 관리, 모니터링, 결과 보고서 생성 등을 쉽게 할 수 있음
둘의 차이점
1.
테스트 스크립트 작성 언어
a.
JMeter는 XML 기반의 자체 언어를 사용하여 테스트 스크립트를 작성 이를 위해 제공되는
GUI를 통해 직관적으로 작성할 수 있음
b.
nGrinder는 Groovy 또는 Jython 같은 스크립트 언어를 사용하여 테스트 스크립트를 작성
이는 JMeter보다 유연성이 좋지만, Groovy나 Jython에 익숙하지 않다면 작성이 어려울 수 있음
2.
분산 테스트
a.
JMeter는 원격 에이전트를 통해 분산 테스트를 지원하지만, 설정과 관리가 복잡,
통신 오버헤드로 인해 실제 부하 생성 능력이 제한될 수 있음
통신 오버헤드
b. nGrinder는 웹 기반 컨트롤러를 통해 여러 대의 에이전트를 쉽게 관리하고 테스트를 분산 가능
이는 대규모 부하 테스트에 유리
3.
결과 보고서
a.
JMeter는 다양한 형태의 결과 보고서를 제공 그러나 대규모 테스트의 경우에는
결과 데이터가 매우 크므로 보고서 생성에 시간이 오래 걸릴 수 있음
b.
nGrinder는 결과 데이터를 실시간으로 DB에 저장하고,
웹 인터페이스에서 보고서를 빠르게 확인할 수 있음
JMeter 사용
•
ThreadGroup
◦
Number of Threads : 테스트할 서버로 접속을 시도하는 사용자의 수
◦
Ramp-Up Period : 사용자간 접속을 요청하는 간격
◦
Loop count : 사용자마다 요청 하는 횟수
◦
예를 들어 Ramp-Up Period를 2로 설정했다면 첫 번째 사용자가 접속 요청후 2초 후 두 번째 사용자가 접속 요청
◦
Number of Threads * Loop count = 총 요청 횟수
◦
접속을 계속 시도하고 싶은 경우 Loop count를 infinite로 체크
◦
Sampler
▪
사용자의 행동
◦
Listener
▪
처리 상황 및 결과
nGrinder 사용
◦
컨트롤러
▪
컨트롤러는 nGrinder 시스템의 중심부로, 사용자가 테스트를 생성하고 관리하는 역할을 합니다.
▪
웹 기반의 사용자 인터페이스를 제공하며, 이를 통해 사용자는 테스트 스크립트를 작성하고, 테스트를 실행하며, 테스트 결과를 확인할 수 있습니다. 또한, 컨트롤러는 여러 대의 에이전트를 관리하고, 각 에이전트에게 테스트 명령을 전달하며, 에이전트가 보내는 테스트 결과를 수집합니다.
◦
에이전트
▪
에이전트는 컨트롤러로부터 받은 테스트 명령을 수행하는 역할을 합니다. 에이전트는 실제로 테스트를 수행하여 서버에 부하를 발생시키고, 테스트 결과를 컨트롤러로 보내줍니다. 여러 대의 에이전트를 동시에 실행함으로써, 대규모의 부하 테스트를 수행할 수 있습니다.
*상세내용참조