1
我有以下XML示例,它顯示節點'ProductCode'出現在節點'PrevHospProduct'和'PrevExtrasProducts'下。如何在Script Assertion中拾取特定父元素的子元素?
<ns2:PrevHospProducts>
<ns2:PrevHospProduct>
<ns2:ProductCode>D00</ns2:ProductCode>
<ns2:ExcessPaid>Yes</ns2:ExcessPaid>
</ns2:PrevHospProduct>
<ns2:PrevHospProduct>
<ns2:ProductCode>900</ns2:ProductCode>
</ns2:PrevHospProduct>
</ns2:PrevHospProducts>
<ns2:PrevExtrasProducts>
<ns2:PrevExtraProduct>
<ns2:ProductCode>00A</ns2:ProductCode>
</ns2:PrevExtraProduct>
</ns2:PrevExtrasProducts>
對於此測試,我只對'ProductCode'中的'PrevHospProduct'的子項感興趣。我對'PrevExtrasProducts'下的任何值都不感興趣。
我有以下Groovy Script Assertion in SoapUI
拿起'ProductCode'中的值,但測試失敗,因爲實際結果也返回示例響應中的'D00','900'和'00A'。我只想要預期的結果選擇值'D00','900'。
def expectedCodes = ['D00','900']
def pxml = new XmlSlurper().parseText(context.response)
def actualCodes = pxml.'**'.findAll{it.name() == 'ProductCode' }*.text() as List
assert expectedCodes.sort() == actualCodes.sort()
感謝再次,饒。當你知道如何做的時候,它非常有意思,看起來很容易! – Matt
@Matt,很高興知道它有幫助。 – Rao