본문 바로가기
IT

JMeter를 활용한 성능 테스트와 동시 접속자 테스트

by kuja-hazzy-story 2024. 11. 4.
반응형

Apache JMeter는 애플리케이션의 성능과 안정성을 평가하기 위한 성능 테스트와 동시 접속자 테스트를 쉽게 실행할 수 있는 강력한 도구입니다. 이 글에서는 Mac 환경에서 JMeter를 설치하는 방법부터, 테스트 시나리오 작성, 결과 분석 및 보고서 작성까지 JMeter 사용법을 설명합니다.


JMeter란?

JMeter는 Apache Software Foundation에서 개발한 오픈 소스 성능 테스트 도구입니다. 웹 애플리케이션, 데이터베이스, API, 메일 서버 등 다양한 시스템에 대한 성능 테스트 및 부하 테스트를 제공하며, HTTP, HTTPS, SOAP, REST API 등 여러 프로토콜을 지원합니다. JMeter의 기본 목적은 시스템의 성능, 응답 시간, 처리량 등을 측정하여 최적화할 수 있는 지표를 제공하는 것입니다.


Mac에서 JMeter 설치 방법

Mac 환경에서 JMeter 설치는 간단합니다. 다음 단계를 따라 쉽게 설치할 수 있습니다.

  1. Java 설치 확인: JMeter는 Java 기반이므로, 최신 Java Development Kit(JDK)가 설치되어 있어야 합니다. 터미널에서 아래 명령어로 확인할 수 있습니다.
  2. bash
    코드 복사
    java -version
  3. JMeter 다운로드: Apache JMeter 공식 사이트에서 최신 버전의 JMeter를 다운로드합니다. Mac의 경우 .tgz 형식의 압축 파일을 선택합니다.
  4. 압축 해제 및 실행: 다운로드한 파일의 압축을 해제한 후 bin 디렉토리에서 jmeter 스크립트를 실행하여 JMeter GUI를 시작합니다.
  5. bash
    코드 복사
    cd ~/Downloads/apache-jmeter-<version>/bin ./jmeter

JMeter를 활용한 성능 테스트와 동시 접속자 테스트 방법

JMeter에서 성능 테스트를 구성하려면 **테스트 계획(Test Plan)**과 **스레드 그룹(Thread Group)**을 정의해야 합니다. 스레드 그룹은 테스트의 기본 단위로, 각 스레드가 개별 사용자를 시뮬레이션하여 시스템에 부하를 발생시킵니다.

1. 테스트 계획 구성하기

  1. 새로운 테스트 계획: JMeter를 실행하고, 상단 메뉴에서 File > New를 클릭하여 새로운 테스트 계획을 생성합니다.
  2. 스레드 그룹 추가: 테스트 계획을 마우스 오른쪽 버튼으로 클릭하여 Add > Thread (Users) > Thread Group을 선택합니다. 스레드 그룹은 JMeter 테스트에서 가상 사용자를 정의하며, 요청 횟수와 간격을 설정할 수 있습니다.
    • Number of Threads (Users): 동시 접속할 사용자 수를 설정합니다. 예를 들어 50으로 설정하면, 50명의 가상 사용자가 동시에 요청을 보냅니다.
    • Ramp-Up Period (in seconds): 사용자가 모두 동시에 요청하지 않고 서서히 증가하도록 설정합니다. 예를 들어, 50명의 사용자가 10초에 걸쳐 증가하도록 하려면 10초로 설정합니다.
    • Loop Count: 각 사용자가 요청을 반복할 횟수를 설정합니다. 만약 5로 설정하면, 각 사용자는 총 5번의 요청을 보냅니다.

2. 샘플러(Sampler) 추가하기

샘플러는 JMeter에서 서버로 요청을 보내는 구성 요소입니다. 가장 많이 사용하는 샘플러는 HTTP Request Sampler입니다. 웹 애플리케이션이나 API 서버에 요청을 보내려면 다음과 같이 설정합니다.

  • HTTP Request Sampler:
    • Server Name or IP: 테스트할 서버의 도메인명 또는 IP 주소를 입력합니다.
    • Path: 테스트할 특정 경로를 설정합니다 (예: /login).
    • Method: HTTP 요청 메서드를 선택합니다 (GET, POST 등).
    • Parameters: 요청에 포함할 파라미터와 값을 추가할 수 있습니다.

