Сравните возвращенный ответ Json с опубликованным ответом - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть 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 Ответ

0 голосов
/ 05 декабря 2018
  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 .

...