通过 jsonpath 断言状态

Assert status via jsonpath

我想添加一个监视器来检测不健康的服务并在这种情况下发送警报。 我公开了一个简单的 REST API - /healthy 其中 return 是 JSON 例如{"healthy": true}.

然后我向我的 site24x7 帐户添加了一个 REST API Monitor,将内容检查响应格式设置为 JSON,现在我应该提供一个 JSON 要断言的路径。

在 JSONPath 在线测试器中,当我使用 $.healthy 时,我得到 [true]。 但我想我应该尝试断言 return 值。

使用以下表达式无效

$.(@healthy=='true')
$.[?(@.healthy=='true')]
$[?(@.healthy=='true')]
$?(.healthy=='true')
$.healthy=='[true]'
$.healthy==[true]
$.healthy==['true']

认为我应该使用 () 或过滤来评估断言表达式。

如何断言 return 健康状态?

在 site24x7 示例中,我看到了 JSON路径表达式

的示例

$..[?(@.overallStatus=='true')]

我无法让它在我的情况下工作

谢谢

它的文档非常少,但我查看了 Jayway JsonPath 的示例并最终发现它有效:

$.[?(@.healthy == true)]

由于您的结构非常基础,我认为这也可能有效:

[?(@.healthy == true)]

您可以在 https://jsonpath.herokuapp.com/

上试用