空手道 API 框架 - 验证响应中随机显示的项目
Karate API framework - Validate randomly displayed items in response
我正在使用 Karate API 框架实现 API 自动化并遇到一个场景,场景是当我打一个 post 电话时它给了我一些 json 响应和很少的项目有标签,而很少有项目将标签显示为空白以获取下面的所有标签是功能文件场景行
* def getTags = get response.items[*].resource.tags
它给我的回应是
[
[
],
[
],
[
{
"tags" : "Entertainment"
}
],
[
],
[
{
"tags" : "Family"
}
],
如您所见,在 5 或 6 个标签中只有 2 个标签具有值,因此我想捕获是否显示任何标签值。考虑到这些标签可能都是空的,有时带有字符串值,断言的逻辑是什么。在上面的例子中 "Family" & "Entertainment"
提前致谢!
* match each response.items[*].resource.tags == "##string"
这将验证标签是否不存在或是否为字符串。
我认为你可以使用第二个变量来去除空的,或者你原来的 JsonPath 应该使用 ..
,你可以试验一下:
* def allowed = ['Music', 'Entertainment', 'Documentaries', 'Family']
* def response =
"""
[
[
],
[
],
[
{
"tags":"Entertainment"
}
],
[
],
[
{
"tags":"Family"
}
]
]
"""
* def temp = get response..tags
* print temp
* match each temp == "#? allowed.contains(_)"
我正在使用 Karate API 框架实现 API 自动化并遇到一个场景,场景是当我打一个 post 电话时它给了我一些 json 响应和很少的项目有标签,而很少有项目将标签显示为空白以获取下面的所有标签是功能文件场景行
* def getTags = get response.items[*].resource.tags
它给我的回应是
[
[
],
[
],
[
{
"tags" : "Entertainment"
}
],
[
],
[
{
"tags" : "Family"
}
],
如您所见,在 5 或 6 个标签中只有 2 个标签具有值,因此我想捕获是否显示任何标签值。考虑到这些标签可能都是空的,有时带有字符串值,断言的逻辑是什么。在上面的例子中 "Family" & "Entertainment"
提前致谢!
* match each response.items[*].resource.tags == "##string"
这将验证标签是否不存在或是否为字符串。
我认为你可以使用第二个变量来去除空的,或者你原来的 JsonPath 应该使用 ..
,你可以试验一下:
* def allowed = ['Music', 'Entertainment', 'Documentaries', 'Family']
* def response =
"""
[
[
],
[
],
[
{
"tags":"Entertainment"
}
],
[
],
[
{
"tags":"Family"
}
]
]
"""
* def temp = get response..tags
* print temp
* match each temp == "#? allowed.contains(_)"