Jmeter:HTTP请求,content-type中的multipart/form-data

解析multipart/form-data
18 篇文章 ¥19.90 ¥99.00

Header中的content-type有三种格式,分别为

  • 支持key-value数据格式的application/x-www-form-urlencoded
  • 支持json数据格式的application/json
  • 支持各种混合数据格式,以表单形式提交的multipart/form-data

前两种比较简单,请参考Jmeter:HTTP请求中的content-type(补充篇)。最近遇到一个multipart/form-data格式套装application/json的,记录一下。

Fiddler中抓到的请求数据

Header

Content-Type: multipart/form-data; boundary=----WebKitFormBoundary4FB5e6lCzhHGTwV3

表示这个请求的payload是一组表单数据,有多个部分组成,以字符串“----WebKitFormBoundary4FB5e6lCzhHGTwV3”作为各部分的边界分割。

payload

### 使用 JMeter 发送 multipart/form-data 请求 #### 配置 HTTP 请求采样器 为了发送 `multipart/form-data` 类型的数据,在配置 **HTTP 请求** 采样器时需注意几个关键设置: - 方法应设为 POST 或 PUT,这取决于服务器端的要求[^1]。 ```plaintext Method: POST ``` - URL 路径应当指向接收文件或其他表单数据的目标地址。 #### 设置 Content-Type 和 文件上传选项 确保在 **HTTP 请求默认值** 或者具体的 **HTTP 请求** 中勾选了 "Use multipart/form-data for POST" 这一选项。此操作会自动将请求头中的 `Content-Type` 设定为 `multipart/form-data; boundary=...` 形式[^4]。 对于需要上传文件的情况,可以在 **Send Files with the Request** 下指定要上传的文件路径以及对应的参数名。如果存在多个文件,则可以重复添加更多条目来支持多文件上传[^3]。 #### 添加动态参数 当涉及到像时间戳这样的动态参数时,可以通过内置函数实现自动化填充。例如,使用 `${__time(,timestamp)}` 来获取当前 Unix 时间戳作为参数值传递给服务端。 #### 构建复杂的 Body Data 结构 有时可能还需要构建更复杂结构的 body 数据,比如嵌套 JSON 对象或者其他格式的内容。此时可利用 BeanShell PreProcessor 或 JSR223 PreProcessor 编写脚本来组装最终提交的数据体,并通过变量方式传入到实际的 HTTP 请求中去[^2]。 ```groovy // 示例 Groovy Script (JSR223 PreProcessor) def jsonPayload = '{"key":"value"}' vars.put('jsonBody', jsonPayload) ``` 随后,在 HTTP 请求内的 Parameters 表格里加入如下项即可: | Name | Value | |------------|----------------| | param_name | ${jsonBody} | 这样就完成了整个 multipart/form-data 请求的准备工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值