Jmeter的JDBC请求执行多条SQL语句
注:有mysqlconnector/j 3.1.1以上版本才支持执行多条sql语句
1. 下载jdbc驱动
为了连接Mysql数据库,还需要有个jdbc驱动:mysql-connector-java-5.1.41-bin.jar
CSDN下载地址: https://download.csdn.net/download/glongljl/10398325
2. 添加jdbc驱动
打开JMeter,点击测试计划,点击“浏览...”按钮,将你的JDBC驱动添加进来。
3. 添加jdbc connection配置
添加一个线程组,右键点击“线程组”,在下面添加一个“JDBC Connection Configuration“,Database URL为MySQL的连接串,如果要执行多条SQL语句,后面还要添加“?allowMultiQueries=true”
JDBC Driver Class是本机的jdbc驱动路径。Mysql数据库,默认com.mysql.jdbc.Driver,不同数据库有不同默认值
4. 添加一个JDBC Request
右键点击“线程组”,在下面添加一个“JDBCrequest”,如果要执行多条SQL语句,Quer Type一定要选择 Callable statement,使用Callablestatement时,一次可以包含多个SQL,如上图所示。
这里需要注意的是VariableName Bound to Pool同JDBC CONNECTION的一致
· Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
· Query:填写的sql语句未尾不要加“;”
· Parameter valus:参数值
· Parameter types:参数类型,可参考:Javadoc for java.sql.Types
· Variable names:保存sql语句返回结果的变量名
· Result variable name:创建一个对象变量,保存所有返回的结果
· Query timeout:查询超时时间
· Handle result set:定义如何处理由callable statements语句返回的结果
注: Variables names参数使用方法:
Jmeter官网给的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。假如,sql语句返回2行,3列,且variables names设置为A,,C,那么如下变量会被设置为:
A_#=2 (总行数)
A_1=第1列, 第1行
A_2=第1列, 第2行
C_#=2 (总行数)
C_1=第3列, 第1行
C_2=第3列, 第2行
如果返回结果为0,那么A_#和C_#会被设置为0,其它变量不会设置值。
如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。
可以使用${A_#}、${A_1}...来获取相应的值