Сравните возвращенный ответ Json с опубликованным ответом
У меня есть API для сохранения сведений о сотрудниках в БД, и я публикую данные с помощью HTTP POST API "/ empDetails ", и я публикую такие данные, как "emp_name", "emp_id" и "emp_age"
Образец полезной нагрузки,
{
"emp_name": "Sam",
"emp_age": "25",
"emp_id": "M33214"
}
Как только данные успешно сохранены, я бы вызвал API GET "/ empDetails ", чтобы прочитать опубликованные сведения о сотруднике.
Теперь я хочу проверить возвращенные данные. Иногда возвращаемый заказ может быть перепутан. Как я могу проверить данные, используя любые пользовательские утверждения с помощью любого языка, такого как JavaScript, Groovy или BeanShell?
PS: я могу добавить текстовый ответ содержит и может сравнить пару ключ-значение. Но когда число пар "ключ-значение" больше, будет сложно все время добавлять утверждение. Например: текущая полезная нагрузка имеет только 3 пары ключ-значение, примерная полезная нагрузка также может иметь дополнительные поля, такие как "empReportingManager", "empAccount" и т. д.
Здесь полезная нагрузка Post читается из файла с помощью метода __FileToString().
Заранее спасибо.
С уважением, Хари
1 ответ
- Добавьте утверждение JSR223 в качестве дочернего элемента
GET
запрос Поместите следующий код в область "Сценарий":
def actual = new groovy.json.JsonSlurper().parseText(sampleResult.getResponseDataAsString()) def expected = new groovy.json.JsonSlurper().parseText(new File('/path/to/request.json').text) if (actual != expected) { assertionResult.setFailureMessage(true) assertionResult.setFailureMessage('Mismatch between received and sent JSON') }
Если полезная нагрузка JSON будет соответствовать ответу (порядок на самом деле не имеет значения), сэмплер пройдет, в противном случае вы получите Mismatch between received and sent JSON
сообщение и сэмплер будут помечены как сбойные.
Для получения более подробной информации ознакомьтесь со Сценариями Утверждений JMeter в Groovy - статья Учебное пособие.
Примечание: для более сложных структур JSON, т. Е. Если есть вложенные массивы JSON, лучше перейти к библиотеке JSONAssert.