我正在尝试通过使用多部分数据主体的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`
当我运行它时,我看到请求没有正确发送正文,而只是发送一些随机数据,
发布数据:
--vKOghkU7riRQbaANmmGpMs7j9TxCTUp3S2T0vE--
并给出错误响应,
`{"errorMsg":"Unable read headers from MultipartStream.","messageCode":"UnableReadHeadersFromMultipartStream","httpStat us":"BAD_REQUEST","requestName":"RequestName"}`
我的第二个问题是:请求的第3部分发送要上传的文件 . 我可以以某种方式传递文件路径吗?
2 回答
鉴于您设置自己的边界并手动构建您的请求,我相信您需要在HTTP Request Sampler中 uncheck
Use multipart/form-data for POST
如果您的文件编码不是"exotic",您可以尝试使用__FileToString()函数而不是
File Content here!!!!
.查看RFC 7578,似乎您还需要在最后一行末尾追踪
--
您应该尝试将JSON数据作为参数发送 . 同时将您的文件路径放在该部分中...甚至一些服务器实际上并不需要显式声明的MIME类型,您可以使用某些在线工具(如this one)查看您的文件路径 .
您的HTTP请求可能看起来像以下几样: