1. 개요
이 기사에서는 Apache JMeter 를 사용하여 성능 테스트를 구성하고 실행할 것입니다.
2. JMeter 설정
JMeter를 다운로드 하고 압축을 풀고 bin 폴더 로 이동 하여 실행 파일( Windows의 경우 * .bat , Linux/Unix의 경우 * .sh) 을 실행해 보겠습니다 .
다음으로 이 폴더를 명령줄에서 액세스할 수 있도록 경로 환경 변수에 추가하기만 하면 됩니다.
작성 당시 가장 안정적인 버전은 3.3 입니다. 여기 에서 최신 버전을 확인할 수 있습니다 .
3. JMeter 스크립트 만들기
이제 첫 번째 JMeter 스크립트(테스트에 대한 기술 설명이 포함된 파일)를 작성해 보겠습니다.
이 API는 REST API를 노출하는 간단한 SpringBoot 애플리케이션입니다.
테스트 계획을 업데이트 하고 이름을 먼저 변경한 다음 스레드 그룹 을 추가해 보겠습니다 .
스레드 그룹은 사용자의 흐름을 알 수있게 해준다 그들이 상호 작용하는 앱의 GUI에 우리의 스크립트 이름을 마우스 오른쪽 버튼으로 클릭하고 선택한 메뉴에 따라 방법을 시뮬레이션 :
이제 Thread Group 의 구성 부분으로 이동하여 애플리케이션에 병렬로 요청하는 사용자 수를 지정합니다.
여기에서 다음과 같은 매개변수를 지정했습니다.
– Name: 쓰레드 그룹에 부여하고자 하는 이름
– 스레드 수(사용자) : 병렬 사용자 수
– Ramp-up time : 0에서 선언된 사용자 수 까지 도달하는 데 필요한 시간
– Loop count : 반복횟수
5명의 사용자 각각으로부터 오는 것으로 시뮬레이션 할 HTTP 요청 을 추가합니다 .
아래 이미지와 같이 위에 설명된 API를 처리하기 위해 정보를 입력해 보겠습니다.
웹 사이트 주소, 포트 및 특정 경로만 입력하면 됩니다.
다음으로 메뉴 " 추가 > 리스너 " 에 따라 View Results Tree ( 결과가 레코드 List인 경우 View Results in Table 사용 ) 를 추가한 후 사용자의 요청을 시뮬레이션해 보겠습니다 .
테스트를 실행하고 응답 데이터를 보려면 상단의 녹색 화살표 오른쪽 버튼을 누르십시오.
샘플러 결과 탭 에서 더 자세한 응답을 볼 수 있습니다 .
HTTP 요청 에 Duration Assertion 을 추가하여 끝내자. 10밀리초 이상 지속되는 모든 요청은 실패한 테스트로 간주됩니다.
테스트를 다시 실행한 후 10밀리초 이내에 학생 List을 가져올 수 없는 일부 사용자(여기서는 3명)가 있음을 알 수 있습니다.
이제 API의 리소스 폴더에 확장자가 .jmx인 테스트를 저장해 보겠습니다 .
테스트 파일을 구성하는 데 더 많은 요소를 사용할 수 있습니다.
- JDBC 요청 : 데이터베이스에 JDBC 요청(SQL 쿼리)을 보내는 데 유용합니다. 사용하기 전에 JDBC 연결 구성 요소 를 설정해야 합니다.
- XML Assertion : 응답 데이터가 올바르게 올바른 XML 문서인지 테스트합니다.
- Size Assertion : 응답에 올바른 수의 바이트가 포함되어 있는지 확인합니다.
- JMS Publisher : 메시징을 위한 J2EE 사양에 따라 지정된 대상(주제/대기열)에 메시지를 게시합니다.
사용 가능한 모든 구성 요소는 사용자 설명서에 자세히 설명되어 있습니다 .
4. JMeter 테스트 실행
JMeter 테스트를 실행하는 두 가지 방법이 있습니다. 그 중 하나는 사용 가능한 Maven 플러그인을 사용하고 다른 하나는 비 GUI 모드에서 독립 실행형 JMeter 앱을 사용하는 것입니다.
어쨌든 둘 다 이전에 구성한 JMeter 스크립트에 도달할 위치를 알아야 합니다.
4.1. JMeter 메이븐 플러그인
JMeter Maven 플러그인 은 빌드의 일부로 JMeter 테스트를 실행할 수 있는 기능을 제공하는 Maven 플러그인입니다. 현재 그의 마지막 버전은 Apache JMeter 3.3과 호환되는2.6.0입니다.
프로젝트 의 pom.xml 에 추가해 보겠습니다 .
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.6.0</version>
<executions>
<execution>
<id>jmeter-tests</id>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
</executions>
<configuration>
<testFilesDirectory>${project.basedir}/src/main/resources</testFilesDirectory>
<resultsDirectory>${project.basedir}/src/main/resources</resultsDirectory>
</configuration>
</plugin>
그런 다음 mvn verify로 모든 테스트를 실행 하거나 mvn jmeter:jmeter 로 JMeter 테스트만 실행할 수 있습니다 . 다음은 명령의 콘솔 출력입니다.
참고: 여기에서 프로젝트에서 테스트가 있는 디렉토리를 지정했으며 기본 디렉토리( ${project.basedir}/src/test/jmeter )가 선택됩니다. 마찬가지로 결과 디렉토리가 구성되지 않으면 기본 디렉토리는 ${project.basedir}/target/jmeter/results 가 됩니다.
전체 플러그인 설명서는 여기에서 액세스할 수 있습니다 .
4.2. 비 GUI 모드
다른 방법은 JMeter 실행 파일을 사용하는 것입니다. 명령줄을 통해 사용할 수 있다고 가정하면 다음과 같이 할 수 있습니다.
jmeter -Jjmeter.save.saveservice.output_format=xml
-n -t src/main/resources/JMeter.jmx -l src/main/resources/JMeter.jtl
정확한 테스트 파일과 결과 파일을 채우는 출력 형식으로 XML을 설정했습니다.
참고: 로드 테스트에는 GUI 모드를 사용하지 않고 테스트 생성 및 테스트 디버깅에만 사용하는 것이 좋습니다.
5. 결론
이 빠른 사용방법(예제)에서는 SpringBoot 앱에서 Apache JMeter를 설정하여 Maven 플러그인으로 성능 테스트를 실행하는 동시에 기본 성능 테스트를 설계하는 방법을 실제로 살펴보았습니다.
항상 그렇듯이 이 기사의 소스 코드는 GitHub 에서 찾을 수 있습니다 .