JMeter
Apache JMeter - Apache JMeter™
Apache JMeter™ The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to oth
jmeter.apache.org
JMeter는 자바기반의 테스트, 성능 테스트 오픈소스이다. Web-application 용도로 설계되었지만, 현재 다양한 테스트 기능을 제공하고 있다,
JMeter는 다음과 같은 테스트를 지원한다.
- 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 GUI
JMeter는 보다 편리한 사용성을 위한 GUI를 제공한다.
다운로드 받은 Apache JMeter의 bin의 JMeter를 실행하면 GUI를 볼 수 있다.
window 사용자라면 jmeter.bat를 실행해도 된다.
글쓴이는 Websocket를 테스트 하기 위해 JMeter 플러그인을 설치하였다.
https://jmeter-plugins.org/install/Install/
Install :: JMeter-Plugins.org
Installing Plugins The easiest way to get the plugins is to install Plugins Manager. Then you'll be able to install any other plugins just by clicking a checkbox. If you experience any issues with plugins installation, don't hesitate to ask at Support Foru
jmeter-plugins.org
플러그인을 통해 bSocket Samplers by Peter Doornbosch을 설치하였다.
Setting
Thread Group을 생성하여 테스트 환경을 구성할 수 있다.
- Number of Thread: 쓰레드 갯수, 클라이언트 수
- Ramp-Up Period: 테스트 실행 시간이다. 예를 들어 Number of Thread가 10이고 Ramp-Up Period가 5이면 5초동안 10번의 요청을 보낸다(Ramp-Up Period안의 요청폭은 예측할 수 없다고 한다. 그래도 최대한 공평하게 배분한다고 한다.)
- Loop Count: 클라이언트의 요청 수(한번에 보내는 요청수)
request를 추가하여 원하는 프로토콜(http, websocket)에 해당하는 request를 설정할 수 있다.
Result
result tree, summary report와 같은 listener를 추가하여 결과를 모니터링 할 수 있다.
글쓴이는 트레픽이 발생하였을때, 서버에서 정상적으로 처리가 가능한지 확인하기 위해 나는 50개의 클라이언트가 무한히 요청을 보내는 테스트를 진행하였다.
응답 평균시간이(Averge) 서서히 증가하는 것을 확인할 수 있었다. 또한 실행도중 웹소캣 연결이 끊어져 버리는 현상도 관찰되었다.
'Java > 스프링 부트' 카테고리의 다른 글
[Webflux] Publisher, Subscriber (0) | 2024.06.05 |
---|---|
[Webflux] Mono, Flux.Block() (0) | 2024.06.05 |
[Webflux] Reactor 시작하기 (0) | 2024.03.25 |
[Spring boot] @ConfigurationProperties 에서 "Failed to bind properties" (0) | 2024.03.06 |
[Spring boot] @Transactional readOnly에 대한 고찰 -1 (0) | 2024.02.28 |