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

use*_*431 4 multipartform-data jmeter

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

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

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

Dmi*_*i T 9

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

  1. 取消选中HTTP Request Sampler Use multipart/form-data for HTTP POST中的框
  2. 将HTTP标头管理器添加为HTTP请求采样器的子级,并将其配置为发送Content-Type值为的标头multipart/form-data; boundary=your_custom_boundary
  3. 切换到HTTP请求采样器的"正文数据"选项卡,并构建您的请求主体,将每个参数集分隔开

    --your_custom_boundary
    
    Run Code Online (Sandbox Code Playgroud)

有关更详细的说明和演示,请参阅JMeter指南中的测试REST API文件上载.


Duc*_*Mai 5

对于任何正在努力使用 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--
Run Code Online (Sandbox Code Playgroud)
  • 然后在 HTTP 标头管理器中,创建一行,名称为Content-type,值为multipart/form-data; boundary=AaB03x
  • 点击运行测试

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