프로젝트

JMeter를 활용한 성능 테스트(1)

Nick_Choi 2024. 7. 28. 22:35

Jmeter란?

  • 서버가 제공하는 성능 및 부하를 측정할 수 있는 테스트 도구
  • 순수 Java 애플리케이션 오픈 소스
  • 서버, 네트워크에 대한 과부하를 시뮬레이션하여 강도를 테스트, 다양한 부하의 유형에서 전체 성능 분석할 때 사용

특징

  • 다양한 프로토콜 및 서버를 테스트
    • 웹 : http, https
    • SOAP / REST 웹 서비스
    • FTP
    • 데이터베이스
    • Mail 등
  • CLI 지원
    • CI 또는 CD 툴과 연동할 때 편리함
    • UI를 사용하는 것보다 적은 시스템 리소스를 사용
  • 시나리오 기반 테스트 가능
  • 다양한 외부 플로그인을 사용하여 기능 확장 가능 ex) PerfMon : 서버의 상태를 모니터링하는 JMeter Plug in

Jmeter 활용 시 주요 개념

Thread Group: 몇 개의 쓰레드가 동시에 요청을 보내는 지 확인
Sampler: 어떤 유저가 해야 하는 액션
Listener: 응답을 받았을 때 어떤 동작을 취하는 지  (검증, 리포트, 그래프 그리기 등)
Configuration: Sampler 또는 Listener가 사용할 설정 값 (쿠키, JDBC 커넥션 등)
Assertion: 응답 결과의 성공 여부를 판단하는 조건 (응답 코드, 본문 내용 등)

 

Thread Group

JMeter를 설치 후 Test plan name을 설정

Test plan name 우클릭 후 Thread Group를 추가하면 아래와 같은 화면이 나온다.

여기서 Thread Properties를 설정

- Number of Threads

: 몇 개의 스레드를 사용하여 테스트할 지 설정

 

- Ramp-up period

: Number of Threads에서 설정한 스레드들을 몇 초에 걸쳐서 만들지 설정

  0으로 설정 시 요청과 요청 사이에 시간 간격을 두지 않음

 

- Loop Count

: 요청을 몇 번 반복할 것인지 설정 (Infinite : STOP 버튼을 누를 때까지 무제한 반복)

 

Sampler

우리가 정의한 유저(스레드들)이 수행할 작업을 정의

Thread Group 우클릭 후 ADD -> Sampler -> Http Request를 선택하면 아래와 같은 화면이 나온다.

여기서 Web Server의 부분에 수행할 일들을 설정하면 된다.

 

Listener

요청에 대한 결과를 받아 행동을 취함

JMeter에는 다양한 listener가 존재함

Thread Group 우클릭 후 ADD -> Listener -> 필요한 listener 선택

Listener 추가 후 상단 초록색 삼각형(실행 버튼) 클릭하여 테스트 실행

Listener가 각각의 목적에 맞게 요청 결과 분석

 

View Results in Table

모든 결과를 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를 이용해 연결하는 시간

 

Table footer 데이터

No of Samples : Number of Samples, 처리중인 데이터 수를 의미
Latest Sample : 가장 마지막 Sample Time
Average : Sample Time 평균
Deviation : Sample Time의 표준편차

 

View Results Tree

결과를 상세하게 보고 검색하고 싶을 때 사용

검색 문자가 포함되는 데이터를 출력해주는 것이 핵심

각각을 확인하면 request, response, header 등의 정보를 볼 수 있음

 

Summary Report

결과 레포트를 보고 싶을 때 사용

요청에 대한 결과를 요약해서 보여준다.

각 요소에 대해 간단히 설명하면

Label : 사용자가 사용한 request의 이름을 기준으로 정렬

Samples : request의 개수

Average : Sample Time의 평균

Min : Sample의 최소 시간

Max : Sample의 최대 시간

Std.Dev. : Sample Time의 표준편차

Error % : 에러율

Throughput : 시간당 처리량

Received KB/sec - 시간당(sec) 받은 데이터(KB)
Sent KB/sec - 시간당(sec) 보낸 데이터(KB)
Avg. Bytes - 평균 바이트

 

Assertion

요청 결과의 성공 여부에 대해 세분화된 조건을 설정

Test plan 우클릭 후 Add -> Assertions -> 선택 (해당 글은 Response Assertion 선택함)

만약 응답 상태 코드가 200인 응답만 성공으로 보려고 하면 다음과 같이 설정하면 된다.

 

 


https://jaehoney.tistory.com/224

 

Apache JMeter란 무엇인가? (+ 사용 방법 with 성능 및 부하 테스트)

Apache JMeter Apache JMeter는 서버가 제공하는 성능 및 부하를 측정할 수 있는 테스트 도구이다. JMeter는 순수 Java 애플리케이션 오픈소스이며 서버나 네트워크 또는 개체에 대해 과부하를 시뮬레이션

jaehoney.tistory.com

https://kamang-it.tistory.com/entry/JMeterlistener-%ED%99%9C%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8B%9C%EA%B0%81%ED%99%94-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B2%B0%EA%B3%BC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-%EB%B3%B4%EA%B8%B0

 

[JMeter]listener 활용해서 데이터 시각화, 데이터 결과 리포트 보기-(5)

참고:[JMeter]오픈 소스 부하테스트 툴 설치와 사용-(1) [JMeter]쓰레드 그룹만들기-(2)[JMeter]http request-(3)[JMeter]jmeter.log로 로그 보기-(4) jmeter를 사용해서 부하를 주는 것을 할 수 있다.필자는 주로 http

kamang-it.tistory.com