概述
目标
在自动化测试结束后,如何清理自动化测试结果产生的测试数据也是一个很重要的问题?
Jmeter提供计数器和循环控制器,可用于遍历处理自动化产生的测试数据。
实践过程:
1.通过数据库查询出指定的数据:订单号列表,查询结果存为变量orderno
2.统计数据库查询结果的总数量:查询结果存为变量count
3.使用计数器,最大值=count(数据库查询结果总数)-à订单当前计数值变量命名为countnum
4.使用jmeter提供的嵌套函数读取orderno订单号列表值,读取格式为:${orderno_N},其中N为订单号所在的行值(第一行则为${orderno_1},第二行${orderno_2},以此类推。)
5.使用循环逻辑控制器,结合计数器依次遍历订单列表
循环控制器的循环次数=count(数据库查询出来的订单号总数)
数据库
添加数据库连接配置
菜单路径:Add- Config Element-JDBC Connection Configuration
配置内容:
- 为数据库连接池创建变量:
- 数据库连接Database URL
- 数据库账号Username:
- 数据库密码Password:
具体配置可参考前面文章
添加数据库请求
菜单路径:Add-Sample-JDBC Request
- 查询指定订单号
A、查询指定条件下的订单号
查询指定区间范围内的数据,可使用关键字BETWEEN …AND…,具体查询语句可自行百度或让对应的开发人员提供。
B、查询结果
C、引用方法:
第一行则为${orderno_1}
第二行${orderno_2}
……以此类推
- 查询结果数量统计
A、统计查询结果数量:
数据库语句为:
select count(*) from (查询指定条件下的订单号的数据库查询语句) as tableA
B、统计结果
C、引用方法:${count_1}
注意事项:进行查询结果统计时,需要将查询订单号列表的SQL语句作为新的表(关键字as),否则会运行脚本会报错
添加计数器
Jmeter提供的计数器(counter)允许用户配置一个起点,一个最大值,增量数,循环到最大值,然后重新开始,继续这样,直到测试结束。
计数器使用long存储的值,所取的范围是2^63——2^63-1
菜单路径:Add - Config Element-counter
Staring value:计数的起始值
Increment:增量值,也就是每次增加多少,也可以叫做步长
Maximum value:计数的最大值,也就是本文数据库查询结果的统计总数:${count_1}
Jmeter嵌套函数
嵌套变量的常用方法一共有两种:
- 第一种:${__V{变量_${变量}}}
- 第二种:${__BeanShell(vars.get("变量_${变量}"))}
本文主要使用Jmeter函数助手提供“嵌套函数_V{}”,函数__V可以用于执行变量名表达式,并返回执行结果。它可以被用于执行“组合变量”使用。
数据库查询结果会形成一个列表order(如下图),此时需要通过下标号读取对应的订单号,例如:
- 第一行则为${orderno_1}
- 第二行${orderno_2}
- ……以此类推
通过计数器和循环控制器循环读取时,可将行标定义为一个变量,结合上面的订单号变量
嵌套函数引用结果:
${__V(orderno_${countnum},)}
嵌套变量的2种写法分别为:
添加beanshell preprocessor通过log打印出两种写法获取的结果是否正确,如下图
清理测试数据
通过数据库清理数据的途径可以有:
- 修改数据库,将数据修改为无效状态,例如:订单状态改为“已取消”
- 删除数据库,将测试数据进行删除(删除时要注意删除其他表内的数据,避免产生垃圾数据,影响真实测试小郭)
本文以最简便的“修改数据库”方式来清理自动化产生的测试数据。
菜单路径:Add-Sample-JDBC Request
添加循环控制器
通过jmeter提供的逻辑循环控制器,循环遍历订单号列表,逐一清楚指定的订单数据。
菜单路径:Add-Logic Controller- Controller
1.指定循环控制器的循环次数=数据库查询结果的统计总数${count_1}
- 将清除数据的JDBC request请求添加到逻辑控制器(Loop Controller)下
运行结果
遍历循环读取数据库查询结果数据,并逐一将订单修改为无效状态。
最后
以上就是狂野乐曲为你收集整理的Jmete-嵌套变量的使用(数据库组合查询多个结果变量引用)目标数据库添加计数器Jmeter嵌套函数清理测试数据添加循环控制器运行结果的全部内容,希望文章能够帮你解决Jmete-嵌套变量的使用(数据库组合查询多个结果变量引用)目标数据库添加计数器Jmeter嵌套函数清理测试数据添加循环控制器运行结果所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复