부하 테스트(Load Test) 툴

Seoyeon·2025년 9월 1일
0

백엔드기초

목록 보기
9/17

1. Apache JMeter

  • 특징

    • 가장 전통적이고 널리 쓰이는 오픈소스 부하 테스트 툴
    • GUI 기반이라 비교적 쉽게 시작 가능
    • 다양한 프로토콜 지원 (HTTP, WebSocket, JDBC, FTP 등)
  • 장점

    • 생태계 크고 자료 풍부
    • GUI + CLI 둘 다 가능
    • 플러그인 많음
  • 단점

    • 무겁고 대규모 테스트 시 성능 저하
    • 스크립팅 유연성이 k6보다 떨어짐

2. k6 (by Grafana Labs)

  • 특징

    • 최근 가장 인기 있는 코드 기반 부하 테스트 툴
    • 스크립트를 JavaScript로 작성 → 개발자 친화적
    • Prometheus, Grafana와 통합 쉬움
  • 장점

    • 가볍고 성능 좋음
    • CI/CD 파이프라인에 넣기 편리
    • 클라우드 실행(k6 Cloud) 옵션도 제공
  • 단점

    • GUI 없음 (개발자 아닌 경우 진입 장벽)
    • 특정 프로토콜은 추가 라이브러리 필요

3. Locust

  • 특징

    • Python 기반 부하 테스트 툴
    • 테스트 시나리오를 Python 코드로 작성
  • 장점

    • Python 친숙하다면 배우기 쉬움
    • 확장성 뛰어남 (분산 부하테스트 가능)
  • 단점

    • JMeter/k6보다 자료가 상대적으로 적음

4. Artillery

  • 특징

    • Node.js 기반 경량 툴
    • YAML or JS로 시나리오 작성 가능
  • 장점

    • 설치/사용 간단
    • 실시간 리포팅 지원
  • 단점

    • JMeter만큼 다양한 프로토콜 지원은 어려움

비교 요약

언어/방식장점단점적합 대상
JMeterGUI + 스크립트생태계 크다, GUI 쉬움무겁다비개발자 포함 전통적 QA팀
k6JS 코드 기반가볍다, CI/CD 적합GUI 없음개발자 친화형, DevOps팀
LocustPython 코드 기반확장성, Python 친숙자료 적음Python 친화 환경
ArtilleryNode.js 기반설치 간단, JS 가능기능 제한소규모/빠른 PoC

1) 설치 & 실행

  • JMeter 다운로드 → zip 압축 해제

  • 실행:

    ./bin/jmeter.sh   # Linux/Mac
    ./bin/jmeter.bat  # Windows

2) 기본 시나리오 (예: API /api/posts 부하 테스트)

  1. JMeter 실행 → Test Plan 생성

  2. Thread Group 추가

    • Users (동시 접속자): 100
    • Ramp-up: 10 (10초 동안 100명 증가)
    • Loop count: 10 (각 사용자 10번 요청)
  3. HTTP Request Sampler 추가

    • Method: GET
    • URL: https://example.com/api/posts
  4. View Results Tree / Summary Report Listener 추가 → 결과 확인


JMeter vs k6 실무 차이

항목JMeterk6
UIGUI 있음 (초보자 편리)CLI + 코드 기반 (개발자 친화)
스크립트XML 형식 (복잡)JavaScript (간단, 친숙)
확장성무거움, 대규모엔 비효율가벼움, 분산/클라우드 확장 좋음
보고서HTML Report 자동 생성CLI/JSON → Grafana와 통합

0개의 댓글