2017-09-28 15 views
1

SOAP 응답에 포함 된 값에 대한 이전 JDBC 응답 단계의 값을 확인하는 Groovy 스크립트 어설 션을 작성하고 있습니다.SOAPUI 내 실제 결과 주위의 대괄호로 인해 어설 션이 실패합니다.

스크립트를 실행하면 두 값이 모두 돌아 오지만 실제 결과 값 (SOAP 응답)은 대괄호로 묶여 어설 션이 실패하는 것을 볼 수 있습니다. 나는 이것이 하나의 문자열이 아닌 하나의 문자열과 관련이 있다고 생각하고 있습니까?

실제 결과에서 대괄호를 제거하거나 예상 결과 값을 추가하여 어설 션을 통과시키는 방법은 무엇입니까?

다음은 내 assert 스크립트입니다.

예상 결과는 그것이 단일 요소 어레이를 얻고로서 여기서 예상대로 하나의 값을 기대하고 있기 때문에 001 실제 결과가 [001]

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent) 
def pxml = new XmlSlurper().parseText(context.response) 

//grab the expected result from jdbc response 
def expectedCodes = context.expand('${JDBC Request#ResponseAsXml#//*:TW304_PRODHIST.PRODUCT_1}') 

//grab the actual result from the SOAP response 
def actualCodes = pxml.'**'.findAll{it.name() == 'CurrHospProductCode'}*.text() 

assert expectedCodes == actualCodes 

log.info expectedCodes 
log.info actualCodes 

답변

2

를이다. 그것이 옳다면

당신은 다음과 같이 그것을 할 수 있습니다 :

assert expectedCodes == actualCodes[0] 

보조 노트에, 당신은주의 깊게 당신이 정말로 기대하고 단일 값 만 확인하거나 수있는 값의 목록을 얻을 수있는 경우 .

편집 : 귀하의 스크립트를 기반으로합니다. findAll 결과로 목록을 제공합니다. XML에서 단일 요소가 필요하면 find으로 변경할 수 있으며 실제 코드는 그대로 작동해야합니다.

+0

라오 감사합니다. [0]을 (를) 추가하는 초기 응답은 테스트 통과를 좋게 만듭니다. 나는 또한'findAll'을'find'로 대체하려고했지만 같은 문제가 존재합니다. 그러나 나는 당신의 초기 응답에 기초하여 이것을 지금 응답으로 표시 할 수 있습니다. – Matt

+0

그 이유는'text()'앞에'*'이 있기 때문입니다. 'find'가 사용되면'*'도 제거 할 수 있습니다. – Rao

+0

네, 맞습니다. 모두 의미가 있습니다. 나를 위해이 답변을 주셔서 다시 한번 감사드립니다. – Matt