如何检查动态数组元素的xml响应

时间:2016-04-28 16:14:25

标签: xpath soap soapui assertions

我是groovy和soapui pro的新手。我有下面的示例响应,显示2个或更多数组元素与动态数据。我想知道如何编写脚本断言或xpath匹配来检查脚本是否通过,只要其中一个元素的值为1。

<ns1:SampleTests>
    <ns1:SampleTest1>
        <ns1:Test>1</ns1:Test>
    </ns1:SampleTest1>   
    <ns1:SampleTest2>
        <ns1:Test>2</ns1:Test>
    </ns1:SampleTest2>  
</ns1:SampleTests>

我已经在脚本断言中写了这个,但它失败了。

1 个答案:

答案 0 :(得分:1)

假设您有以下回复:

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
   <Body>
      <ns1:SampleTests xmlns:ns1="hola">
            <ns1:SampleTest1>
            <ns1:Test>1</ns1:Test>
            </ns1:SampleTest1>   
            <ns1:SampleTest2>
                <ns1:Test>2</ns1:Test>
            </ns1:SampleTest2>  
    </ns1:SampleTests>
   </Body>
</Envelope>

您可以执行以下 XPath exists(//*:Test[.=1])来检查至少有一个<ns1:Test>元素是否存在1作为值。

XPath匹配中,它看起来像:

here

如果你更喜欢使用脚本断言,你可以使用XmlSlurper来解析你的Xml,然后获得所有<ns1:Test>值,断言至少有一个{ {1}}作为价值。请查看以下代码:

1

enter image description here