3. 리스너(Listener) 추가하기

리스너는 테스트 결과를 저장하고 시각화하는 데 사용됩니다. View Results Tree, Summary Report, Graph Results 등 다양한 리스너를 통해 요청 결과를 확인할 수 있습니다.

  • Summary Report: 요청별 평균 응답 시간, 처리량, 성공/실패 횟수 등을 요약하여 보여줍니다.
  • View Results Tree: 요청과 응답의 세부 내용을 트리 구조로 볼 수 있으며, 에러 원인을 분석하는 데 유용합니다.

예제 설정

  1. 테스트 계획: 새 테스트 계획을 생성합니다.
  2. 스레드 그룹 설정: 스레드 수를 100으로, Ramp-Up Period를 20초로 설정하여 동시 접속 테스트를 수행합니다.
  3. HTTP Request Sampler 추가: Server Name을 www.example.com으로 설정하고, Path는 /api/test로 지정합니다.
  4. 리스너 추가: Summary Report 리스너를 추가하여 테스트 결과를 요약합니다.

4. 테스트 실행 및 결과 분석

테스트 계획이 완료되면 녹색 화살표 아이콘을 클릭하여 테스트를 실행합니다. 리스너에서 각 요청의 응답 시간, 성공률, 오류 등을 확인할 수 있으며, 이 데이터를 바탕으로 시스템의 성능을 분석할 수 있습니다.


JMeter 테스트 결과보고서 작성 방법

JMeter는 테스트 결과를 다양한 형식으로 제공하므로, 성능 분석 보고서를 작성할 때 유용합니다. 다음과 같은 리스너와 기능을 통해 데이터를 수집하고 보고서를 생성할 수 있습니다.

  1. Summary Report: 각 요청의 응답 시간, 처리량, 에러율 등의 요약 데이터를 제공합니다.
  2. HTML Dashboard Report: JMeter에서 기본 제공하는 HTML 형식의 보고서를 생성할 수 있습니다. 결과 파일을 HTML로 내보내 시각화된 보고서를 작성할 수 있습니다.

HTML 보고서 생성 방법

JMeter CLI(Command Line Interface)를 통해 HTML 형식의 보고서를 자동 생성할 수 있습니다.

  1. 테스트 실행: jmeter -n -t <테스트파일>.jmx -l <결과파일>.jtl 명령어로 테스트를 실행합니다.
  2. 보고서 생성:
    bash
    코드 복사
    jmeter -g <결과파일>.jtl -o <출력폴더>
    이렇게 하면 지정된 출력 폴더에 HTML 형식의 보고서가 생성됩니다. 이 보고서에는 응답 시간 분포, 에러 비율, 처리량 등이 그래프와 표로 시각화됩니다.

IntelliJ에서 JMeter 사용하기

IntelliJ 환경에서 JMeter를 설정하고 사용하는 방법은 다음과 같습니다.

  1. 플러그인 설치: IntelliJ의 Plugins 메뉴에서 Apache JMeter 관련 플러그인을 설치합니다.
  2. 테스트 계획 로드 및 실행: IntelliJ에서 JMeter 테스트 계획 파일(.jmx)을 열어 쉽게 수정 및 실행할 수 있습니다.
  3. 통합 테스트 실행: IntelliJ에서 JMeter를 통해 개발 중인 API 서버 및 애플리케이션의 성능을 실시간으로 테스트할 수 있습니다.

이 방법을 통해 개발 환경에서 직접 성능 테스트를 수행하고, 코드 변경 사항이 성능에 미치는 영향을 쉽게 확인할 수 있습니다.


결론

JMeter는 다양한 애플리케이션과 서버에 대해 성능 테스트와 동시 접속자 테스트를 쉽게 구성할 수 있는 도구입니다. Mac에서 설치부터 간단한 테스트 계획 설정, 결과 분석 및 보고서 작성까지 JMeter 사용법을 익히면, 시스템 성능 개선과 안정성 확보에 큰 도움이 됩니다. 특히, JMeter가 제공하는 다양한 리스너와 보고서 생성 기능을 통해 효율적으로 테스트 결과를 분석하고, 실질적인 개선 방안을 도출할 수 있습니다.


 

반응형