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

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

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

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

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

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

  • обновление -

Я решил это, отключив " использовать multipart / form-data для post и включив "перенаправление автоматически" вместо "follow redirect". Параметры я обычно помещаю в таблицу "отправить параметры с запросом" с каждым соответствующим именем.

5 ответов


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

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


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

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

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

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


вот решение для HTTP POST с x-www-form-urlencoded тестирования с jmeter. Ты просто следуешь вот так. enter image description here

enter image description here

enter image description here

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


IllegalCharsetNameException пойдет сразу же после того, как вы добавите необходимый тип контента в HTTP Header Manager для HTTP-запроса .

надеюсь, что это помогает.


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

код ответа: не HTTP код ответа: java.НИО.кодировка.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)