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())
읽어주셔서 감사합니다.
레퍼런스
반응형
최근댓글