如何将XPath添加到XmlSlurper

时间:2018-03-05 09:53:45

标签: groovy soapui assertions

我正在尝试在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'}之类的东西,但这对我不起作用。

1 个答案:

答案 0 :(得分:1)

assert xml.'**'.find { it.name() == 'premium'}.written.text() as Double == 31.20