我目前正在使用SoapUI免费版3.2-beta 2。 我对Xpath断言有一个奇怪的问题:
我有回复:
(...) 我正在使用这个xpath声明id ='2'的“niveau”在响应中:
Xpath表达式;
//*:niveau[@id='2']
预期结果是:
<mod0911:niveau id="2" libelle="Immatriculation" ordre="0" taille="0"/>
但是我有这个错误信息: XPathContains比较失败,期待[],实际为[null]
但如果我试试这个:
exists(//*:niveau[@id='2'])
预期结果是:真的 它有效!!?
但这种语法很难读懂。保持和我想使用第一种语法(我试图忽略命名空间,添加它们......仍然不起作用)。
有什么想法吗?
此致
答案 0 :(得分:2)
您可以使用FirstObject XML Editor工具生成Xpath。它会像您在soapUI Pro中一样自动生成XPath,然后您可以在soapui免费版本中使用该Xpath。
答案 1 :(得分:1)
您声明的XPath实际上是针对响应中的XML运行的。然后将其与“预期结果”中的文本进行比较。
我不是百分之百确定你要做什么。鉴于此回应:
<root>
<a>
<b id="2" />
</a>
<c>
</c>
</root>
如果你把它放在“声明”://b[@id=2]
中,它将针对XML运行该XPath。 XPath(未经测试)应该只选择<b>
元素。
然后您的“预期结果”应为:<b id="2" />
。
答案 2 :(得分:0)
让专业版试用旋转,你会发现它内置了一个不错的xpath专家。当存在样本请求时,您可以选择要查找的值,它将生成xpath并显示值。很酷。将xpath复制/粘贴回免费版本,然后就可以了。或者,如果你像我一样,更加努力让老板为你购买专业版。
答案 3 :(得分:0)
您应该不仅包含XML标记的节点值。
如果您将期望从[]更改为<nodeName id=2 />
,则应该有效。
答案 4 :(得分:0)