Jmeter不会在POST中发送JSON数据

Jus*_*son 13 post json jmeter

我试图用json作为身体数据在jmeter中做一个POST,但我只得到400回.我发送的网址也只接受json.我在Postman中使用了相同的卷曲,它工作得很好.我已经尝试将json作为一个没有名称的值放在参数中,并且没有用.

![1]:http://i.stack.imgur.com/1sAdO.png

我只是想发送{"uid":"jmtest","name":"newdevice"}.

抱歉,我无法发布更多链接

采样器的结果是

Thread Name: QA test 1-1 Sample Start: 2016-05-11 11:50:19 MDT Load time: 86 Connect Time: 51 Latency: 86 Size in bytes: 282 Headers size in bytes: 244 Body size in bytes: 38 Sample Count: 1 Error Count: 1 Data type ("text"|"bin"|""): text Response code: 400 Response message: Bad Request Response headers: HTTP/1.1 400 Bad Request Server: nginx Date: Wed, 11 May 2016 17:50:19 GMT Content-Type: application/json; charset=utf-8 Content-Length: 38 Connection: keep-alive X-Request-Id: 88339ee9-b74f-4e22-b581-e3124949d067 X-Runtime: 0.030877 HTTPSampleResult fields: ContentType: application/json; charset=utf-8 DataEncoding: utf-8

请求看起来像

``/ url编辑POST数据:{"devices":{"uid":"jmtest","name":"newdevice"} [no cookies]请求标题:连接:keep-alive接受:application/vnd.moneydesktop. v2 + json Content_Type:application/json MD-SESSION-TOKEN:编辑内容类型:application/x-www-form-urlencoded内容长度:46主机:编辑用户代理:Apache-HttpClient/4.5.2(Java/1.8.0_72)```

并且响应数据是 { : "status":"400", : "error":"Bad Request" }

小智 14

要在主体内部发送带有JSON数据的POST HTTP请求,需要添加,

  • HTTP标头管理器进入您的请求,并将名称设置为“ content-type”,值设置为“ application / json”,这将附加到HTTP请求标头中,并且您请求主体内的所有数据将以json格式发送。

图1:设置HTTP标头管理器, 在此处输入图片说明

图2:设置HTTP请求正文数据 在此处输入图片说明


Dmi*_*i T 13

  1. 确保您的HTTP标头管理器配置为发送Content-Type值为的标头application/json
  2. 鉴于你有像"主页"和"登录"这样的采样器,你可能会错过HTTP Cookie管理器
  3. 看看出了什么问题最直接的方法是捕捉像一个嗅探器工具,通过邮差(不管它是什么)和JMeter的发送的请求Wireshark的,找出差异,并相应地配置JMeter的.
  4. 最后,看起来你正在使用一些开发人员快照,所以传递JSON有效负载的方法作为第一个参数没有名称可能不起作用.尝试切换到"身体数据".
  5. 如果上述步骤无法通过View Results Tree监听器(所有3个选项卡)和Postman的屏幕截图更新您的问题

有关更多提示,请查看使用JMeter测试SOAP/REST Web服务.


Aka*_*rma 6

您可能想做的第一件事是将有效负载放入“正文数据”而不是“参数”中

然后,添加一个配置元素“HTTP Header Manager”并添加一个参数“content-type”以及相应的值“application/json”

现在打。应该做!


小智 5

我也遇到过同样的问题,通过在http请求中将Content Encoding的值设置为utf-8可以解决。请试试。


小智 5

在这里输入图片描述 Dmitri T的以下解决方案对我确实有用。

确保您的HTTP标头管理器配置为发送带有“ application / json”值的“ Content-Type”标头