带有文件上传的jMeter多部分请求

时间:2016-08-17 22:10:27

标签: jmeter multipartform-data

我有一个我构建的多部分请求。请求的每个部分都是一个jsonString体,它有一组用于整个请求的头文件,还有一些用于单个multiaprts。

我可以使用jMeter的'带参数发送参数'来为jsonStrings添加Name-value,但是我不能在每个部分中指定标题。 我可以为整个请求指定一个标题管理器,但是也可以为每个多部分指定它吗?

此外,在指定要上传的内容时,我有一个文件,其内容被JSR223采样器压缩并编码为字节,我希望将其与请求一起发送。

3 个答案:

答案 0 :(得分:8)

您可以手动构建请求,只需执行以下步骤:

  1. 取消选中HTTP Request采样器
  2. 中的Use multipart/form-data for HTTP POST
  3. HTTP Header Manager添加为HTTP请求采样器的子级,并将其配置为发送Content-Type标头,其值为multipart/form-data; boundary=your_custom_boundary
  4. 切换到HTTP请求采样器的“正文数据”选项卡,并构建您的请求正文,用

    分隔每个参数集
    --your_custom_boundary
    
  5. 请参阅Testing REST API File Uploads in JMeter指南,了解更详细的解释和演示。

答案 1 :(得分:1)

对于那些努力使用JMeter创建多部分表单数据的人。这是我的一个有效示例(尝试复制粘贴我的代码):

  • 取消选中Use multipart-form-data
  • 将其粘贴到Body data
--AaB03x
content-disposition: form-data; name="name"

My name is James
--AaB03x
content-disposition: form-data; name="age"

24
--AaB03x
content-disposition: form-data; name="image"; filename="avatar.png"
Content-Type: image/png
Content-Transfer-Encoding: binary

$binarydata
--AaB03x--
  • 然后在HTTP标头管理器中,创建名称为Content-type且值为multipart/form-data; boundary=AaB03x的行
  • 点击运行进行测试

注意:如您在上面看到的,我用值AaB03x固定了边界,在实际情况下,您应该使用唯一值

答案 2 :(得分:1)

据我了解,这个问题。您需要发送带有单独标题的多部分数据请求。

在这种情况下,建议您使用客户端发送请求,然后使用Fiddler或JMeter本身拦截该请求。

我过去从未遇到过这种情况。上述解决方案因预期用途不同而无法使用。