Apache JMeter
JMeter는 제공해주는 다양한 서비스들을 통해 성능을 분석 및 측정을 할 수 있는 부하 테스트 도구인 Apache 프로젝트이다.
JMeter로 JDBC 데이터베이스 연결, FTP, HTTP, TCP연결 등의 단위 테스트를 진행할 수 있다.
제공해주는 기능으로 테스트 결과를 모니터링 및 분석에 큰 이점을 얻을 수 있다.
Apache JMeter 설치 (mac os)
brew를 통해 설치
brew install jmeter
JMeter 콘솔 실행
/usr/local/Cellar/jmeter/5.4.3/bin/jmeter
JMeter 참고사항
mac으로 JMeter 작업을 진행 시 발생하는 문제로 테마를 Darcula로 진행 시 저장할때 에러를 발생한다.
해결방법은 Dracular 외 다른 테마를 사용하는건데 JDK의 가장 기본 테마인 Metal 테마 사용을 추천한다. (참고)
테마 변경방법
JMeter 스레드 그룹 생성
테스트할 플랜에 우클릭
테스트를 진행 할 thread 그룹 생성
- Action to be taken after a Sampler error - 샘플이 진행 중 에러발생 시 대처 방법 선택
- Number of Threads - 테스트 단위당 요청 수
- Ramp-up period - 전체 스레드가 실행되기까지의 시간, 스레드 100에 ramp-up을 50초로 지정 시 초당 2개의 스레드를 실행하여 수행한다.
- Loop Count - 반복 횟수, Infinite 체크 시 위 조건으로 무한 반복
- Same user on each iteration - 체크 시 웹요청에서 쿠키를 첫 사용작가 얻으면 이후 사용자는 해당 쿠키 사용
- Delay Thread creation until needed - 체크 시 스레드 생성 시간도 ramp-up 시간에 포함, 체크하지 않으면 테스트를 실행하기 전에 스레드에 필요한 데이터가 모두 생성된다.
- Specify Thread lifetime - 특정 기간동안 실행 및 특정 시간동안 지연 후 실행 시 체크
- Duration - 테스트의 총 지속 시간, Infinite체크 시 실행시간을 제어하기위해 사용
- Statup delay - 테스트 시작 시 지정된 시간만큼 지연 후 실행
JMeter 스레드 그룹의 샘플 생성
스레드에 어떤 요청을 수행시킬지 정의하기위해 샘플을 생성해야한다.
생성된 스레드 그룹에 우클릭
- spring boot rest api 를 사용하여 테스트를 진행하기 위해 HTTP Request 샘플 생성
- Name - 요청의 이름을 지정, 결과 모니터링에서 구분을 지어줄 수 있다.
- Protocol - 기본으로 http 이며 다른 프로토콜 사용 시 입력
- Server Name or IP - 요청을 보낼 서버 이름 또는 IP주소 입력
- PortNumber - 포트 번호 입력
- Path - 요청 경로
- Parameters - Path Parameter 지정
- Body Data - POST, PUT 등 요청 시 body 작성
- Files Upload - multipart 요청 시 파일 등록
JMeter 리스너 생성(모니터링)
실행된 스레드 요청의 결과를 모니터링하기위해서 리스너를 생성
리스너를 생성할 샘플에 우클릭
일반적으로 많이 사용하는 리스너는
Summary Report
샘플의 name에 따라 분류하여 전체 결과를 보여준다.
View Results in Table
모든 결과를 개개별로 한 눈에 볼 수 있다.
View Results Tree
모든 결과의 개개별 요청, 응답 등 상세 정보를 볼 수 있다.
Graph Results
결과의 특정 집단(평균값, 중앙값, 편차, 처리량) 을 시간에 따른 변화를 시각화하여 볼 수 있다.
'성능 개선' 카테고리의 다른 글
영상 인코딩 및 최적화를 위한 FFmpeg 사용법과 Spring Boot 연동 예제 (2) | 2023.04.28 |
---|---|
JMeter를 활용하여 댓글 조회 기능 성능 개선 (with Spring Boot) (0) | 2022.03.22 |