JMeter로 부하테스트 시나리오 설계하기
JMeter는 Apache 재단의 오픈소스 부하테스트 도구로, GUI와 CLI 모두 지원하며 복잡한 HTTP 시나리오를 코드 없이 구성할 수 있습니다.
# macOSbrew install jmeter
# Windows / Linux — 공식 배포판 다운로드# https://jmeter.apache.org/download_jmeter.cgi3가지 핵심 시나리오 패턴
Section titled “3가지 핵심 시나리오 패턴”1. Stress Test — 한계 용량 탐색
Section titled “1. Stress Test — 한계 용량 탐색”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>3. Soak Test — 메모리 누수 탐지
Section titled “3. Soak Test — 메모리 누수 탐지”일정 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 응답시간 | < 300ms | 300~1,000ms | > 1,000ms |
| TPS | 목표치 ±10% | -10~30% | -30% 이상 |
CLI 실행 (CI/CD 파이프라인 연동)
Section titled “CLI 실행 (CI/CD 파이프라인 연동)”# GUI 없이 실행 — CI 환경에서 사용jmeter -n \ -t test-plan.jmx \ -l results.jtl \ -e -o report-output/
# 결과 HTML 리포트 생성# report-output/index.html 에서 확인TestForge와 연계
Section titled “TestForge와 연계”TestForge 스캔으로 추출한 엔드포인트 목록을 JMeter Thread Group에 바로 붙여넣어 시나리오를 빠르게 구성할 수 있습니다.
이 가이드를 내 서비스에 직접 적용해 보세요.
TestForge 무료 스캔 시작 →