如何将 XPath 添加到 XmlSlurper
How to add XPath to XmlSlurper
我正在尝试在 SoapUI 中创建一个 groovy 脚本断言。在响应中,我试图拉出一个名为 written 的字段。但是,这些字段中有 +15 个。
我可以将 XPath 添加到 XmlSlurper 以找到我想要断言的确切写入字段。
查看下面的 XML 响应,我想断言 b:premium\written 中的值。不是来自 b:other 的那个。鉴于有 15+ b:written 个字段,我想使用 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'}
之类的东西,但这对我不起作用。
assert xml.'**'.find { it.name() == 'premium'}.written.text() as Double == 31.20
我正在尝试在 SoapUI 中创建一个 groovy 脚本断言。在响应中,我试图拉出一个名为 written 的字段。但是,这些字段中有 +15 个。
我可以将 XPath 添加到 XmlSlurper 以找到我想要断言的确切写入字段。
查看下面的 XML 响应,我想断言 b:premium\written 中的值。不是来自 b:other 的那个。鉴于有 15+ b:written 个字段,我想使用 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'}
之类的东西,但这对我不起作用。
assert xml.'**'.find { it.name() == 'premium'}.written.text() as Double == 31.20