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&param2=21,
  • Если вы хотите, чтобы ваши параметры в теле (POST-подобно), вы можете переключиться на вкладку "Данные тела" в разделе "HTTP-запрос" и предоставить свои закодированные параметры там следующим образом: param1=2&param2=21, Обязательно правильно URL кодируйте все параметры. Кроме того, вы должны добавить строку для заголовка запроса в разделе "HTTP Header Manager". Добавьте заголовок Content-Type со значением application/x-www-form-urlencoded,

Просто чтобы завершить / улучшить ответ @Lukas, если вы импортируете параметры теста из файла CSV, вам нужно отформатировать путь HTTP-запроса следующим образом:

/foo/bar?param1=${csv_param1_name}&param2=${csv_param2_name}

Это необходимо сделать, потому что, по крайней мере для запросов PATH, таблица параметров игнорируется.

Это относится и к JMeter v4.0 r1823414.

Jmeter использует данные тела для заполнения вашими данными, но заголовок не нужен, вы можете передать свои данные бэкэнду. введите описание изображения здесь

Но я использую httpServletRequest, чтобы получить параметр, и он пуст, я не знаю почему...

Если вам не нужно передавать параметры через URL-адрес, вы также можете использовать вкладку "Body Data" сэмплера "HTTP-запрос" JMeter. Он также поддерживает заполнители. Пример патча JMeter

PS: Я использую JMeter Version 5.1.1

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