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 에서 찾을 수 있습니다 .

Junit footer banner