Apache Jmeter 대용량 트래픽 테스트

Jae Hun Lee·2023년 3월 16일
0
post-thumbnail

Apache Jmeter 대용량 트래픽 테스트

JMeter란?

  • JMeter는 Apache Software Foundation에서 개발하고 유지보수하는 오픈소스 로드 테스트 도구입니다. 주로 웹 애플리케이션, 웹 서비스, FTP 등 다양한 프로토콜을 지원하며, 대규모 분산 테스트를 위한 기능도 제공합니다.
  • JMeter는 사용자가 작성한 테스트 계획을 기반으로 요청을 전송하고 응답 시간, 처리량, 에러율 등의 테스트 결과를 수집합니다. 사용자는 JMeter 내장 GUI를 통해 테스트 계획을 작성하거나, 스크립트를 작성하여 테스트를 수행할 수 있습니다.

장점

  • 무료이며 오픈소스로 공개되어 있어 비용이 들지 않습니다.
  • 다양한 프로토콜을 지원하며, 확장성이 뛰어나 사용자 정의 요청 처리도 가능합니다.
  • 다양한 그래프 및 리포트를 제공하여 결과 분석이 쉽습니다.
  • 자바 기반으로 개발되어 있어 운영체제와 상관없이 실행할 수 있습니다.

비교

  • JMeter:
    • 난이도: 초급~중급
    • 시나리오 작성 난이도: 중간
    • 시나리오 작성법: GUI 기반으로 쉽게 시나리오를 작성할 수 있습니다.
    • 장점: 사용이 간편하며, 다양한 프로토콜을 지원합니다. 또한, 다양한 플러그인을 제공하여 더욱 다양한 기능을 추가할 수 있습니다.
    • 단점: 대규모 트래픽에 대한 처리가 어렵고, 멀티스레드 처리 시 메모리 누수 현상이 발생할 수 있습니다.
  • Gatling:
    • 난이도: 중급~고급
    • 시나리오 작성 난이도: 매우 높음
    • 시나리오 작성법: Scala 언어 기반으로 작성되어 있어, 프로그래밍 지식이 필요합니다.
    • 장점: 시나리오 작성에 대한 유연성이 뛰어나며, 코드 기반의 테스트를 지원합니다. 또한, 대규모 트래픽에 대한 처리가 용이합니다.
    • 단점: 처음 사용하는 사용자에게는 진입 장벽이 높을 수 있습니다.
  • nGrinder:
    • 난이도: 중급~고급
    • 시나리오 작성 난이도: 높음
    • 시나리오 작성법 : Java 기반으로 작성되어 있으며, JUnit을 기반으로한 스크립트를 지원합니다.
    • 장점: 사용이 간편하며, 클러스터링 기능을 제공하여 대규모 트래픽에 대한 처리가 가능합니다. 또한, 스크립트 레코딩 기능이 있어 빠른 테스트 시간을 보장합니다.
    • 단점: 지원되는 프로토콜이 제한적이며, 커스터마이징이 어려울 수 있습니다.

테스트

https://jmeter.apache.org/download_jmeter.cgi

  1. zip파일을 다운받아준다
    - MAC의 경우 brew install jmeter로 설치해준다
  1. 압축 해제 후 bin폴더에 들어가 jmeter.bat파일을 실행시켜 준다
    - MAC의 경우 open /usr/local/bin/jmeter 을 실행해준다
  1. Add - Threads - Thread Group를 선택해준다
  1. Thread Properties의 값을 입력해준다

    • Number of Threads (user) : Thread의 개수 (유저수)
    • Ramp-up period (seconds) : 요청 시간 초
    • Loop Count : 반복 횟수 ( infinite : 무한반복)

  1. Thread Group 우클릭 - ADD - Sampler - Http Request를 추가해준다
  1. 호출할 API정보를 입력해준다
  1. Add - Listener엔 여러가지 LIstener가 있는데 필요한 리스너를 등록해준다

  • View Results Tree 예시
  • Aggregate Report 예시
  • View Results In Table 예시
  1. 재생 버튼을 눌러준다.
  1. 설정을 파일로 저장 여부를 선택한다.
  1. 중지를 하고 싶다면 중지 버튼을 누르고 결과를 확인한다.

CLI

CI/CD 에 다음과 같이 적용하면 자동화를 할 수 있다.

/apache-jmeter-5.5/bin/jmeter -n -t ./test.jmx

참고

https://jaehoney.tistory.com/224

profile
기록을 남깁니다

0개의 댓글