1. JMeter 구성요소
- Thread Group
- 스레드(가상의 사용자) 설정 및 관리
- Samplers
- FTP, HTTP, SMPT 등 다양한 요청 유형 선택 가능
- Logic Controllers
- 요청을 묶어 시나리오화한 것
- 하나의 Logic Controller에 여러 HTTP 요청 Samplers들을 순차적으로 담아 사용자의 실제 사용 시나리오와 유사하게 테스트 환경 구성 가능
- Listeners
- 그래프, 테이블 등 여러 형태로 테스트 결과 시각화해서 보여줌
- Configuration Elements
- 테스트 환경에 적용될 기본값과 변수 설정
- ex) HTTP 요청 테스트 시 헤더에 토큰을 담거나 쿠키에 세션을 담아 로그인된 사용자의 요청으로 만들 수 있음
2. JMeter 설치
JMeter 홈페이지에서 zip 파일을 다운받는다.
파일 압축을 풀면 bin 폴더에 jmeter.sh 파일과 jmeter.bat 파일을 확인할 수 있는데 맥인 경우 sh파일, 윈도우는 bat 파일을 실행하면 된다.
cd apache-jmeter-5.6.3/bin
./jmeter.sh
터미널에 위 명령어를 입력하면 실행이 된다. (맥)
3. 테스트 생성
스레드 그룹을 생성해 사용자 수를 100으로 설정하고
HTTP 요청에 테스트할 API에 대한 HTTP 요청 샘플러를 구성했다.
로그인 된 사용자만 해당 API를 호출할 수 있기 때문에 HTTP 헤더 관리자에 헤더값을 추가해주었다.
결과들의 트리 보기
해당 리스너는 모든 응답 데이터를 트리 형태로 표시하여 HTTP 요청 및 응답을 상세하게 확인할 수 있다.
요청된 결과를 보니 기대한대로 HTTP 요청 1개만 성공하고 나머지는 실패한 것을 확인할 수 있다.
이 결과창은 브라우저 개발자 도구의 네트워크 탭과 비슷한데, 개별 요청에 대한 요청, 응답 정보(body까지!!)를 확인할 수 있다.
요약 보고서
요약 보고서는 테스트 결과를 요약하여 간략한 통계 정보를 제공하는 리스너로써 요청 건수, 평균 응답 시간, 에러 비율 등의 정보를 확인할 수 있다.
- 평균, 최소, 최대 응답 시간의 단위는 ms이다.
- 오류 %는 HTTP 응답 코드로 판단한다.
나의 경우 한 개의 응답만 통과하고 나머지는 에러를 발생시키는게 맞기 때문에 오류가 99%이다. - 처리량은 TPS(:Transaction Per Section)라고 하는데, 99 TPS가 측정된 것을 확인할 수 있다.
📚 참고
'Back-end' 카테고리의 다른 글
[Gradle] build.gradle 플러그인 분리하기 (0) | 2024.07.25 |
---|---|
[Spring Boot] 멀티모듈에 JaCoCo + JaCoCo Report Aggregation 적용하기 (3) | 2024.07.25 |
[Spring] Spring Security를 이용한 JWT 기반 인증 및 인가 설정 (0) | 2024.06.22 |
[Spring Boot] 내가 적용한!!! 멀티 모듈 기준 (0) | 2024.06.12 |
[Gradle] 자바 플러그인, implementation과 api의 차이 (1) | 2024.05.23 |