12

我开发了一个休息服务器,我把它放在本地主机上运行,​​我正在尝试用 JMeter 执行测试,发送请求帖子和获取(取决于被调用的方法)。

我已经发送到 Rest 服务器并使用 JMeter 在简单的 post 请求、get 请求、使用 post 发送文件以及使用 post 发送 Json 中获得了结果。

但我不知道如何将Form-UrlEncoded对象发送到服务器。我的 Rest 服务器消耗application/x-www-form-urlencoded,我需要发送 3 个字符串参数。

有一些方法可以设置MimeType每个参数并执行测试?

我正在使用 Jmeter 2.7

  • [更新]

我通过禁用该选项解决了这个问题:

use multipart/form-data for post

并启用:

redirect automatically

代替:

follow redirect

我通常将参数放在“使用请求发送参数”表中,每个参数都有各自的名称。

4

5 回答 5

22

要将表单参数作为 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. 取消选中 HTTP 请求的“Use multipart/form-data for HTTP POST”。
  4. 取消选中“编码?” 每个请求参数(不是必需的)。
  5. 将 HTTP 请求的“内容编码:”文本框保持为空。

    这不适用于 PUT 请求。 对于 put 请求添加参数作为路径参数并设置 Content-Type 标头,然后 Jmeter 将自行完成。

于 2015-07-22T08:57:24.147 回答
10

这是使用 jmeter 进行 x-www-form-urlencoded 测试的 HTTP POST 的解决方案。你就跟着这些。 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

转到线程组-> 添加侦听器-> 在表中查看结果,查看结果树。查看响应的过程。

于 2017-10-30T08:53:58.010 回答
2

您是否尝试过使用BadBoyJMeter Proxy保存测试以查看您的应用程序实际发送的内容?

FireBug如果您使用的是 FireFox 或使用Ctrl+Shift+i的是 Chrome,您也可以查看引擎盖下发生的情况。

于 2012-06-28T21:59:55.937 回答
0

只有在 HTTP 标头管理器中为 HTTP 请求添加所需的内容类型后,IllegalCharsetNameException 才会立即发生。

希望这可以帮助。

于 2017-12-01T15:48:57.977 回答
-3

遵循提到的确切步骤,我仍然看到抛出异常

响应代码:非 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)
于 2017-07-17T16:13:41.610 回答