JMeter中的parameters 和 body data


转载https://blog.csdn.net/lluozh2015/article/details/51548243

在做接口并发测试的时候,才发现Jmeter中的Parameters和Body Data两种参数格式并不是简单的一个是xx=xx,另外一个是json格式的参数

先看一个接口

[post] /api/xx/xxxx/xxxx 通知服务端文件上传完毕
  • 1

输入参数:

http content type: application/json

名称 | 类型 | 是否必须 | 参数限制 | 描述
--------- | ----------- | -------- | ---------- | ----------
cid | string | 是 | cid.length==36 | id
version | int | 是 | 无 | 版本

开始时在Jmeter的请求为

这里写图片描述

请求返回的结果为

{"msg":"{\"message\":\"error\",\"error_code\":4000}","ret":"error"}
  • 1

查找后发现是Parameters和Body Data的使用,还有请求的参数理解有误

仔细看看抓包中的两种“参数”

xx=xx&xxx=xx格式

这里写图片描述

json格式

这里写图片描述

Parameters

xx=xx&xxx=xx格式的参数为GET或者POST请求中,url中带的参数值,如:

在一个这样的请求中/api/xx/xxx/xxxx?index=0&pagesize=100&thumb=1
?号后面的可以写在url中,也可以写在Parameters中

这里写图片描述

Body Data

json格式的是POST请求中的参数,POST请求参数时,看请求的格式,是否需要在请求中添加HTTP信息头管理器,将请求的Content-Type 或者 User-Agent 等进行定义

HTTP请求的格式:

这里写图片描述

HTTP信息头管理器:

这里写图片描述

JMeter,如果你需要通过HTTP请求发送文件,通常会使用"HTTP Request"或"HTTP Client Protocol"等元件,并选择"POST"请求类型。对于Body部分传递文件,有几种常见的方式: 1. **表单数据(Form Data)**: 如果文件是一个上传字段,你可以将其设置为File Upload,然后在File Path域输入你要上传的文件路径。 ```xml --data='field_name=@path_to_your_file' ``` 记得将`field_name`替换为你实际的表单字段名,`@path_to_your_file`是JMeter变量引用,指向实际文件的位置。 2. **Multipart/form-data**: 对于更大的文件或二进制数据,更推荐使用Multipart POST,它支持分块传输编码。你需要配置一个新的Data Config Element来指定文件类型和大小,然后在HTTP Request添加一个part: ```xml <Part> <name>file</name> <file-path>${__P(file_path)}</file-path> <header>Content-Disposition: form-data; name="file"; filename="your-file-name"</header> <content-type>application/octet-stream</content-type> </Part> ``` 这里`${__P(file_path)}`是另一个JMeter变量引用。 3. **使用CSV Data Set Config**: 也可以从CSV文件读取文件路径作为数据源,配置好数据集后,在HTTP Request的“Parameters”区域引用这些参数。 4. **使用Beanshell预处理器或JSR223 Sampler**: 可以编写脚本来动态创建上述配置,例如,从本地文件系统读取并设置File Path。 在操作过程,确保服务器端接受POST请求的Content-Type设置正确,如`multipart/form-data`。执行前别忘了检查目标系统的文件上传限制以及可能的认证需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值