Структура API каратэ - проверка случайно отображаемых элементов в ответ - PullRequest
1 голос
/ 09 апреля 2019

Я использую платформу API Каратэ для автоматизации API и столкнулся с одним сценарием, сценарий которого, когда я нажимаю на пост-вызов, дает мне некоторый ответ json, и немногие элементы имеют теги, тогда как немногие из них показываюттеги как пустые, чтобы получить все теги ниже, это строка сценария файла объектов

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

Это дает мне ответ как

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

Как вы можете видеть только из 5 или 6 тегов2 тега имеют значение, поэтому я хочу зафиксировать, показывает ли какое-либо значение тегов или нет.Какова логика для утверждения, учитывая, что эти теги могут быть пустыми, а иногда и иметь строковое значение.В вышеуказанном случае "Семья" и "Развлечения"

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 09 апреля 2019
* match each response.items[*].resource.tags == "##string"

Это подтвердит, что теги либо не существуют, либо являются строкой.

2 голосов
/ 09 апреля 2019

Я думаю, что вы можете использовать вторую переменную для удаления пустот, или, может быть, ваш оригинальный 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(_)"
...