PoC(Proof of Concept) 담당자로 프로젝트 수행할 때 주로 사용했던 Groovy 스크립트 예제를 정리하였습니다.
Front-end 응답 내용을 디버깅 목적으로 정규표현식과 연계된 Groovy 스크립트를 활용했습니다.
지금부터 자바 공식 홈페이지 기준으로 Response Header/Body 변수화 예제를 설명하도록 하겠습니다.
아래 시나리오는 개발자모드로 네트워크 탭에서 확인 가능합니다.
한 가지 주의사항으로 아래의 내용은 정규표현식에 대한 선행 학습이 필요합니다.
정규표현식이 낯선 분들은 블로그 링크를 참고해 주세요
1. 쿠키 데이터 변수화
- 로그인 요청 시 쿠키 데이터를 파라미터로 활용할 수 있음.
- Response header 정보에서 쿠키 데이터 추출 가능
자바 홈페이지 응답 헤더 항목 중 bm_sv 정보를 추출하는 스크립트 예시입니다.
set-cookie: bm_sv=E5DC31D7~YAAQPvEgF3jznSqRAQAAg7lVWhhUEJEmatgPB06IEMSg==~1; Domain=.java.com; Path=/; Expires=Fri, 16 Aug 2024 10:37:20 GMT; Max-Age=7187; Secure
관련 정규표현식 및 패턴정보는 아래와 같습니다.
- bm_sv=(.+?);
- 패턴정보 예시 - "example@example.com"
- matcher[0][0]: 전체 매칭된 문자열 반환 "example@example.com"
- matcher[0][1]: 첫 번째 캡처 그룹 반환 "example"을 반환합니다. 여기서 캡처 그룹은 정규표현식에서 괄호 ()로 묶여진 부분을 의미합니다.
- matcher[0][2]: 두 번째 캡처 그룹 반환 "example.com"을 반환합니다.
// 응답헤더 데이터 가져오기
def headers = prev.getResponseHeaders()
// 정규표현식 패턴 정의 및 조회
def matcher = (headers =~ /bm_sv=([^;]+);/)
if (matcher) {
def token = matcher[0][1]
log.info("Extracted Token: " + token)
}
else {
log.warn("No match found ")
}
2. 응답 데이터 변수화
- 다음 스텝 (Next Step)에 대한 접속정보(URL 등) 설정, Token 정보 추출 등이 가능
자바 홈페이지 응답 항목 중 sitesCloudCDN URL 정보를 추출하는 스크립트 예시입니다.
var SCS = { sitesCloudCDN: 'https://static.ocecdn.oraclecloud.com/cdn/cec/v24.8.1.1',
podPlatform: 'OCI-N',
// 응답 데이터 가져오기
def response = prev.getResponseDataAsString()
// 정규표현식 패턴 정의
def pattern = ~ /sitesCloudCDN: '([^;]+)',/
def matcher = pattern.matcher(response)
if (matcher.find()) {
def var = matcher.group(1)
log.info("var: " + var)
} else {
log.warn("No match found ")
}
레퍼런스 문서를 참고하여 다양하게 응용해보세요.
읽어주셔서 감사합니다.
레퍼런스
반응형
최근댓글