我如何对 json 数组响应使用逻辑或
How can i use logical OR for json array response
我有一个场景,其中 API 的响应是 JSON 数组。下面我给出了一个 JSON 响应的示例,其中 'test' 是整个数组中可用的键。所以我必须写到功能步骤,我应该在一个步骤中用 null 和正则表达式验证值。如果我正在验证 reg exp 并且值为 null 或反之亦然。步骤失败。
例如:
* match each $..test== '#regex ^[ A-Za-z0-9-]*$'
* match each $..test== null
我已尝试执行以下步骤,但失败了。
* match each $..test== '#regex ^[ A-Za-z0-9-]*$' | test == null
"response": [
{
"test": "Anand07"
},{
"test": null
},{
"test": "Archu06"
}]
感谢您的帮助。
示例代码:
Feature: Validation
Scenario:
* def isValid = function(x){ return x == null || karate.match(x,'#regex ^[ A-Za-z0-9-]*$').pass }
* def response =
"""
[
{
"test": "Anand07"
},
{
"test": null
},
{
"test": "Archu06"
}
]
"""
* match each response[*].test == '#? isValid(_)'
我有一个场景,其中 API 的响应是 JSON 数组。下面我给出了一个 JSON 响应的示例,其中 'test' 是整个数组中可用的键。所以我必须写到功能步骤,我应该在一个步骤中用 null 和正则表达式验证值。如果我正在验证 reg exp 并且值为 null 或反之亦然。步骤失败。
例如:
* match each $..test== '#regex ^[ A-Za-z0-9-]*$'
* match each $..test== null
我已尝试执行以下步骤,但失败了。
* match each $..test== '#regex ^[ A-Za-z0-9-]*$' | test == null
"response": [
{
"test": "Anand07"
},{
"test": null
},{
"test": "Archu06"
}]
感谢您的帮助。
示例代码:
Feature: Validation
Scenario:
* def isValid = function(x){ return x == null || karate.match(x,'#regex ^[ A-Za-z0-9-]*$').pass }
* def response =
"""
[
{
"test": "Anand07"
},
{
"test": null
},
{
"test": "Archu06"
}
]
"""
* match each response[*].test == '#? isValid(_)'