JMeter를 사용하여 Web Application & DBMS 성능 테스트하기 -1
https://jmeter.apache.org/download_jmeter.cgi
Apache JMeter - Download Apache JMeter
Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava
jmeter.apache.org
JMeter는 Apache 소프트웨어 재단에서 개발한 오픈 소스의 자바 기반 성능 테스트 도구로
주로 웹 응용 프로그램의 성능을 측정하기 위해 사용되지만, DBMS의 성능 테스트에도 활용할 수 있다고한다.
공식문서에 따르면 JMeter은 다음과 같은 테스트 기능을 제공한다.
- Ability to load and performance test many different applications/server/protocol types:
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP / REST Webservices
- FTP
- Database via JDBC
- LDAP
- Message-oriented middleware (MOM) via JMS
- Mail - SMTP(S), POP3(S) and IMAP(S)
- Native commands or shell scripts
- TCP
- Java Objects
위의 주소에서 JMeter를 다운로드받은뒤 실행시켜 성능 테스트를 해보자.
JMeter를 통해 성능테스트를 하기위해 알아야할 주요 몇가지 개념이있다.
- Thread Group : Test할 Thread 그룹 설정 = 얼마나 많은 요청을 보낼것인지?
- Sampler : 어떠한 작업을 테스트 할것인지?
- Listener : 응답을 받아 리포팅, 검증, 그래프 등 다양한 처리
- Configuration : Sampler 또는 Listener가 사용할 설정 값 (쿠키, JDBC 커넥션 등)
- Assertion : 응답 확인 방법 (응답 코드, 본문 내용 비교 등)
1) Thread Group 생성하기
우선, 새로운 Test Plan을 생성한뒤, Add -> Thread Group을 생성한다.
Thread Group를 통해 Test에 사용할 Thread 수를 설정한다.
1. Number of Threads : Threads의 갯수
2. Ramp-up period (seconds) : 위의 쓰레드 갯수를 만드는데 걸리는 시간
3. Loop Count : Loop 횟수
즉, 100명의 User가 1초동안 10번씩 요청을 보낸다는 가상의 상황을 만들었다.
2. Sampler 설정
설정된 Thread Group이 실행할 작업들이 다음과 같이 나누어져있다.
HTTP Request를 통해 보통 개발중인 서버의 api 요청을 Test하여 성능테스트를 할 수 있다.
또한 JDBC Request나 Java Request도 있어서 DB관련 작업의 성능 테스트또한 가능하다.
HTTP 요청을 보낼 Port와 Request 설정을 입력하여 만들어둔 api로 요청을 보내준다.
주의할 점은 Jmeter를 사용하는 Server와 웹 어플리케이션을 구동하는 Server는 달라야 정확한 값을 측정할수있다.