带有文件上传的 jMeter 多部分请求
jMeter multipart request with file upload
我有一个我构建的多部分请求。请求的每个部分都是一个 jsonString body 并且它有一组 header 用于整个请求和一些用于单个 multiaprts。
我可以使用 jMeter 的 'Send parameters with request' 为 jsonStrings 添加 Name-value,但我不能在每个部分中指定 header。
我可以为整个请求指定一个 header 管理器,但它也可以为每个多部分指定吗?
此外,在指定要上传的内容时,我有一个文件,其内容由 JSR223 采样器压缩并编码为字节,我希望将其与请求一起发送。
您可以手动构建请求,只需执行以下步骤:
- 取消选中 HTTP Request 采样器中的
Use multipart/form-data for HTTP POST
框
- 添加 HTTP Header Manager 作为 HTTP 请求采样器的 child 并将其配置为发送值为
multipart/form-data; boundary=your_custom_boundary
[=27 的 Content-Type
header =]
切换到 HTTP 请求采样器的 "Body Data" 选项卡并构造您的请求 body 在那里用
分隔每个参数集
--your_custom_boundary
有关更详细的解释和演示,请参阅 Testing REST API File Uploads in JMeter 指南。
对于正在努力使用 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 Header 管理器中,创建一个名称为
Content-type
且值为 multipart/form-data; boundary=AaB03x
的行
- 点击运行测试
注意:正如您在上面看到的,我用值 AaB03x
固定了边界,在实际情况中,您应该使用唯一值
据我了解这个问题。您需要为多部分数据发送单独的 headers 请求。
在这种情况下,我建议您通过您使用的客户端发送请求,然后使用 Fiddler 或 JMeter 本身拦截请求。
我以前从未遇到过这种情况。上述解决方案将不起作用,因为预期用途不同。
我有一个我构建的多部分请求。请求的每个部分都是一个 jsonString body 并且它有一组 header 用于整个请求和一些用于单个 multiaprts。
我可以使用 jMeter 的 'Send parameters with request' 为 jsonStrings 添加 Name-value,但我不能在每个部分中指定 header。 我可以为整个请求指定一个 header 管理器,但它也可以为每个多部分指定吗?
此外,在指定要上传的内容时,我有一个文件,其内容由 JSR223 采样器压缩并编码为字节,我希望将其与请求一起发送。
您可以手动构建请求,只需执行以下步骤:
- 取消选中 HTTP Request 采样器中的
Use multipart/form-data for HTTP POST
框 - 添加 HTTP Header Manager 作为 HTTP 请求采样器的 child 并将其配置为发送值为
multipart/form-data; boundary=your_custom_boundary
[=27 的Content-Type
header =] 切换到 HTTP 请求采样器的 "Body Data" 选项卡并构造您的请求 body 在那里用
分隔每个参数集--your_custom_boundary
有关更详细的解释和演示,请参阅 Testing REST API File Uploads in JMeter 指南。
对于正在努力使用 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 Header 管理器中,创建一个名称为
Content-type
且值为multipart/form-data; boundary=AaB03x
的行
- 点击运行测试
注意:正如您在上面看到的,我用值 AaB03x
固定了边界,在实际情况中,您应该使用唯一值
据我了解这个问题。您需要为多部分数据发送单独的 headers 请求。
在这种情况下,我建议您通过您使用的客户端发送请求,然后使用 Fiddler 或 JMeter 本身拦截请求。
我以前从未遇到过这种情况。上述解决方案将不起作用,因为预期用途不同。