目录
一、传统方式-JOSN提取器获取接口返回值
1、接口调用获取返回值
2、添加JSON提取器
3、调试程序查看结果
4、添加循环控制器
5、设置count计数器
6、添加请求
7、执行请求
二、CSV参数化
1、将结果写入后置处理程序
2、设置循环处理器
3、添加CSV文件
4、设置计数器
5、接口调用
三、数据库查询
1、添加mysql jar包
2、、添加JDBC配置元件
3、调试数据库语句
4、ForEach处理器
一、传统方式-JOSN提取器获取接口返回值
1、接口调用获取返回值
2、添加JSON提取器
添加后置处理器-JSON提取器
3、调试程序查看结果
添加后置处理器-调试后置处理程序,验证结果是否正确
4、添加循环控制器
添加-逻辑控制器-循环控制器,并设定循环次数
5、设置count计数器
添加配置元件-计数器,设置计数器最大次数
6、添加请求
引用参数的表达式:${__V(cityId_${__counter(,)},)}
① __V为jmeter自带的一个嵌套变量函数
运行第1次cityId_${__counter(,)}为id_1
运行第2次cityId_${__counter(,)}为id_2
······
运行第367次cityId_${__counter(,)}为id_367
② __counter为jmeter自带的一个计数函数
${__counter(,)} 引用这个函数,每运行1次+1,从1开始
③ cityId_${__counter(,)}
运行第1次cityId_1,运行第2次cityId_2,以此类推,直到运行到循环次数cityId_367
7、执行请求
二、CSV参数化
1、将结果写入后置处理程序
添加后置处理器-BeanShell后置处理程序
代码如下:
FileWriter fstream = new FileWriter("D:\\orderrtn.csv",true);
BufferedWriter out=new BufferedWriter(fstream);
num=vars.get("orderRtnNo_matchNr");
//log.info(num);
for(int i=1;i<=(Integer.parseInt(num));i++){
// log.info("i="+i);
// log.info(vars.get("id_"+i)); 查看是否获取到变量
// log.info(vars.get("name_"+i));
out.write(vars.get("orderRtnNo_"+i)+"\n");
}
out.close();
fstream.close();
2、设置循环处理器
添加-逻辑控制器-循环控制器,并设定循环次数,因为CSV文件中的orderRtnNo显示为orderRtnNo_1,orderRtnNo_11显示,所以此处循环次数要是orderRtnNo_#
3、添加CSV文件
4、设置计数器
添加在循环控制器下,count初始值为1,每次循环+1。
调用JSON提取器提取的orderRtnNo进行数据查询
第一次循环,需要使用orderRtnNo_1进行查询,orderRtnNo_1 = orderRtnNo_${count},第二次循环需要orderRtnNo_2,以此类推。
5、接口调用
- 添加函数
调用 goodsName_${count} 不可以直接${goodsName_${count}},需要使用嵌套变量函数__V:
函数助手生成的函数字符串为:${__V(orderRtnNo_${count},)},
注意要把第一个参数后的逗号删掉: ${__V(orderRtnNo_${count})},代表只需要第一个参数,忽略默认值参数。
三、数据库查询
1、添加mysql jar包
具体的可以去百度下载
2、、添加JDBC配置元件
添加配置元件-JDBC Connection Configuration
Database Connection Configuration是主要的配置信息。
Database URL:数据库链接地址;注意端口号后是数据库名称
jdbc:mysql://localhost:3306/database_name?useUnicode=true&characterEncoding=utf-8
JDBC Driver class:数据库驱动程序,根据不同数据库,选择不同的驱动程序;
mysql:
Username:数据库用户名;
Password:数据库密码。
3、添加JDBC请求
添加-请求-JDBC请求
3、调试数据库语句
4、ForEach处理器
5、接口调用