如果路径不存在,为什么这个检查路径的SoapUI断言会失败? [英] Why does this SoapUI assertion, which is checking for a path, fail if the path does not exist?

查看:2
本文介绍了如果路径不存在,为什么这个检查路径的SoapUI断言会失败?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在SoapUI中有一个JSONPath存在断言:

如果路径$personResults[0].person.identifiers[0].value不存在,则断言应通过

但断言始终失败,并返回错误:

断言路径[$personResults[0].person.identifiers[0].value]失败:路径未发现异常:在当前上下文中找不到路径‘Person’...(此处为JSON请求)

这无疑是因为$personResults[0].person不存在,因此$personResults[0].person.identifiers也不存在。

.但这正是我要测试的!!如果该路径不存在,则断言需要传递,但断言本身引发错误,因为该路径不存在。

我确信这是由于路径不存在,因为如果我将断言指向确实存在的路径,断言就会修复。

总结:

  • $personResults[0]返回TRUE
  • $personResults[0].person返回FALSE
  • $personResults[0].person.identifiers引发 PathNotFoundException

但我需要lase返回False。

推荐答案

SoapUI使用的JSONPath引擎并不像您希望的那样成熟。

解决方法是使用XPath。在内部,SoapUI将所有内容转换为XML,因此您只需使用XPath匹配步骤:

exists(//*:personResults//*:person//*:identifiers)

预期:

false

编辑:您可能需要添加上面编辑的命名空间。

这篇关于如果路径不存在,为什么这个检查路径的SoapUI断言会失败?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