본문 바로가기

Server Development/Testing

Apache Jmeter

 

여러 서버 성능 테스터 중 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