一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“JMeter测试关系数据库(应用案例)”。
应用案例
案例准备
从ecshop数据库获取商品及商品类型:
SELECT g.goods_name,gt.cat_name
FROM ecs_goods g INNER JOIN ecs_goods_type gt
ON g.goods_type = gt.cat_id
操作步骤
1.将MySQL驱动程序包mysql-connector-java-5.1.21-bin.jar放至JMeter安装目录下的lib\ext目录下;
2.启动JMeter,在测试计划下添加线程组;
3.在线程组下,添加“JDBC Connection Configuration”配置元件,并配置:
Variable Name for created pool:mysql
Validation Query:select 1
JDBC Driver class:com.mysql.jdbc.Driver
username:root
其他默认
4.在线程组下,添加“JDBC Request”取样器,并配置:
Variable Name of Pool declared in JDBC Connection Configuration:mysql
Query Type: Select Statement
Query:
SELECT g.goods_name,gt.cat_name
FROM ecs_goods g INNER JOIN ecs_goods_type gt
ON g.goods_type = gt.cat_id
其他默认
5.在JDBC请求下添加“View Results Tree”监听器
6.保存并启动测试
7.查看查看结果树中的响应内容,结果如下图所示:
注意: 若是先启动JMeter再安装驱动包,没有重启,执行测试会报错“Cannot load JDBC driver class 'com.mysql.jdbc.Driver'”。
若要引用数据返回的查询结果集中的数据,比如使用goods_name与cat_name,可以设置变量保存返回的各个列值。
在上例中,从步骤4开始,做如下修改:
4.在步骤4中,新增配置项:
Variable names:goodsName,goodsType
变量名可以自定义,变量名之间用逗号分隔。这两个变量分别保存查询结果集中goods_name与cat_name的列值。
5.在JDBC请求下添加“View Results Tree”监听器
6.在线程组下添加“Debug Sampler”取样器
7.在“Debug Sampler”下添加“View Results Tree”监听器
8.保存并启动测试
9.查看“Debug Sampler"下的“View Results Tree”的响应内容,如下所示:
goods_name列值保存到goodsName变量中,可以通过goodsName_1,goodsName_2,... ,
goodsName_n来引用不同的列值(注意下标从1开始,引用方式:变量名_下标),goodsType变量类似。