我使用SoapUI NG Pro(ReadyAPI-1.1.0。)并尝试使用UI设置我所需的所有断言。
我尝试做的是检查列表(JSON)是否包含soapUI自定义属性中定义的元素。要从列表中获取所有元素,我使用路径:$.devices[*].deviceName
。现在,我想检查来自客户属性${#Project#devname.1}
的字符串是否属于列表。
要写出断言,我发现了两种可能性,但它们都没有真正起作用。
$.devices[*].deviceName
填充了路径,并使用${#Project#devname.1}
填充了预期结果。我还选中了复选框以支持通配符。结果是积极的断言。 SoapUI完成了我的期望。但!如果我保存项目并重新打开它,则不再选中该复选框。我必须仔细检查所有断言并再次检查方框。这不是解决方案,因为我有大约100个这样的断言。$.devices[*].deviceName
放入输入字段并使用此正则表达式:${#Project#devname.1}
。遗憾的是,这不起作用,因为SoapUI在应用正则表达式之前不会扩展自定义属性。我没有在文档中找到任何解释如何在正则表达式中使用自定义属性的内容。你能在这帮吗?无论如何。这种断言有什么好的解决方案?
答案 0 :(得分:1)
您可以尝试使用JsonPath
将断言与表达式匹配
$.devices[?(@.deviceName=='${#Project#devname.1}')].deviceName.
它会尝试找到具有deviceName == devname.1. If exists = true, if not - "Comparison failed for path "...", expecting [%your deviceName%], actual was [[]]"