PoC(Proof of Concept) 담당자로 프로젝트 수행할 때 주로 사용했던 Groovy 스크립트 예제를 정리하였습니다.

 

1. JMeter 포스트 프로세서(PostProcesser) 란?

  • HTTP Request에서 반환된 응답 데이터를 추출, 수정 또는 추가 작업 수행할 수 있습니다.
  • 다음 테스트 플랜의 후속 요소에 전달 가능합니다.
  • 정규표현식 추출기, JSR233 PostProcesser 등 다양한 기능 지원합니다.

 

2. Groovy Script

  • JSR233 PostProcesser에서 기본으로 지원하는 스크립트
  • Java 플랫폼에서 동작하는 동적 스크립트 언어로 유연한 문법을 제공합니다.
  • Apache 재단이 관리하고 있어 향후 Jmeter 호환성이 제일 높을 것으로 예상 (추천)

 

3.   스크립트 예시

Response assertion과 조합하여 사용자 변수와 Front-end 응답 내용 디버깅 시 유용합니다.

Gradle 빌드 시스템이 Groovy 로 구성되어 있어 기본 문법을 알아두면 좋습니다.

 

3.1 변수 관리

// 변수 설정
vars.put("globalVar", "someValue")

// 변수 가져오기
def globalVar = vars.get("globalVar")
log.info("Global Variable: " + globalVar)

 

3.2 응답 상태코드 검사

def responseCode = prev.getResponseCode()

if (responseCode != '200') {
    log.warn("Unexpected response code: " + responseCode)
    SampleResult.setStopThread(true) // 스레드 중지
}

 

3.3 응답 데이터 가져오기

// bodyString 변수화
def response = prev.getResponseDataAsString()
// header 변수화
def headers = prev.getResponseHeaders()

log.info("response: " + response);
log.info("headers: " + headers);

// 쿠키정보 체크
if (headers.contains("Set-Cookie")) {
     log.info("Cookies found: ${cookies}")
} else {
	log.info("No Cookie Found")
}

 

3.4 API 응답 데이터 가져오기 - JSON

import groovy.json.JsonSlurper

def response = prev.getResponseDataAsString()
def json = new JsonSlurper().parseText(response)

def value = json.key // JSON 응답에서 'key' 값 가져오기
log.info("jsonValue", value.toString())

 

읽어주셔서 감사합니다.

 

레퍼런스
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기