Сравните возвращенный ответ 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 ответ

  1. Добавьте утверждение JSR223 в качестве дочернего элемента GET запрос
  2. Поместите следующий код в область "Сценарий":

    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.

Другие вопросы по тегам