дополнительное «/» (косая черта) из утверждения ответа отображается в Jmeter

#jmeter #performance-testing #jmeter-plugins #assertion

Вопрос:

Я хочу использовать утверждение ответа, чтобы оно соответствовало ответу с сервера, здесь, когда я получаю ответы, оно отображается как { «per_page»: 6, «всего»: 12, «данные»: [ { «фамилия»: «Лоусон», «идентификатор»: 7, «аватар»: «https://reqres.in/img/faces/7-image.jpg», «имя»: «Майкл», «электронная почта»: «майкл.lawson@reqres.in» },

Но в ответном утверждении это выглядит как сообщение об ошибке утверждения:Тест не удался: ожидается, что текст будет содержать /{ «per_page»: 6, «всего»: 12, «данные»: [ { «фамилия»: «Лоусон», «идентификатор»: 7, «аватар»: «https://reqres.in/img/faces/7-image.jpg», «имя»: «Майкл», «электронная почта»: «майкл.lawson@reqres.in» }, { и поэтому он терпит неудачу, несмотря на то, что он соответствует, но из-за добавления / (косой черты) он терпит неудачу.

введите описание изображения здесь
введите описание изображения здесь

Ответ №1:

JMeter нигде не «добавляет» косые черты, это просто вопрос визуализации, вы получаете свой шаблон, окруженный косыми чертами, так как есть несоответствие, в основном JMeter не может найти то, что вы указали в «Шаблонах для тестирования» в ответе приложения

ДЕМОНСТРАЦИЯ:

введите описание изображения здесь

См. Строки 472 и 480 в источнике ответов

Поэтому убедитесь, что ваш ответ содержит шаблон, и имейте в виду, что каждый пробел в строке или пустое пространство имеют значение, поэтому, если ваш сервер вернет не отформатированную строку, и вы ожидаете «красивую», утверждение не будет выполнено.

Мы не можем предложить лучший вариант, не увидев вашего фактического ответа, однако полнотекстовое сравнение 2 сущностей JSON не кажется мне хорошим подходом с точки зрения надежности и надежности, возможно, вы захотите рассмотреть утверждение JSON или утверждение JSON JMESpath вместо этого

Комментарии:

1. Спасибо Дмитрию за ваш ответ, какой может быть лучший способ сравнить весь ответ с сервера с фактическим ответом, на данный момент я использую утверждение ответа, в котором ожидаемый ответ вводится в шаблон для тестирования

2. «Лучший» способ- ограничить использование утверждений до необходимого минимума , поскольку они имеют свою стоимость, потребляют ресурсы, влияют на пропускную способность и т. Д. поэтому я бы проверил количество элементов (т. Е. 12) или просто то, что вы получаете структуру JSON-строки. Однако , если вы используете JMeter для функционального тестирования и не заботитесь о ресурсах, переключите правило сопоставления шаблонов на Equals , скопируйте ответ сервера и вставьте его в раздел «Шаблоны для тестирования».

3. Да, Дмитрий, я провожу тестирование автоматизации API в Jmeter, поэтому не беспокоюсь о ресурсах, я просто хочу проверить реакцию сервера на ожидаемый ответ, поэтому я пытался с утверждением ответа, но получил дополнительный / (косая черта), и утверждение не удалось

4. Чувак, твое утверждение не терпит неудачу из-за косой черты, ты видишь косую черту, потому что твое утверждение терпит неудачу, просто сверь шаблон с ответом, и ты поймешь, почему