본문 바로가기
Develop/etc

[Jenkins] JMeter와 연동하기

by 연로그 2021. 4. 29.
반응형

목차

  1. JMeter 설치
  2. JMeter 테스트 실행
  3. Jenkins와 JMeter 연동
  4. Jenkins 실행

 

설치 환경

  • Windows 10
  • Jenkins Pipeline Item

 


1. JMeter 설치

 

파일 다운로드

archive.apache.org/dist/jmeter/binaries/ 에서 원하는 버전 선택하여 JMeter 설치

참고로 버전 3.0부터는 Java 7, 버전 3.2부터는 Java 8이 필수적이다.

zip 파일을 다운받은 후, 원하는 위치에 압축 해제 한다.

 

jmeter.bat 실행

JMeter 설치 경로/bin/jmeter.bat을 실행한다.

 

2. JMeter 테스트 실행

 

Thread Group 생성

Test Plan을 우클릭한 뒤, Add - Threads(Users) - Thread Group 클릭 후 설정 변경

5분 동안 스레드 30개 초당 40회 요청

  • Action to be taken after a Sampler error: 실행 중 에러 발생 시 처리 방안
  • Continue: 오류 무시하고 테스트 계속
  • Start Next Thread Loop: 오류 무시하고 다음 루프 시작
  • Stop Thread: 현재 스레드 종류
  • Stop Test: 현재 샘플이 끝날 때 전체 테스트 중지
  • Stop Test Now: 전체 테스트 바로 중지

 

  • Thread Properties
  • Number of Threads: 생성 스레드 수
  • Ramp-Up Period: 위 스레드가 모두 실행되는데 걸리는 시간
  • Loop Count: 반복 횟수

 

  • Scheduler Configuration: Scheduler 체크 시 사용 가능
  • Duration
  • Startup delay
  • Start Time
  • End Time

 

HTTP Request 생성

Thread Group 우클릭 - Add - Sampler - HTTP Request 클릭 후 정보 입력

 

Samler란? ▼

더보기

Sampler란 서버에 전송할 요청이다.

예시에선 HTTP 요청을 하기 위해 HTTP Request Sampler를 추가했지만 이 외에도 Java Request, FTP Request 등 다양한 요청이 가능하다.

 

Listener 생성

Sampler 우클릭 - Add - Listener - View Results Tree

(View Results in Table, Summary Report, ... 다른 선택지를 사용해도 괜찮다.)

 

테스트를 해보려면 녹색 삼각형을 클릭하면 된다.

 

테스트를 jmx 파일 형식으로 저장

 

3. Jenkins와 JMeter 연동

 

플러그인 설치

Jenkins 접속 후, Jenkins 관리 - 플러그인 관리 - Performance 다운 후 Jenkins 재시작

 

Pipeline Script 작성

아래 스크립트는 Pipeline Syntax 자동 완성 기능으로 작성한 스크립트들로, declarative 형식이다.

...
	stage ('jMeter'){
	    steps{
		bat 'jmeter설치경로/bin/jmeter.bat -j jmeter.save.saveservice.output_format=xml -n -t jmx파일경로 -l 결과파일명.jtl'
		perfReport filterRegex: '', showTrendGraphs: true, sourceDataFiles: 'jtl파일경로'
	    }
	}
...
  • bat ~: jmx 파일을 실행하고, 테스트 결과 파일(jtl) 생성
  • perfReport ~: jtl 파일을 Jenkins 내에서 확인하기 쉽게 해줌

 

4. Jenkins 실행

 

빌드 시작

Build Now를 클릭해 작성한 Pipeline Script가 잘 작동하는지 확인하자.

Console Output이나 Performance Report 항목을 통해 결과를 확인할 수 있다.

( 아래 화면과 같은 경우에는 일부러 오류를 만든 화면이라 실제 화면과는 다소 다를 수 있다. )

 

 

4-1. Spring Boot plugin requires Gradle 4.4 or later. The current version is Gradle 4.3

- 간단한 GET 매핑을 만들기 위해 Gradle을 Spring Boot로 변환했는데 버전이 너무 낮아서 생긴 문제다.

- 로컬에서는 Eclipse를 통해 Gradle 버전을 바꿔 빌드에 성공했으나 Jenkins에서는 실패했다.

-> gradle-wrapper.properties에서 Gradle 버전을 바꿔주니 Jenkins에서도 성공했다.

반응형