2017-03-21 2 views
0

SOAPUI를 사용하여 REST API를 자동화하고 있습니다. 2 가지 다른 리소스가 있으며 아래에는 응답 JSON 형식이 나와 있습니다. 루트 요소는 다양하지만 상태 블록은 두 응답 jsons에 대해 동일하게 유지됩니다. ("code"== "00"인 경우) 응답 유효성 검사를위한 Groovy 스크립트가 있습니다.SOAPUI - Groovy Scripting을 사용하여 다른 JSON Response 객체를 파싱하여 동일한 자식 노드 값을 가져옵니다.

목표 : Groovy 스크립트를 사용하여 JSON을 구문 분석하고 검색합니다. 루트 요소에 관계없이 "코드"노드 값

응답 (JSON) 형식 : 그것은 될 일을

{ 
    "resouurce_1_response": 
    { 
     "status": 
     { 
      "code": "00" 
     } 
    } 
} 

{ 
    "resource_2_response": 
    { 
     "status": 
     { 
      "code": "00" 
     } 
    } 
} 

답변

1

한 빠른 방법 : 물론

def json1 = '{ "resouurce_1_response": { "status": { "code": "00" } } }' 
def json2 = '{ "resource_2_response": { "status": { "code": "00" } } }' 

import groovy.json.* 

def slurper = new JsonSlurper() 

assert slurper.parseText(json1).find().value.status.code == '00' 
assert slurper.parseText(json2).find().value.status.code == '00' 

, 실제 JSON은 당신이, 당신을 보여보다 더 복잡한 경우 (지도를 재귀 적으로 걸으십시오?)

+0

작동합니다. 귀하의 시간과 쉬운 솔루션에 감사드립니다. –

+1

도와 줘서 기쁩니다! 행운을 빌고 재미있게 보내! :-) (추 신 : 왼쪽 상자에 체크하면 대답을 수락 할 수 있습니다) –