1. 개요

이 기사에서는 JenkinsApache JMeter를 사용하여 지속적 전달 파이프라인을 구성할 것 입니다.

우리는에 의존하고 있습니다 하여 JMeter 이미 우리가 실행할 수있는 몇 가지 구성 성능 테스트를 가지고 첫째, JMeter를의 기초를 이해하는 좋은 출발점으로 기사. 그리고 해당 프로젝트의 빌드 출력을 사용하여 Jenkins Performance 플러그인 에서 생성된 보고서를 확인합니다 .

2. 젠킨스 설정

우선 안정적인 최신 버전의 Jenkins 를 다운로드 하고 파일이 있는 폴더로 이동한 다음 java -jar jenkins.war 명령을 사용하여 실행해야 합니다 .

초기 사용자 설정 없이는 Jenkins를 사용할 수 없습니다.

3. 성능 플러그인 설치

JMeter 테스트를 실행하고 표시하는 데 필요한 Performance 플러그인을 설치해 보겠습니다 .

이제 인스턴스를 다시 시작해야 합니다.

4. Jenkins로 JMeter 테스트 실행

이제 Jenkins 홈 페이지로 이동하여 "새 작업 만들기"를 클릭하고 이름을 지정하고 Freestyle 프로젝트를 선택 하고 "확인"을 클릭합니다.

다음 단계의 일반 에서 다음과 같은 일반 세부 정보로 구성할 수 있습니다.
다음으로 빌드할 저장소 URL과 분기를 설정해 보겠습니다.
이제 빌드 으로 이동 하여 프로젝트를 빌드하는 방법을 지정합니다. 여기에서 전체 프로젝트를 빌드하기 위해 Maven 명령을 직접 지정하는 대신 하나의 모듈을 빌드하는 것이 목적이므로 파이프라인을 더 잘 제어할 수 있는 다른 방법을 사용할 수 있습니다.

쉘 실행 하위 탭을 우리는 저장소를 복제 한 후 스크립트가 필요한 작업을 수행하기 위해 작성 :

  • 원하는 하위 모듈로 이동
  • 우리는 그것을 컴파일했다
  • 우리는 그것이 스프링 부트 기반 프로젝트라는 것을 알고 배포했습니다.
  • 포트 8989에서 앱을 사용할 수 있을 때까지 기다립니다.
  • 그리고 마지막 에 성능 테스트에 사용할 JMeter 스크립트의 경로( jmeter 모듈 의 리소스 폴더 안에 위치 )와 결과 파일( JMeter.jtl ) 의 경로 도 리소스 폴더에 지정합니다.

다음은 해당하는 작은 셸 스크립트입니다.

cd jmeter
./mvnw clean install -DskipTests
nohup ./mvnw spring-boot:run -Dserver.port=8989 &

while ! httping -qc1 http://localhost:8989 ; do sleep 1 ; done

jmeter -Jjmeter.save.saveservice.output_format=xml 
  -n -t src/main/resources/JMeter.jmx 
    -l src/main/resources/JMeter.jtl

다음 이미지와 같이:

GitHub에서 프로젝트를 복제한 후 컴파일하고 포트 8989에서 열고 성능 테스트를 처리한 후 성능 플러그인이 사용자에게 친숙한 방식으로 결과를 표시하도록 해야 합니다.

전용 Post-build Actions 를 추가하여 이를 수행할 수 있습니다 . 결과 소스 파일을 제공하고 작업을 구성해야 합니다.

후속 구성으로 표준 모드선택합니다 .

의 히트하자 , 저장을 버튼에 젠킨스 대시 보드를 클릭 왼쪽 메뉴에서 이제 빌드 하고 우리가 거기까지 구성 작업의 설정을 완료 할 때까지 기다립니다.

완료되면 콘솔에서 프로젝트의 모든 출력을 볼 수 있습니다. 끝에서 우리는 Finished: SUCCESS 또는 Finished: FAILURE를 얻을 것입니다 .

왼쪽 메뉴를 통해 액세스할 수 있는 성능 보고서 영역으로 이동해 보겠습니다 .

성능 측면에서 차이점을 확인하기 위해 현재 빌드를 포함하여 모든 과거 빌드에 대한 보고서가 있습니다.

방금 만든 마지막 빌드의 결과만 표시하도록 테이블 바로 위에 있는 표시를 클릭해 보겠습니다.

우리 프로젝트의 대시보드 에서 마지막 빌드 결과를 보여주는 다른 그래프인 Performance Trend 를 얻을 수 있습니다 .

참고: 파이프라인 프로젝트에 동일한 것을 적용하는 것도 다음과 같이 간단합니다.

  1. 대시보드에서 다른 프로젝트(항목)를 만들고 이름을 JMeter-pipeline으로 지정 합니다(예: 일반 정보 탭 ).
  2. 프로젝트 유형으로 파이프라인 선택
  3. 파이프 라인 , 정의에 선택 파이프 라인 스크립트를 체크 사용 그루비 샌드 박스
  4. 에서 스크립트 영역 바로 다음 줄을 입력 :
node {
    stage 'Build, Test and Package'
    git 'https://github.com/eugenp/tutorials.git'
  
    dir('jmeter') {
        sh "./mvnw clean install -DskipTests"
        sh 'nohup ./mvnw spring-boot:run -Dserver.port=8989 &'
        sh "while ! httping -qc1
          http://localhost:8989 ; do sleep 1 ; done"
                
        sh "jmeter -Jjmeter.save.saveservice.output_format=xml
          -n -t src/main/resources/JMeter.jmx 
            -l src/main/resources/JMeter.jtl"
        step([$class: 'ArtifactArchiver', artifacts: 'JMeter.jtl'])
        sh "pid=\$(lsof -i:8989 -t); kill -TERM \$pid || kill -KILL \$pid"
    }
}

이 스크립트는 프로젝트를 복제하여 시작하고 대상 모듈로 이동하여 컴파일 및 실행하여 http://localhost:8989에서 앱에 액세스할 수 있는지 확인합니다.

다음으로 리소스 폴더에 있는 JMeter 테스트를 실행하고 결과를 빌드 출력으로 저장하고 마지막으로 애플리케이션을 닫습니다.

5. 결론

이 빠른 기사에서는 Jenkins 에서 Apache JMeter 테스트 를 두 가지 방법 으로 실행하고 표시하기 위한 간단한 지속적 전달 환경을 설정했습니다 . 첫 번째는 Freestyle 프로젝트 를 통해 , 두 번째는 Pipeline을 통해 이루어 집니다.

항상 그렇듯이 이 기사의 소스 코드는 GitHub 에서 찾을 수 있습니다 .

Junit footer banner