JMeter Multipart JSON请求表单数据

时间:2016-08-10 22:29:20

标签: jmeter multipartform-data

我正在尝试通过使用多部分数据主体的JMeter构建HTTP请求。

我有一个HTTP头管理器,它将COntent-Type设置为multipart / form-data;边界= AaB03x。我选择了“使用多部分/表格数据进行POST”。

然后我创建了一个数据体,

`-----------------------------AaB03x
Content-Type: application/json
Content-Disposition: form-data; name="part1"
{"jsonKey1": "JsonValue1" }

-----------------------------AaB03x
Content-Type: application/json
Content-Disposition: form-data; name="part2"
{ 
  "jsonKey2": "JsonValue2"
}

-----------------------------AaB03x
Content-Type: application/octet-stream
Content-Disposition: form-data; name="part3"
File Content here!!!!

-----------------------------AaB03x`

当我运行它时,我看到请求没有正确发送正文,而只是发送一些随机数据,

POST数据:

--vKOghkU7riRQbaANmmGpMs7j9TxCTUp3S2T0vE--

并给出错误回复,

`{"errorMsg":"Unable read headers from MultipartStream.","messageCode":"UnableReadHeadersFromMultipartStream","httpStat     us":"BAD_REQUEST","requestName":"RequestName"}`

我的第二个问题是:   请求的第3部分发送要上载的文件。我可以以某种方式传递文件路径吗?

2 个答案:

答案 0 :(得分:1)

  1. 鉴于您设置自己的边界并手动构建请求,我相信您需要在HTTP Request Sampler
  2. 取消选中 Use multipart/form-data for POST
  3. 如果您的文件编码不是非常“异国情调”,则可以尝试使用__FileToString()功能而不是File Content here!!!!
  4. 展望RFC 7578,您似乎还需要在最后一行末尾追加--

答案 1 :(得分:0)

您应该尝试将JSON数据作为参数发送。同样把你的文件路径放在那个部分......甚至一些服务器实际上并不需要明确声明的MIME类型,你可以使用this one等在线工具查看你的。

您的HTTP请求可能看起来像:

enter image description here