空手道API框架-验证响应中随机显示的项目

时间:2019-04-09 11:00:13

标签: karate

我正在使用Karate API框架进行API自动化,并遇到一种情况,这种情况是当我打了一个帖子时,它给了我一些json响应,并且很少有带有标签的项目,而很少有显示标签为空白以获取下面的所有标签是要素文件方案行

* def getTags = get response.items[*].resource.tags

它给我的答复是

[
[
],
[
],
[
  { 
   "tags" : "Entertainment" 
  } 
],
[
],
[
  { 
   "tags" : "Family" 
  } 
],

您可以看到5个或6个标签中只有2个标签具有该值,因此我想捕获是否显示了任何标签值。考虑这些标签时断言的逻辑是什么,都可以为空,有时还带有字符串值。在上述情况下,“家庭”和“娱乐”

谢谢!

2 个答案:

答案 0 :(得分:3)

* match each response.items[*].resource.tags == "##string"

这将验证标签不存在或为字符串。

答案 1 :(得分:2)

我认为您可以使用第二个变量来清除空容器,或者您原来的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(_)"