Skip to content

JMeter로 부하테스트 시나리오 설계하기

JMeter는 Apache 재단의 오픈소스 부하테스트 도구로, GUI와 CLI 모두 지원하며 복잡한 HTTP 시나리오를 코드 없이 구성할 수 있습니다.

Terminal window
# macOS
brew install jmeter
# Windows / Linux — 공식 배포판 다운로드
# https://jmeter.apache.org/download_jmeter.cgi

VU(가상 사용자)를 단계적으로 올려 시스템이 무너지는 지점을 찾습니다.

VU: 10 → 50 → 100 → 200 → 500
시간: 각 단계 5분 유지
목적: 에러율 1% 초과 또는 p95 > 1,000ms 지점 = 안전 한계

JMeter Thread Group 설정:

<ThreadGroup>
<numThreads>200</numThreads> <!-- 최대 VU -->
<rampTime>300</rampTime> <!-- 5분에 걸쳐 증가 -->
<duration>1800</duration> <!-- 30분 실행 -->
<scheduler>true</scheduler>
</ThreadGroup>

2. Spike Test — 급격한 트래픽 대응

Section titled “2. Spike Test — 급격한 트래픽 대응”

짧은 시간에 트래픽이 폭증하는 상황을 재현합니다. (이벤트, 뉴스 언급 등)

VU: 10 → 500 (5초 내) → 10
시간: 스파이크 3분 유지 후 정상 복귀
목적: 급증 시 에러 여부, 정상 복귀 시간 측정
<!-- Stepping Thread Group 플러그인 사용 -->
<ThreadGroup guiclass="kg.apc.jmeter.threads.SteppingThreadGroup">
<Start users count>10</Start users count>
<Add user count>490</Add user count>
<Start added users>5</Start added users> <!-- 5초마다 490명 추가 -->
</ThreadGroup>

일정 VU를 장시간 유지하며 메모리·커넥션 누수를 탐지합니다.

VU: 50 (일정)
시간: 4~24시간
목적: 시간이 지날수록 응답시간 증가 = 누수 의심
<ThreadGroup>
<numThreads>50</numThreads>
<rampTime>60</rampTime>
<duration>14400</duration> <!-- 4시간 -->
</ThreadGroup>

결과 해석 — 어떤 수치를 봐야 하나?

Section titled “결과 해석 — 어떤 수치를 봐야 하나?”
지표정상 기준경고위험
에러율< 0.1%0.1~1%> 1%
p95 응답시간< 300ms300~1,000ms> 1,000ms
TPS목표치 ±10%-10~30%-30% 이상
Terminal window
# GUI 없이 실행 — CI 환경에서 사용
jmeter -n \
-t test-plan.jmx \
-l results.jtl \
-e -o report-output/
# 결과 HTML 리포트 생성
# report-output/index.html 에서 확인

TestForge 스캔으로 추출한 엔드포인트 목록을 JMeter Thread Group에 바로 붙여넣어 시나리오를 빠르게 구성할 수 있습니다.

TestForge 스캔 시작하기 →

이 가이드를 내 서비스에 직접 적용해 보세요.

TestForge 무료 스캔 시작 →