通过 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)]
上试用
我想添加一个监视器来检测不健康的服务并在这种情况下发送警报。
我公开了一个简单的 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)]
上试用