#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. Чувак, твое утверждение не терпит неудачу из-за косой черты, ты видишь косую черту, потому что твое утверждение терпит неудачу, просто сверь шаблон с ответом, и ты поймешь, почему