通过 jsonpath 断言状态

Ami*_*der 3 jsonpath site24x7

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

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

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

使用以下表达式不起作用

$.(@healthy=='true')
$.[?(@.healthy=='true')]
$[?(@.healthy=='true')]
$?(.healthy=='true')
$.healthy=='[true]'
$.healthy==[true]
$.healthy==['true']
Run Code Online (Sandbox Code Playgroud)

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

我如何断言返回健康状态?

在 site24x7 示例中,我看到 JSONPath 表达式的示例

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

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

谢谢

par*_*y72 5

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

$.[?(@.healthy == true)]
Run Code Online (Sandbox Code Playgroud)

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

[?(@.healthy == true)]
Run Code Online (Sandbox Code Playgroud)

您可以在https://jsonpath.herokuapp.com/上尝试一下