天天看点

Jmeter-JDBC学习

JDBC Request

JDBC Request(与数据库交互的请求类型)——用于向数据库发送一个jdbc请求(请求实际上就是sql语句)并获取返回数据库执行SQL结果数据进行操作。

  它经常需要和JDBC Connection Configuration配置原件(JDBC Connection Configuration:即为配置数据库连接的相关属性,如连接名、密码等)一起使用。

一、使用前准备工作

1.数据库环境要求

准备好能够连接的mysql数据库,且数据库中有正常访问的表信息

数据库开通了其它机器远程访问的权限

命令为:

grant all privileges on . to mysqlusername@"%" identified by ‘mysqlpwd’;(mysqlusername设置MYSQL用户名,MYSQL的密码mysqlpwd)

flush privileges;

2.Jmeter添加需要的驱动jar包

方式1:使用不同的数据库,我们需要引入不同的jar包。直接将jar包(MYSQLmysql-connector-java-5.1.37.jar包的复制到jmeter的lib目录)

mysql数据库:无需引入其他数据库驱动jar包。

sql server 数据库:下载sqljdbc4.jar 放到 jmeter根目录的lib目录下(??待验证)

oracle数据库:将oracle数据的安装目录下面的\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar 放到jmeter根目录下的lib目录下(??待验证)

方式2:通过Test Plan(不常用)

假如我们不使用将jar复制到jmeter的lib目录的方式,我们还可以使用Jmeter的Test Plan引入相应的jar包,如下面引入mysql数据库的jar包

Jmeter-JDBC学习

二、配置JDBC Connection Configuration

重要参数说明

Variable Name:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。

Database URL:数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称, 如:jdbc:mysql://localhost:3306/test

JDBC Driver class:JDBC驱动

username:数据库登陆的用户名

passwrod:数据库登陆的密码

Jmeter-JDBC学习

不同数据库具体的填写方式,可以参考下面的表格:

Database Driver class Database URL

MySQL com.mysql.jdbc.Driver jdbc:mysql://host:port/{dbname}

PostgreSQL org.postgresql.Driver jdbc:postgresql:{dbname}

Oracle oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:user/pass@//host:port/service

Ingres (2006) ingres.jdbc.IngresDriver jdbc:ingres://host:port/db[;attr=value]

MSSQL com.microsoft.sqlserver.jdbc.SQLServerDriver或者net.sourceforge.jtds.jdbc.Driver jdbc:sqlserver://IP:1433;databaseName=DBname或者jdbc:jtds:sqlserver://localhost:1433/"+“library”

三、配置JDBC Request

Jmeter-JDBC学习

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语句返回的结果

四、JDBC Request参数化

(1)SQL中引用变量方式

Jmeter-JDBC学习

(2)SQL中占用符,并传递参数值和参数类型

Jmeter-JDBC学习

五、Variables names 参数使用方法

jmeter官网给的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。假如,sql语句返回5行,2列,且variables names设置为username,pwd,那么如下变量会被设置为:

SQL语句为:select LOGIN_ID,PASSWORD from XXX where =1

  username_#=2 (总行数)

  username_1=第1列, 第1行

  username_2=第1列, 第2行

  username_3=第1列, 第3行

  username_4=第1列, 第4行

  username_5=第1列, 第5行

  pwd_#=2 (总行数)

  pwd_1=第2列, 第1行

  pwd_2=第2列, 第2行

  pwd_3=第2列, 第3行

  pwd_4=第2列, 第4行

  pwd_5=第2列, 第5行

KaTeX parse error: Expected group after '_' at position 2: {_̲_V(username_{__counter(False,)})}

KaTeX parse error: Expected group after '_' at position 2: {_̲_V(pwd_{__counter(False,)})}

继续阅读