SOAPUI XPATH 断言和测试
SOAPUI XPATH assert AND test
使用社区 soapui 5.2.1。
我可以使用 XPATH 断言来测试数字是否介于两个值之间吗?
展示了如何进行一项逻辑测试。
但我想将值存储在变量中并在 AND 条件下进行测试。
类似于(伪代码):
declare namespace ns1='http://my.space/XML/output/6.1';
testme=//ns1:items-section[1]/ns1:results/@total_items;
testme > 100 && testme < 200;
如果无法完成,我看到的选项是:
- 两次检索属性(猜测性能不佳)
- 恢复到脚本断言(更复杂)
- 购买 NG PRO(更贵)
IMO 一般来说,如果你想为断言目的应用伪代码,我更喜欢使用 script assertion 因为在 SOAPUI Groovy script assertion 给你很大的灵活性。
但是你的案例看起来很短,你只是担心要避免执行两次相同的操作 XPath;那么您可以使用一个不在您的列表中的选项:XQuery Match assertion。 XQuery 表达式可以是:
declare namespace ns1='http://my.space/XML/output/6.1';
declare variable $testme := //ns1:items-section[1]/ns1:results/@total_items;
($testme > 100 and $testme < 200)
注意使用 and
而不是 &&
。
您还可以使用 *
命名空间来简化 XPath 表达式:
declare variable $testme := //*:items-section[1]/*:results/@total_items;
($testme > 100 and $testme < 200)
这将 return 达到预期结果:
<xml-fragment>true</xml-fragment>
或 <xml-fragment>false</xml-fragment>
取决于 $testme
值。
希望这对您有所帮助,
使用社区 soapui 5.2.1。
我可以使用 XPATH 断言来测试数字是否介于两个值之间吗?
declare namespace ns1='http://my.space/XML/output/6.1';
testme=//ns1:items-section[1]/ns1:results/@total_items;
testme > 100 && testme < 200;
如果无法完成,我看到的选项是:
- 两次检索属性(猜测性能不佳)
- 恢复到脚本断言(更复杂)
- 购买 NG PRO(更贵)
IMO 一般来说,如果你想为断言目的应用伪代码,我更喜欢使用 script assertion 因为在 SOAPUI Groovy script assertion 给你很大的灵活性。
但是你的案例看起来很短,你只是担心要避免执行两次相同的操作 XPath;那么您可以使用一个不在您的列表中的选项:XQuery Match assertion。 XQuery 表达式可以是:
declare namespace ns1='http://my.space/XML/output/6.1';
declare variable $testme := //ns1:items-section[1]/ns1:results/@total_items;
($testme > 100 and $testme < 200)
注意使用 and
而不是 &&
。
您还可以使用 *
命名空间来简化 XPath 表达式:
declare variable $testme := //*:items-section[1]/*:results/@total_items;
($testme > 100 and $testme < 200)
这将 return 达到预期结果:
<xml-fragment>true</xml-fragment>
或 <xml-fragment>false</xml-fragment>
取决于 $testme
值。
希望这对您有所帮助,