JMeter: Как отправить параметры с помощью метода PATCH?

Моя версия JMeter - последняя версия 2.13. Я хотел бы добавить HTTP-запрос для тестирования моего API, используя либо PATCH, либо PUT.

В Postman я могу протестировать API и успешно использовать метод PATCH с некоторыми параметрами URL.

Например:

URL: https://example.com/user/account
URL parameters: email ----> [email protected]
URL parameters: password ----> 12345678
Method: PATCH

Это работает в Postman / Paw, но в JMeter я настраиваю HTTP-запрос, добавляю параметры, и он не работает.

Как я могу настроить рабочий запрос PATCH / PUT с параметрами в JMeter?


person Anson Liao    schedule 01.09.2015    source источник
comment
См. Этот пост, я решил аналогичную проблему: stackoverflow.com/a/45708841/3593034   -  person bishop    schedule 16.08.2017


Ответы (5)


Я решил проблему временным решением, добавив параметры в HTTP-запрос:

https://example.com/user/account?email=example%40example.com&password=12345678

а затем удалите параметр в HTTP-запросе. Теперь это работает.

Я надеюсь, что смогу найти формальное решение, чтобы решить эту проблему.

person Anson Liao    schedule 01.09.2015

Похоже, что 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.
person Lukas    schedule 27.04.2016

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

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

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

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

person JonyD    schedule 20.02.2019

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

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

person Roderick Zheng    schedule 27.02.2017
comment
Я использовал contentType application / json и поместил данные в тело запроса, теперь контроллер может получать данные с помощью @RequestBody. примечание: данные должны быть типа json. - person Roderick Zheng; 28.02.2017

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

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

person Zakhar Y    schedule 11.12.2019