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
라오 감사합니다. [0]을 (를) 추가하는 초기 응답은 테스트 통과를 좋게 만듭니다. 나는 또한'findAll'을'find'로 대체하려고했지만 같은 문제가 존재합니다. 그러나 나는 당신의 초기 응답에 기초하여 이것을 지금 응답으로 표시 할 수 있습니다. – Matt
그 이유는'text()'앞에'*'이 있기 때문입니다. 'find'가 사용되면'*'도 제거 할 수 있습니다. – Rao
네, 맞습니다. 모두 의미가 있습니다. 나를 위해이 답변을 주셔서 다시 한번 감사드립니다. – Matt