我正在尝试在SoapUI中创建一个groovy脚本断言。在响应中,我试图拉一个叫写的字段。但是这些领域中有+15个。
我可以将XPath添加到XmlSlurper中,以找到我想要断言的确切写入字段。
查看下面的XML响应,我想在b:premium \ written中声明值。不是b中的那个:其他。鉴于有15个以上的b:写入字段,我想使用xpath声明该值。
XML响应:
<s:Body>
<NewRateResponse>
<NewRateResult>
<b:policies>
<b:other>
<b:written>00.00</b:written>
</b:other>
<b:premium>
<b:written>31.21</b:written>
</b:premium>
</b:policies>
</NewRateResult>
</NewRateResponse>
</s:Body>
断言代码:
import org.junit.Assert
def response = messageExchange.getResponseContent()
def xml = new XmlSlurper().parseText(response)
def nodePremium = xml.'**'.find { it.name() == 'written'}
Assert.assertEquals(00.01, nodePremium.toDouble(),0)
我认为我们需要改变的领域是def nodePremium = xml.'**'.find { it.name() == 'written'}
。是def nodePremium = xml.'**'.find { it.name() == 'premium\written'}
之类的东西,但这对我不起作用。
答案 0 :(得分:1)
assert xml.'**'.find { it.name() == 'premium'}.written.text() as Double == 31.20