JMeter를 이용한 부하테스트 기본기

전성영·2022년 7월 27일
0

JMeter란?

Apache에서 만든 자바로 만들어진 웹 어플리케이션 성능 테스트 오픈 소스이다.
또한 웹 애플리케이션을 중심으로 다양한 서비스의 성능을 분석하고 측정하기 위한 부하 테스트 도구로 사용할 수 있는 아파치 프로젝트이다

Apache JMeter는 정적 및 동적 자원, 웹 동적 애플리케이션 모두에서 성능을 테스트하는 데 사용할 수 있다.
서버, 서버 그룹, 네트워크 또는 개체에 대한 과부하를 시뮬레이션하여 강도를 테스트하거나 다양한 부하 유형에서 전체 성능을 분석하는 데 사용할 수 있다.

1. JMeter 설치

http://jmeter.apache.org/ - 이 링크에 접속해서 설치를 진행해준다.

Download Releases 를 클릭해서 들어가준다.


zip 파일을 받은 후 압축해제를 해준다.

2. JMeter Plug-in Install

https://jmeter-plugins.org/wiki/ResponseTimesOverTime/
https://jmeter-plugins.org/wiki/ConcurrencyThreadGroup/

이 두 가지 링크에 들어가서 다운을 받은 후,
다운받은 파일의 루트 jar파일은 Jmeter 설치파일의 lib 폴더에,
ext 폴더 안에 파일은 Jmeter /lib/ext 폴더 안에 넣으면 된다.

3. JMeter 실행


jmeter.bat으로 실행을 시킬 수 있다.


Test Plan -> Add -> Thread -> Thread Group 을 통해 Thread Group을 생성해준다.

그 다음 결과를 볼 친구들을 추가해준다.

ThreadGroup -> Add -> Sampler -> Http Request
ThreadGroup -> Add -> Listener -> View Results Tree
ThreadGroup -> Add -> Listener -> Summary Report
ThreadGroup -> Add -> Listener -> Response Times Over Time
ThreadGroup -> Add -> Listener -> Transaction Per Second
ThreadGroup -> Add -> Listener -> View Results in Table

자 이제 살펴보자

Number of Threads - 유저의 수(스레드의 개수)
Ramp-up period - 실행되는 데 걸리는 시간
Loop count - 스레드가 몇 번 실행될 것인지

이렇게 알아놓으면 될 거 같다!

아까 만들어 놓은 Http Request를 가보자!


HTTP Request

api에 맞게 기입을 해주면 된다!

데이터 타입과 토큰 같은 데이터들은 header에 실어줘야 하는데 그 부분은
HTTP Header Manager 에 추가를 해줘야 한다.


HTTP Header Manager

상황에 맞게 추가를 해주면 될 것이다.

Summary Report

Samples - requset 갯수
Average - Sample Time의 평균
Min - Sample Time의 최소
Max - Sample Time의 최대
Std. Dev. - Sample Time의 표준편차
Error % - 에러율
Throughput - 시간당 처리량(=쓰루풋)
Received KB/sec - 시간당(sec) 받은 데이터(KB)
Sent KB/sec - 시간당(sec) 보낸 데이터(KB)
Avg. Bytes - 평균 바이트


View Results in Table

Sample - 그냥 ID번호다. 이 번호를 보고 몇번째로 보는 부하인지 알 수 있다.
Start Time - 보내기 시작한 시간으로 ms단위까지 나온다.
Thread Name - 쓰레드 그룹 이름
Label - 보낸 request의 이름
Sample Time(ms) - Load Time, Elapsed Time, Response Time이랑 같은 뜻이다. 요청 시작 시점부터 응답 종료 시점까지의 시간을 의미
Status - 말그대로 응답상태를 확인할 수 있다.
Bytes - 응답 데이터 바이트
Sent Byte - 요청 데이터 바이트
Latency - 지연 속도를 의미하는데 요청 시작 시점부터 응답 시작 시점까지의 시간을 의미
Connect Time(ms) - TCP Handshake를 이용해 연결하는 시간(그냥 TCP연결시간)


Run/Clear

초록이로 실행시킬 수 있고 빗자루로 지울 수 있다.

Reference

https://junhokims.tistory.com/34

profile
Slow and Steady

0개의 댓글