在做接口并发测试的时候,才发现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 | 是 | 无 | 版本
- 1
- 2
- 3
- 4
- 5
- 6
开始时在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信息头管理器: