【前言】
今天记录一下Jmeter中JDBC Request和BeanShell PostProcessor的结合使用的方法(SQL模糊查询)
【步骤】
1.下载对应数据库的驱动包到jmeter安装目录的lib文件中,并导入到jmeter的测试计划中(楼主的数据库是Postgresql)
2.配置好JDBC Connection Configuration
Variable Name:定义变量名称,作用:说明哪个JDBC Request需要引用此配置
Database Connection Configutration:输入要访问的数据库信息
- Database URL:数据库连接的信息
-详细介绍可以参考下这篇博客: https://blog.csdn.net/amoscn/article/details/74991924
- JDBC Driver class:数据库的连接驱动名称
- Username:数据库的用户名
- Password:数据库的密码
3.添加JDBC Request(需要执行的SQL语句)
Variable Name:输入需要引用的JDBC配置(当前输入的数值与JDBC Connection Configuration相同的名称),两者的变量名称是需要一致的 ,就代表引用哪一个数据库连接
Query Type:输入查询的类型(默认选择Select Statement)
详细介绍可以参考下这篇博客:https://www.cnblogs.com/imyalost/p/6498029.html
Restult Variable name:将所查询的结果放到此结果集中(result)
4.从BeanShell PostProcessor中取出结果集
取出结果集中的数据:
columnValue = vars.getObject(“resultObject”).get(0).get(“Column Name”);
- vars.getObject(“resultObject”):代表从哪个结果集中取数据
- get(0):取第几行
- get(“ColumnName”):取哪一列(哪一列即为JDBCRequest查询结果中的字段名)
备注:
1. columnValue = vars.getObject(“resultObject”).get(0).get(“Column Name”),返回的类型是Object类型。
2 需要将Object类型转换成String类型(取出对象的名称.toString())。
例如:columnValueResule.toString()),其中columnValueResule是取出的对象名称
3 取出来的变量放到jmeter中,用此方法:vars.put(“key”,Value)。
例如:vars.put(“xxxx”,DBclassname.toString());如果要引用此查询语句的结果,只需要引用key值就可以
5.使用JDBC Request进行模糊查询
引用BeanShell中值的固定格式为:${xxxx}