기타/IT기타

Jmeter 시나리오를 활용하여 부하테스트 진행해보기

Tech원 2025. 10. 29. 15:26

0. 개요

  • 해당 글은 시나리오 기반 jmx 파일이 있다는 가정 하에 작성되었습니다.
  • 목차
    1. 테스트 실행 준비하기
    2. 테스트 실행 및 부하 적용하기
    3. 테스트 진행 모니터링
    4. 보고서 파일 생성하기

시나리오 사전 설명

- 하기 서술되는 내용 대상이 되는 시나리오 설명입니다.

  • 내용 : TOBE / ASIS 간의 성능 비교를 위한 부하 테스트 시나리오
  • 부하 시나리오 : 스레드 수를 점진적으로 늘려가며 서버에 부하 작용
  • 리스너 세팅 : Summary report(지표값 확인) 및 Result tree(에러 내용 확인)를 활용한 테스트 모니터링
  • 보고서 세팅 : Jmeter의 'jp@gc' 기능을 활용하여 그래프 자동 생성 및 Jmeter 내장 기능을 통한 HTML 리포트 생성

1. 테스트 실행 준비

  • 사본 시나리오(.jmx) 불러오기

(1) Jmeter GUI 실행하기

  C드라이브(C:\)에 있는 '성능점검' 폴더로 들어간 뒤 'jmeter-custom' 파일을 실행합니다.

(2) 시나리오 불러오기

시나리오 파일( (C:\scenario\{xxx}.jmx)을 GUI로 드래그하여 불러옵니다 (or Jmeter에서 'open' 버튼을 통해 jmx파일 열기)

시나리오 파일 드래그
초기 화면

  • 테스트 환경 및 기본 설정 확인

(1) 시나리오 기본 변수 확인 및 수정하기

최상단 아이콘(플라스크 모양 - x2bee)를 클릭하면 설정이 되어있는 전역 변수를 확인할 수 있습니다.

올바르게 세팅 되어있는지 확인합니다. (ex. TOBE 서버 테스트 시 'target' : '.tobe' 로 설정되어 있는지 등)

target 변수값 : .tobe

 

(2) 시나리오 세팅값 확인

'+' 를 눌러서 하위 속성 확인.

- 'API목록 (통합테스트)'(톱니바퀴 모양)이 활성화 되어 있는지 확인

  - 회색 표시 : 비활성화 상태

    활성화 필요 시 '우클릭' 'enable / disable'

- 컨트롤러(흰색 네모칸에 파란색 점 2개)가 활성화 되어 있는지 확인

  - Thread Group Report ~~ : 리포트 생성을 위한 스크립트 세팅

  - Workload 별 가중치 (분산) : 전체 시나리오

  - 단위 업무 + 스트레스 테스트 : 전체 시나리오 중 일부분만 가져와서 테스트 하기 위한(ex. 단위 업무 테스트) 컨트롤러

 

2. 테스트 실행 & 부하 적용

  • 스레드 설정, Ramp-up 등 기본값 점검

(1)  'API목록 (통합테스트)' 를 클릭하여 Thread 설정 값을 확인 

'총 스레드 수', '부하 시간' 등의 설정을 확인합니다.

  • 테스트 실행 방법

  • 유의 사항 및 체크포인트

 

3. 모니터링 및 리소스 확인

  • 주요 JMeter 리스너(Listerner)

(1) 'Summary Report'

스레드 추가 및 Request가 진행되면서 나타나는 지표를 확인할 수 있습니다.

주요 항목 :

  - Average : 평균 응답 속도
  - Error % : 에러율
  - Throughput : TPS

Summary Report 화면

(2) 'View Results Tree'

Request 정보(헤더, 바디, URL 등)와 Response(응답 코드, 메시지, 헤더, 바디 등)의 정보를 볼 수 있습니다.

Summary Report를 모니터링 하다가 'Error %'가 0퍼보다 높게 나타났다면 원인 분석이 필요합니다.

이러한 경우에 View Results Tree 리스너를 사용하여 응답 값을 실시간으로 확인할 수 있습니다. 

  • 리소스 모니터링 포인트

(1) 'Summary Report'

  - 에러가 발생하진 않는지?

  - Request는 정상적으로 분산되어 들어가는지?

  - TPS가 올라가고 있는지?

(2) 'View Results Tree'

  - 에러 응답 코드가 어떤 것인지?

4. 보고서 생성 및 분석

결과 파일 저장 기본 설정

  • HTML 대시보드 리포트 생성 방법 (명령어 포함)

(1) 리포트 생성

Jmeter에 내장되어 있는 리포트 생성 기능을 사용할 것입니다.

우선 결과 파일을 확인합니다. (경로 : C:\성능점검\result)

사전에 세팅된 형식 (data-yyyymmdd{time})에 따라서 저장 되어있습니다.

뒤에 있는 숫자 부분을 미리 복사해놓습니다.

 

이후 'CMD'를 실행하여 아래 명령어를 수행합니다.

기본 명령어는 'jmeter -g' 이므로 경로에 유의하여 진행하면 됩니다.

(${복사한 숫자} 부분에 미리 복사해둔 숫자를 입력합니다.)

('성능점검' 폴더가 'C:\'에 제대로 들어가 있다면 아래 명령어 그대로 실행)

cd C:\성능점검\apache-jmeter-5.6.2\bin
jmeter -g ./../../result/data-${복사한 숫자}/resulttable-result.csv -o ./../../result/html-report-${복사한 숫자}
  • 보고서 구성 요소

(1) Dashboard

수행 시간 및 Request 성공 여부(원 그래프)로 나타납니다.

아래로 스크롤하면 Summary Report 리스너를 통해 확인했던 표가 나타납니다.

 

(2) Charts

- Jmeter의 그래프 생성을 활용하여 자동 생성됩니다.

  - 주요 그래프 1 : Over Time - Response Time Percentiles Over Time (successful responses)

    : 시간대별 평균 응답 시간

  - 주요 그래프 2 : Throughput - Total Transactions Per Second

    : 시간대별 TPS
  - 주요 그래프 3 : Throughput - Response Time Vs Request

    : 요청 수별 응답 시간

 

 

+@ Jmeter 리소스 제한 수정하기

Jmeter가 '서버에 부하'를 줄 수 있지만 '클라이언트(내 PC)에 부하'를 줄 수도 있습니다 (????)

Jmeter 프로그램이 사용하는 Memory가 꽤나 크기에 기본적으로 제한이 걸려있습니다.

이를 수정하기 위해선 Jmeter 실행파일을 조금 수정해볼 수 있습니다.
(C:\성능점검\jmeter-custom 파일 우클릭 - 메모장에서 편집)  

 

JVM ARGS 옵션 추가

set "JVM_ARGS=%JVM_ARGS% -Xms4g -Xmx8g -XX:+UseG1GC -XX:MaxGCPauseMillis=200"

예시