我正在尝试在SOAP UI 4.6.1中实现一个简单的循环。根据文档,'Conditional Goto'步骤应该允许我根据之前的响应评估XPath表达式。
对于给定的回复:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:GetVeryImportantDetailsResponse xmlns:ns2="http://www.bigcompany.com/XYZ/VeryImportantService/V1">
<Status Reason="You did everything wrong again" Code="nok"/>
</ns2:GetVeryImportantDetailsResponse>
</soap:Body>
</soap:Envelope>
如果Code等于'nok',我想跳到另一个步骤。不幸的是,我无法以任何方式实现这一点。一些例子:
exists("//Status/Code[text() = 'nok']") -> true
exists("//Status/Code[text() = 'ok']") -> true
exists(//Status/Code[text() = "nok"]) -> false
exists(//Status/Code[text() = "ok"]) -> false
starts-with("//Status/Code", 'nok') -> false
starts-with("//Status/Code", 'ok') -> false
starts-with(//Status/Code, 'nok') -> false
starts-with(//Status/Code, 'ok') -> false
这是SOAP UI中的错误还是我做错了什么?
答案 0 :(得分:1)
你做错了 - 你的XPath语法错了。
尝试:exists(//Status[@Code = 'nok'])
。