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 ")
}

 

레퍼런스 문서를 참고하여 다양하게 응용해보세요.

읽어주셔서 감사합니다.

 

레퍼런스

 

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