SoapUI Script Assertion для проверки ключей присутствуют без проверки значений внутри ключей - PullRequest
0 голосов
/ 26 июня 2018

У меня есть запрос REST, который возвратит ответ json с набором из девяти ключей и их значений. Никакие входные значения для запроса не рандомизированы, и поэтому я буду получать разные значения при каждом его выполнении.

Можно создать утверждение сценария, которое будет просто проверять правильность структуры json.

Json Ответ:

{
   "sid": 636811,
   "poss": 122,
   "mis": -150,
   "pres": 253,
   "aea": 0,
   "aa": 12,
   "ua": 7,
   "lar": null,
   "lbr": 1
}

Сценарий Утверждение:

def expectedMap = [sid:'', poss:'', mis:'', pres:'', aea:'', aa:'', ua:'', lar:'', lbr:'']
def json = new groovy.json.JsonSlurper().parseText(context.response))

assert json.keySet().sort() == expectedMap.keySet().sort()

Я полагаю, что следующее утверждение скрипта, которое я имею, терпит неудачу, потому что оно также утверждает значения ключа.

log.info expectedMap.keySet().sort()
log.info json.keySet().sort()

Tue Jun 26 14:27:52 BST 2018:INFO:[aa, aea, lar, lbr, mis, poss, pres, sid, ua]
Tue Jun 26 14:27:52 BST 2018:INFO:[aa, aea, lar, lbr, mis, poss, pres, sid, ua]

log.info expectedMap.keySet().sort().getClass()
log.info json.keySet().sort().getClass()

Tue Jun 26 14:17:12 BST 2018:INFO:class java.util.ArrayList
Tue Jun 26 14:17:12 BST 2018:INFO:class java.util.TreeMap$KeySet

1 Ответ

0 голосов
/ 26 июня 2018

Вы почти у цели. Просто нужно получить ключи, отсортировать их и сравнить.

Изменить с:

assert expectedMap == json, 'Actual response is not matching with expected data'

Кому:

assert expectedMap.keySet().sort() == json.keySet().sort() as List, 'Actual response is not matching with expected data'
...