一:参数化引入
第一章我们学习了JMeter的安装,基本原理,常用的组件,结合一个案例利用JMeter进行并发压力测试。但是实际情况当进行并发测试时,比如登陆操作,每个用户的登录名和密码都不一样,这时候要做到并发操作,就需要对用户名和密码进行参数化。
接下来讲解一下JMeter参数化。
二:案例分析
模拟10个用户同时访问“订单查询接口“,将json格式的接口参数进行参数化。
1. 创建接口测试计划和线程组
2. 添加采样器Sampler :Http请求
Web服务器ip:qaweb20.chetong.net
查询订单接口路径:ctbackend/rest/ctAppOrder/queryMyOrder
接口采用post方法向服务器发送数据。
3.添加Http信息头管理器
信息头添加一条名称为 Content-Type,值为 application/json 即可:
4.为采样器在Body Data中添加json格式的参数
例如:
{
"userId":"22399",
"pageNo":"1",
"pageSize":"10"
}
5.对json数据进行参数化
(1)创建CSV Data 配置元件
(2)编辑CSV Data 配置元件:
Filename: 参数数据文件路径 (比如D:\param.txt);
File encoding: 文件编码格式(utf-8);
Variable Names: 参数名(比如 userId,pageNo,pageSize)参数之间用英文逗号隔开;
(3)编辑参数保存的文件D:\param.txt 内容如下:
10组数据对应10个线程,例如第一行:userId=22399,pageNo=1,pageSize=10
(4)编辑Body Data里的json串里需要参数化的地方,使用${*}格式代替
{
"userId":"${userId}",
"pageNo":"${pageNo}",
"pageSize":"${pageSize}"
}
6.添加查看结果树,聚合报告。对结果进行分析
附:
1. http Poster免安装工具使用:
Conncurrent:线程数
Request URL: http://qaweb20.chetong.net/ctbackend/rest/ctAppOrder/queryMyOrder
Request Body:
{
"userId": 11062,
"pageNo": 1,
"pageSize": 10
}