Как отправить параметры application / x-www-form-urlencoded на RestServer с помощью JMeter?

Я разработал сервер отдыха и запустил его на localhost, и я пытаюсь выполнить тесты с помощью JMeter, отправляя запросы и получающие сообщения (в зависимости от вызываемого метода).

Я уже отправляю на сервер Rest и получаю результат с помощью JMeter в простых почтовых запросах, получаю запросы, отправляю файлы с постом и отправляю Json с постом.

Но я не знаю, как отправить объект Form-UrlEncoded на сервер. Мой сервер Rest потребляет application/x-www-form-urlencoded, и мне нужно отправить 3 строковых параметра.

Есть ли способ установить MimeType для каждого параметра и выполнить тест?

Я использую Jmeter 2.7

  • [Обновление]

Я решил это, отключив опцию:

use multipart/form-data for post

И включив:

redirect automatically

Вместо того:

follow redirect

Параметры я обычно помещаю в таблицу «Отправить параметры с запросом» с соответствующими именами.


person Raduan Santos    schedule 28.06.2012    source источник


Ответы (5)


Вы пытались сохранить свой тест с помощью BadBoy или JMeter Proxy, чтобы узнать, что на самом деле отправляет ваше приложение?

Чтобы увидеть, что происходит внутри, вы также можете использовать FireBug, если вы используете FireFox, или Ctrl+Shift+i, если вы используете Chrome.

person Marko Bonaci    schedule 28.06.2012
comment
также F12 в любом текущем браузере покажет вам сетевой чат. - person Dan; 08.02.2019

Для отправки параметров формы как application / x-www-form-urlencoded добавьте параметр заголовка Content-Type со значением application / x-www-form-urlencoded.

Следующие шаги применимы для Jmeter 2.3.4.

  1. Добавьте диспетчер заголовков HTTP в свой HTTP-запрос.
  2. Добавьте новый параметр в диспетчер заголовков HTTP с именем Content-Type и значением application / x-www-form-urlencoded.
  3. Снимите флажок «Использовать multipart / form-data для HTTP POST» HTTP-запроса.
  4. Снимите флажок "Кодировать?" каждого параметра запроса (необязательно).
  5. оставил пустым текстовое поле «Content Encode:» HTTP-запроса.

    Это не сработает для запроса PUT. Для запроса на размещение добавьте параметры в качестве параметра пути и установите заголовок Content-Type, тогда Jmeter сделает сам.

person Alex Mathew    schedule 22.07.2015
comment
Это сработало очень хорошо. Спасибо, что поделились этими шагами. - person Anshul Singhal; 23.02.2021

Вот решение для HTTP POST с тестированием x-www-form-urlencoded с помощью jmeter. Вы просто следите за этим. введите описание изображения здесь

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

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

Перейдите в группу потоков -> Добавить слушателя -> Просмотр результатов в таблице, Просмотр дерева результатов. Чтобы увидеть процесс ответа.

person Vinh Trieu    schedule 30.10.2017

Исключение IllegalCharsetNameException исчезнет сразу только после того, как вы добавите требуемый тип содержимого в диспетчер заголовков HTTP для HTTP-запроса.

Надеюсь это поможет.

person SandeepK    schedule 01.12.2017

выполнили точные шаги, упомянутые, я все еще вижу выброшенное исключение

Код ответа: Код ответа не HTTP: java.nio.charset.IllegalCharsetNameException Сообщение ответа: Сообщение ответа не HTTP: application / x-www-form-urlencoded

java.nio.charset.IllegalCharsetNameException: application/x-www-form-urlencoded
    at java.nio.charset.Charset.checkName(Charset.java:315)
    at java.nio.charset.Charset.lookup2(Charset.java:484)
    at java.nio.charset.Charset.lookup(Charset.java:464)
    at java.nio.charset.Charset.forName(Charset.java:528)
    at org.apache.http.entity.ContentType.create(ContentType.java:210)
    at org.apache.http.entity.StringEntity.<init>(StringEntity.java:116)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sendPostData(HTTPHC4Impl.java:1340)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.handleMethod(HTTPHC4Impl.java:592)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:409)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1166)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1155)
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:475)
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:418)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:249)
    at java.lang.Thread.run(Thread.java:745)
person Shabana Khanum    schedule 17.07.2017
comment
Он работает после того, как я обновился с JMeter 3.1 до 3.2. - person Shabana Khanum; 17.07.2017
comment
Это не ответ на поставленный вопрос. Либо возьмите это в чат, либо опубликуйте новый вопрос, относящийся к этому. - person ; 17.07.2017
comment
Это ответ, не так ли - person Shabana Khanum; 19.07.2017