Сравните утверждение, чтобы сравнить два ответа JSON

Мы используем jMeter для регрессионного тестирования. У нас есть 2 http-запроса, и мы используем сравнения, чтобы убедиться, что результаты совпадают. Это прекрасно работает, когда ответом является XML или необработанный текст. Однако это не работает, когда ответом является объект JSON. Поскольку объекты JSON хранят поля в хэше, порядок не поддерживается, что означает, что разница в Сравнении утверждений различна и дает нам ложные отрицания. Есть ли у кого-нибудь совет о том, как сравнить два ответа, чтобы увидеть, равны ли они?

1 ответ

Решение

Прежде всего, согласно официальной документации на утверждение сравнения:

Утверждение сравнения НЕ ДОЛЖНО ИСПОЛЬЗОВАТЬСЯ во время нагрузочного теста, поскольку оно потребляет много ресурсов (память и ЦП). Используйте его только для функционального тестирования или во время отладки и проверки плана тестирования.

Поэтому, пожалуйста, пересмотрите использование сравнения утверждений. Лучший кандидат, о котором я могу подумать - это утверждение JSONPath, доступное через плагины JMeter.

См. Использование XPath Extractor в руководстве по JMeter (прокрутите вниз до Parsing JSON) для сопоставления запросов с XPath на JSONPath.

В качестве альтернативы вы можете использовать комбинацию Утверждение размера, Подтверждение ответа и, если требуется, Подтверждение продолжительности, которые предоставляют те же функциональные возможности, но потребляют гораздо меньше ресурсов.

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