我正在用空手道的bdd方法编写api测试自动代码。断言部分让我很难过。我的响应如下所示,当我调用路径$.data.subscribers[0]. Products
时,我通过http://jsonpath.herokuapp.com/网站检查了空空数组。然而,当我运行我的小cucumber空手道功能,然后它给我的响应为空,它仍然给我错误断言。它说实际:
null,应为:null。。。
我看不到任何错误,如何修复?这是一个bug还是有什么方法可以处理?
我的回应是:
{
"meta": {
"return_code": 0,
"message": "success"
},
"data": {
"sbs": [
{
"sbs_id": 32432432,
"dt": "OTT",
"pt": []
},
{
"sbs_id": 455654445,
"dt": "IPTV",
"pt": []
}
]
}
}
我写的JsonPath:
$.data.sbs[0].pt[0]
空手道给出的断言:
com.intuit.karate.exception.KarateException: base-tvpp-cases.feature:316
- path: $[0], actual: null, expected: null, reason: actual json-path does
not exist
小cucumber-空手道-代码,我写在功能文件:我尝试了以下两个
And match response.data.subscribers[0].products[0] == null
And match response.data.subscribers[0].products[0] == '#null'
只需使用JsonPath通配符(。
或*
)。请注意,使用通配符时,结果将始终是JSON数组。以下是您的解决方案:
* match response.data..subscribers[0].products[0] == []
我想添加一个监视器来检测不正常的服务,并在这种情况下发送警报。我已经公开了一个简单的REST API - ,它返回一个JSON,例如。 然后,我已将 添加到我的 site24x7 帐户,将内容检查响应格式设置为 JSON,现在我应该提供要断言的 JSONPath。 在JSONPath在线测试器中,当我使用时,我得到。但我想我应该尝试断言该返回值。 使用以下表达式不起作用 我想我应该使用或过滤来评估
现在,根据响应,我希望在JSR223断言中验证响应是否基于chgId字段是正确的。这意味着在两个“data”数组“chgid”中都应该出现405文本。 有人能建议吗?
我已经在jmeter中使用响应断言将响应代码422作为成功的http请求,并且它有效。但是 jmeter 将响应代码 200 指定为失败的 http 请求。 我在模式中添加了422和200进行测试,但jmeter仅将响应代码200断言为成功的http请求。 如何将响应代码200或422分配为成功的http请求? 问候,斯蒂芬奥
将SAML响应返回给SP时,大多数IdP(如AzureAD、Okta、Onelogin、GSuite)都有以下签名选项: 签名响应 并且在没有任何配置的情况下,对于大多数IdP,签名的默认值是仅签署断言。 下面是来自AzureAD的SAML响应示例(默认签名选项是符号断言)。断言受到完整性保护,不能进行篡改。但是,断言以外的字段,,可以在不知情的情况下被篡改或添加/删除! 所以我的问题是: 为什么
我试图断言一个xml是否包含一个xpath。例如xpath是: 当我检查它https://www.freeformatter.com/xpath-tester.html它成功返回一个元素。 然而,当我尝试使用以下空手道机制时,它失败了: 错误是 我是不是做错了?我正试着跟着这里的医生https://github.com/intuit/karate/blob/master/karate-junit4
我有一个Java web应用程序。我想为我的应用程序实现SAML单点登录登录。我有这个GitHub onelogin程序来发送请求并获得响应。但它没有正常工作。我在那里创建了一个帐户。但我没有企业账户。当我运行应用程序时,它将进入onelogin登录页面。我试图登录,但在响应中没有返回任何权限,表明我没有权限。如果我也提供了错误的凭据,那么它不会给出任何SAML响应。 所以我决定创建一个断言并签名