흰 스타렉스에서 내가 내리지

Apache JMeter 를 이용한 성능 테스트 본문

모니터링

Apache JMeter 를 이용한 성능 테스트

주씨. 2024. 3. 11. 11:38
728x90

응답시간(Response Time)

  • 클라이언트가 서버에 요청을 하고 그 요청에 대한 응답을 받을 때까지 걸린 시간을 의미한다.
  • 응답 시간은 아래의 두가지로 분류 가능하다.
    • 처리 시간(Processing Time) : 실제 서버가 요청을 처리하는데 걸린 시간
    • 대기 시간(Latency Time) : 클라이언트와 서버간에 데이터를 주고 받는데 걸리는 시간
응답시간(Respose Time) = [동시 사용자 수 / 초당 요청 수(TPS)] - 인지시간(Think Time)

 

 

 

TPS(Throughput)

  • 서버가 초당 처리할 수 있는 요청의 개수를 나타낸다.
  • TPS 가 높을 수록 초당 처리할 수 있는 요청의 수가 많다.
초당 요청 수(TPS) = 동시 사용자 수 / 응답시간(Response Time) + 인지시간(Think Time)

 

 

 

다운로드

https://jmeter.apache.org/download_jmeter.cgi

 

Apache JMeter - Download Apache JMeter

Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava

jmeter.apache.org

 

 

설정 및 실행

 

 

 

- 한글 깨짐 방지

/bin/jmeter.properties 에 아래 구문 추가

#sampleresult.default.encoding=ISO-8859-1
sampleresult.default.encoding=UTF-8

 

하지만 버전 5.6.1 부터는 디폴트가 UTF-8 이라고 하니, 나는 수정할 필요가 없다.

 

 

실행

1. /bin 디렉터리 이동 -> cd /bin
2. jmeter 실행 -> ./jmeter

 

다음과 같은 GUI 가 켜지면 성공

 

 

 

그래프 플러그인

JMeter 에서 제공하는 그래프도 있지만, TPS 를 보기 위해 외부 플러그인 추가 설치

https://jmeter-plugins.org/?search=jpgc-graphs-basic

 

JMeter Plugins :: JMeter-Plugins.org

 

jmeter-plugins.org

 

다운로드 받은 jar 파일을 /lib 폴더에 넣는다.

 

 

추가됐죠?

 

 

 

1. Thread 그룹 생성

 

Test Plan → Add → Threads (Users) → Thread Group 

 

--  Number of Threads (users) : 스레드수 - 유저 수
--  Ramp-up period (seconds) : 지정된 유저가 모두 로딩될 시간
--  Loop Count : 반복 횟수

 ==  1초에 50번의 부하를 100번 반복한다.

 

 

2. Sampler  생성

 

Thread Group  →  add  →  Sampler  →  HTTP Request

 

 

 

HTTP METHOD 가 POST 라면 Body Data 도 삽입 가능

 

 

3. Header 설정 (토큰 삽입)

 

생성한 Sampler  →  add  →  Config Element  →  Http Header Manager

 

 

 

 

 

 

4. Listener 생성

종류가 많지만 3가지

 

--  View Results Tree

--  Summary Report

--  TPS Graph

 

 

 

1. View Results Tree

 

--  개별 요청의 Request / Response 를 볼 수 있다.

--  응답 Body 까지만 확인 가능하다.

 

 

 

2. Summary Report

 

--  전체적인 요약본이다. 

--  평균, 최소, 최대의 단위는 ms 이다.

 

 

Label  :  Sampler  이름

Samples  :  Request 개수

Average  :  응답 평균

Min, Max  :  응답 최소, 응답 최대

Std. Dev.  :  응답 표준편차

Error %  :  에러율

Throughput  :  시간당 처리량

Received KB/sec  :  시간당(sec) 받은 데이터(KB)

Sent KB/sec  :  시간당(sec) 보낸 데이터(KB)

Avg. Bytes  :  평균 바이트

 

 

 

3. TPS Graph

 

TPS 을 그래프로 볼 수 있다. 

요청이 2개일 경우, 두 개를 그래프로 비교해서 볼 수있다.