티스토리 뷰
JMeter란
부하 테스트, 기능 동작과 성능을 측정하기 위해 제작된 JAVA 어플리케이션 오픈소스 소프트웨어입니다. JMeter는 정적 및 동적 리소스, 웹 동적 애플리케이션에서 성능을 테스트하는 데 사용할 수 있습니다.
목적
AWS EC2 에 배포한 Spring boot 웹 어플리케이션이 얼마만큼의 부하에 견딜 수 있는지 방법을 찾아보다가 JMeter 라는 애플리케이션을 알게 되었고 꽤나 괜찮다는 평이 많은것 같아 HTTP Request 부하 테스트 Tool로 사용하기로 했습니다.
다운로드 및 실행(mac)
$ brew install jmeter
$ open /usr/local/bin/jmeter
다운로드(windows)
jmeter.apache.org/download_jmeter.cgi
저는 Apache JMeter 5.4.1(Requires Java 8+) Binaries zip으로 되어있는 걸로 받았습니다.
apache-jmeter-5.4.1/bin/jmeter.bat 로 실행 할 수 있습니다.
사용법
저는 HTTPS로 Content-type application/json 으로 POST 부하 테스트를 하였습니다. 이 목적에 맞는 사용법입니다.
JMeter 용어
- ThreadGroup : 테스트를 수행하는 주체(User)입니다.
- Sampler : 액션, 행동등을 지정합니다.
- Listener : 부하 테스트의 결과를 데이터나 그래프로 보여줍니다.
Test Plan을 우클릭 해서 Thread Group 을 추가해 줍니다.
Thread Group을 설정합니다.
- Number of Thread : 동시에 생성될 쓰레드의 수입니다. 여러명의 사람이 동시에 접속하는 효과를 냅니다.
- Ramp-Up Period : 지정된 기간동안 균등하게 요청을 합니다. Thread가 10이고 Period가 60이라면 6초에 한번씩 요청을 하려고 노력합니다.
- Loop Count: 쓰레드의 반복 횟수를 의미합니다. 10이면 10번 반복합니다. Forever에 체크하면 무한 반복합니다.
Thread Group - Add - Sampler - HTTP Request 를 선택합니다.
HTTP Request를 설정합니다.
Protocol(http라면 입력하지 않아도 됩니다.), Server Name or IP, Path, Port Number를 부하 테스트 하고싶은 서버에 맞게 입력해 줍니다.
HTTP Header Manager를 설정합니다.
Content-type을 바꾸기 위해서는 HTTP Header를 변경 할 필요가 있습니다.
HTTP Request - Config Element - HTTP Header Manager 를 추가하고 Content-type application/json 을 추가해 줍니다.
Listener 를 추가합니다.
결과를 확인하기 위한 Listener를 추가해줍니다. 저는 View result tree와 Graph Results를 추가하였습니다.
Thread Group - Listener - View result tree/Graph Results
부하 테스트를 시작합니다.
결과 확인
부하테스트 그래프와 요청Header/body 그리고 Response data까지 확인 할 수 있었습니다.
reference
- kamang-it.tistory.com/entry/JMeter%EC%93%B0%EB%A0%88%EB%93%9C-%EA%B7%B8%EB%A3%B9%EB%A7%8C%EB%93%A4%EA%B8%B0-2
- www.cikorea.net/bbs/view/lecture?idx=7082
'스프링' 카테고리의 다른 글
spring-boot(3.0.0) QueryDSL 설정하기 (0) | 2023.01.18 |
---|---|
스프링부트(spring boot) javascript 의존성 관리 (0) | 2021.02.19 |
타임리프(thymeleaf) 사용하기 (0) | 2020.12.31 |
@Valid 를 이용한 검증 및 Advice를 이용한 에러처리 (0) | 2020.06.10 |
JAVA SPRING 인터셉터 (Interceptor) (0) | 2018.07.26 |