여러 서버 성능 테스터 중 Apache Jmeter에 대해서 정리해보고자 한다.
Apache Jmeter
특징
- 서버의 성능 및 부하를 측정 가능하다.
- 순수 자바 어플리케이션 오픈 소스
- 다양한 프로토콜/서버를 테스팅 가능하다. (HTTP, SOAP, FTP, DB, MAIL)
- CLI를 지원 (CI, CD와 연결시 편리)
주요 기능
- Thread Group : Thread 관련 조정
- Sampler : 유저의 동작 (프로토콜 등 설정)
- Listener : 서버의 응답에 대한 동작 (결과 리포트 등)
- Configurtion : 서버에 요청을 보내고 응답을 받기 위해 필요한 설정 (JDBC Connection, 쿠키 등)
- Assertion : 서버의 응답 결과가 특정 조건이 맞는지 확인하여 성공 여부 판단한다.
Thread Group 설정
- Number of Threads : 사용하고자 하는 Thread 수, 접속자 수
- Ramp-up-period : 지정한 수의 Thread를 몇 초안에 만들지, 더 나아가 얼마의 시간간격으로 Thread를 호출할지 설정
- Loop Count : 동작 접속 반복 수, 한 접속자가 반복 요청을 보내는 수, 각 스레드의 실행 횟수
Sampler 설정
- 서버 주소, 포트 번호 방식, 상세 경로 등을 설정한다.
- ex) localhost / 8080/ GET / data/day/123
Listener 설정
- apache Jmeter에서 제공해주는 여러가지 기능들을 사용하는 구조
- 여러가지가 있지만 일부만 정리해보려고 한다.
View Results Tree
- 각 스레드마다 요청/응답 등의 정보들을 모두 볼 수 있다.
Summary Report
- Thread 그룹이 요청을 가고 응답을 받는데 까지 걸리는 시간에 대한 분석 자료가 포함된다
- 평균, 분포 등
- 단위는 ms이다.
View Results in table
-Thread마다 걸린시간 Thread 그룹내에서의 완료 순서 등을 확인 가능하다.
Graph Results
- 무한 루프를 주었을 때, 시간에 따른 평균 등 값들을 그래프로 확인 가능
기본 용어 정리
- Latency : 스레드가 요청이 시작된 시점부터 서버로 부터 응답을 받기 시작한 시점까지
- Load Time/Response Time : 스레드가 요청이 시작된 시점부터 서버로 부터 응답이 끝난 시점까지 :
- Throughput : 단위 시간당 대상 서버에서 처리하는 요청의 수
(높을 수록 좋음을 의미하지만 오류율과 비교를 해야함, 서버는 오류 발생시 복잡한 처리를 하지 않게 설정될 수 도 있기 때문에)
(+) Http Header에 JWT 추가
아래 순서로 작성한다.
- Http Header Manager 추가 후
- name : authorization
- value : Bearer 토큰내용
'Server Development > Testing' 카테고리의 다른 글
Integration Test (0) | 2023.08.04 |
---|---|
UNIT TEST - JUNIT5, Mockito (0) | 2023.07.16 |
Test Coverage with Jacoco (0) | 2023.04.02 |
Unit Test with MVC (0) | 2023.04.02 |
Swagger (0) | 2023.04.01 |