SOAPUI及Xpath的:断言一个简单的节点

问题描述:

我目前使用了SoapUI免费版3.2 Beta 2中 我有一个奇怪的问题与Xpath的断言:SOAPUI及Xpath的:断言一个简单的节点

我有这样的回应:

(...) 而且我用这个XPath断言, “niveau” 使用id = '2' 是在响应:

Xpath表达式;

//*:niveau[@id='2'] 

和预期的结果是:

<mod0911:niveau id="2" libelle="Immatriculation" ordre="0" taille="0"/> 

但我有此错误消息: XPathContains比较失败,希望[],实际是[空]

但如果我试试这个:

exists(//*:niveau[@id='2']) 

而预期的结果是:真 它的作品!!?

但是这种语法很难看懂&维护&我想使用第一种语法(我试图忽略命名空间,添加它们...仍然不起作用)。

任何想法?

问候

你声明实际上是对在响应中的XML运行中的XPath。然后将其与“预期结果”中的文字进行比较。

我不是100%确定你要做什么。鉴于这种回应:

<root> 
    <a> 
    <b id="2" /> 
    </a> 
    <c> 
    </c> 
</root> 

如果你把这个在“声明”//b[@id=2],它将运行对XML了XPath。该XPath(未经测试)应该只选择<b>元素。

然后您的“预期结果”应该是:<b id="2" />

给pro版本试用一个旋转,你会发现它内置了一个很好的xpath专家。通过示例请求,您可以选择要查找的值,并生成xpath并显示值。很酷。将xpath复制/粘贴到免费版本中,然后全部设置好。或者,如果你和我一样,更加努力让你的老板为你购买专业版。

您可以使用FirstObject XML Editor工具来生成Xpath.It将自动生成XPath供您选择,就像您在soapUI Pro中所做的那样,然后您可以在您的soapui免费版本中使用该Xpath。

您应该包含XML标签不仅是节点的值。

如果您将期望值从[]更改为<nodeName id=2 />,它应该可以工作。

可以使用断言: // B [@ ID = '2'] 或 // B [@ ID = 2]

预期结果:

http://i.stack.imgur.com/3o2xx.png