当前位置: 首页 > 知识库问答 >
问题:

通过jsonpath断言状态

邢寒
2023-03-14

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

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

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

使用以下表达式不起作用

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

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

我怎样才能断言回归健康状态?

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

<代码> $..[?(@.overallStatus=='true')]

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

谢谢

共有1个答案

邓业
2023-03-14

这方面的文档非常少,但是我查看了Jayway JsonPath的示例,最终发现这是可行的:

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

由于您的结构是如此基本,我认为这也可以工作:

[?(@.healthy == true)]

你可以在https://jsonpath.herokuapp.com/试试

 类似资料:
  • 我正在用空手道的bdd方法编写api测试自动代码。断言部分让我很难过。我的响应如下所示,当我调用路径时,我通过http://jsonpath.herokuapp.com/网站检查了空空数组。然而,当我运行我的小cucumber空手道功能,然后它给我的响应为空,它仍然给我错误断言。它说实际: null,应为:null。。。 我看不到任何错误,如何修复?这是一个bug还是有什么方法可以处理? 我的回应

  • 7.12. 通过类型断言询问行为 下面这段逻辑和net/http包中web服务器负责写入HTTP头字段(例如:"Content-type:text/html)的部分相似。io.Writer接口类型的变量w代表HTTP响应;写入它的字节最终被发送到某个人的web浏览器上。 func writeHeader(w io.Writer, contentType string) error { if

  • 我正在进行IDP发起的登录,其中Azure AD是我的IDP,Keyclope是经纪人。我在Keyclope服务器控制台中发现以下错误:- 11: 02:17571调试[org.keydape.saml.common](默认任务-9)org.keybape.saml.processing.core.saml.v2.util。XMLTimeUtil issueInstant:2021-01-01T0

  • 我正在开发一个Android项目,该项目必须与受SSO Shibboleth身份验证保护的网站强烈交互。因此,我必须创建一个Java类,以便做出有效的SAML断言并登录网站。 我在谷歌上搜索了很多,我发现这段代码:http://blog.keksrolle.de/2010/07/27/how-to-create-a-valid-saml-2-0-assertion-with-opensaml-fo

  • 问题内容: 今天,我看到了一个带有Java断言而不是JUnit断言的JUnit测试用例-相对于另一个而言,优先选择一个优点还是缺点? 问题答案: 在JUnit4中,JUnit断言引发的异常(实际上是Error)与java 关键字(AssertionError)引发的错误相同,因此它与堆栈跟踪完全相同,除了您无法分辨出其区别。 话虽这么说,断言必须在JVM中使用特殊标志运行,导致许多测试似乎通过了,

  • mocha允许你使用任意你喜欢的断言库,在上面的例子中,我们使用了Node.js的内置的断言模块作为断言。如果能够抛出一个错误,它就能够运行。这意味着你能使用下面的这些仓库,比如: should.js - BDD风格贯穿始终 expect.js - expect()样式断言 chai - expect(),assert()和should风格的断言 better-assert - C风格的自文档化的