soapui - 如果路径不存在,为什么这个正在检查路径的 SoapUI 断言会失败?
问题描述
我在 SoapUI 中有一个 JSONPath 存在断言:
如果路径不存在,则断言应该通过。$personResults[0].person.identifiers[0].value
但是断言总是失败并出现错误:
路径 [$personResults[0].person.identifiers[0].value] 的断言失败:PathNotFoundException:Path 'person' not found in the current context: ... (json request here)
这无疑是因为$personResults[0].person
不存在,因此也不存在$personResults[0].person.identifiers
。
...但这正是我想要测试的!如果路径不存在,则断言需要通过,但断言本身会抛出错误,因为路径不存在。
我确信这是由于路径不存在,因为如果我将断言指向确实存在的路径,它就会修复。
总结一下:
$personResults[0]
返回真$personResults[0].person
返回假$personResults[0].person.identifiers
抛出一个PathNotFoundException
但我需要最后一个返回false。
解决方案
SoapUI 使用的 JSONPath 引擎并不像您想的那样成熟。
解决方法是使用 XPath。SoapUI 在内部将所有内容都转换为 XML,因此您只需使用 XPath 匹配步骤:
exists(//*:personResults//*:person//*:identifiers)
期待:
false
编辑:您可能需要添加命名空间,如上所述。
推荐阅读
- scala.js - 在 Binding.scala 应用程序中集成 React 组件
- ibm-integration-bus - IIB 收集器节点 esql
- swift - 无法将 JS 注入 Swift/Cocoa/NextStep 中的 WKWebView / 将 WKWebView 中网页上的用户选择推送到 Swift / Cocoa
- javascript - 子 div onclick 事件:动态添加的子 div 上的 onclick 无法按预期工作
- python - 连接到 MySQL 的 Django 错误 - 握手
- c# - 如何计算产品的总和
- python-3.x - 如何使用 selenium 指定要选择的类(在 python 中)
- python - 区分相同颜色的两种色调
- maven - Maven 依赖项检查失败并显示“无法连接到数据库”
- php - 当我在我的 html 网站上输入 {page_title} 时,有没有办法打印网页标题?