JMeter: Как отправить параметры методом PATCH?
Моя версия JMeter - последняя версия 2.13. Я хотел бы добавить HTTP-запрос для проверки моего API, и метод будет либо PATCH, либо PUT.
В Postman я могу протестировать API и добиться успеха, используя метод PATCH с некоторыми параметрами URL.
Например:
URL: https://example.com/user/account
URL parameters: email ----> example@example.com
URL parameters: password ----> 12345678
Method: PATCH
Это работает в Postman/Paw, но в JMeter я настраиваю HTTP-запрос, добавляю параметры, и это не удается.
Как мне настроить рабочий запрос PATCH/PUT с параметрами в JMeter?
3 ответа
Я решил во временном решении: URL добавить параметры:
https://example.com/user/accountemail=example%40example.com&password=12345678
и удалите параметр в HTTP-запросе.
это действие работает сейчас.
Надежда может найти формальное решение, чтобы решить ее.
Похоже, что JMeter (по крайней мере, начиная с версии 2.13 r1665067) не поддерживает передачу параметров для запросов PATCH с использованием таблицы "Параметры".
Однако вы все равно можете передавать параметры, используя следующие обходные пути:
- Если вы хотите, чтобы ваши параметры в строке запроса (
GET
-подобно), вы можете просто добавить их в путь:/foo/bar?param1=2¶m2=21
, - Если вы хотите, чтобы ваши параметры в теле (
POST
-подобно), вы можете переключиться на вкладку "Данные тела" в разделе "HTTP-запрос" и предоставить свои закодированные параметры там следующим образом:param1=2¶m2=21
, Обязательно правильно URL кодируйте все параметры. Кроме того, вы должны добавить строку для заголовка запроса в разделе "HTTP Header Manager". Добавьте заголовокContent-Type
со значениемapplication/x-www-form-urlencoded
,
Просто чтобы завершить / улучшить ответ @Lukas, если вы импортируете параметры теста из файла CSV, вам нужно отформатировать путь HTTP-запроса следующим образом:
/foo/bar?param1=${csv_param1_name}¶m2=${csv_param2_name}
Это необходимо сделать, потому что, по крайней мере для запросов PATH, таблица параметров игнорируется.
Это относится и к JMeter v4.0 r1823414.
Jmeter использует данные тела для заполнения вашими данными, но заголовок не нужен, вы можете передать свои данные бэкэнду. введите описание изображения здесь
Но я использую httpServletRequest, чтобы получить параметр, и он пуст, я не знаю почему...
Если вам не нужно передавать параметры через URL-адрес, вы также можете использовать вкладку "Body Data" сэмплера "HTTP-запрос" JMeter. Он также поддерживает заполнители. Пример патча JMeter
PS: Я использую JMeter Version 5.1.1