Jmeter的JDBC请求执行多条SQL语句

时间:2022-06-02 16:39:46

注:有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}...来获取相应的值