Проблема со скриптом подтверждения заводного ответа в jmeter - PullRequest
0 голосов
/ 19 июня 2019

Я хочу написать код для подтверждения ответа, используя скрипт groovy, для данных ответа, таких как:

[
    {
        "fieldId":"947bb60f",
        "id":"e7b8ad2b",
        "name":"field",
    }
]

Попробовал использовать приведенный ниже скрипт groovy, для которого я получаю сообщение об ошибке (сообщение об ошибке).

if (!jsonResponse.keySet().containsAll(["fieldId","id","name"] )) {
         failureMessage += "The json response body has wrong structure or error msg.\n\n";

}

Тот же скрипт отлично работает с единственной древовидной структурой, как показано ниже.Оцените вашу помощь в этом с отличным сценарием.

[

  "fieldId":"947bb60f",
  "id":"e7b8ad2b",
  "name":"field",

]

1 Ответ

0 голосов
/ 19 июня 2019

Итак, вы получаете список возвращенных элементов (содержащий один элемент)

Предполагая, что вы никогда не ожидаете более одного элемента, вы можете проверить его размер с помощью:

if (jsonResponse.size() != 1) {
     failureMessage += "Expected one item, got ${jsonResponse.size()}.\n\n";
}

Затем вы можете получить первый элемент с помощью:

def jsonElement = jsonResponse[0]

И проверьте имена полей с помощью:

if (jsonElement.keySet() != ["fieldId","id","name"] as Set) {
     failureMessage += "Unexpected fields in response ${jsonElement.keySet()}.\n\n";
}
...