jmeter连接数据库

1、JDBC Connection Configuration配置

1> 在线程组配置元件中添加JDBC Connection Configuration,是关于数据库连接配置
jmeter连接数据库
jmeter连接数据库
2> 配置说明
jmeter连接数据库
jmeter连接数据库
第一部分:Variable Name Bound to pool
Variable Name for created pool,填写一个自定义变量名,方便后续在JDBC request中引用数据库配置
第二部分:Connection pool Configuration
连接池参数配置,保持默认即可,可根据需求进行修改
字段
含义
Max Number of Connections
最大连接数;做性能测试时,建议填 0
如果填了10,则最大连接10个线程
Max Wait(ms)
在连接池中取回连接最大等待时间,单位毫秒
Time Between Eviction Runs(ms)
线程可空闲时间,单位毫秒
如果当前连接池中某个连接在空闲了 time Between Eviction Runs Millis 时间后任然没有使用,则被物理性的关闭掉
Auto Commit
自动提交sql语句,如:修改数据库时,自动 commit
Transaction isolation
事务隔离级别
Preinit Pool
立即初始化连接池
如果为 False,则第一个 JDBC 请求的响应时间会较长,因为包含了连接池建立的时间
第三部分:Connection Validation by Pool
验证连接池是否可响应
字段
含义
Test While Idle
当连接空闲时是否断开
Soft Min Evictable Idle Time(ms)
连接在池中处于空闲状态的最短时间
Validation Query
一个简单的查询,用于确定数据库是否仍在响应
默认为jdbc驱动程序的 isValid() 方法,适用于许多数据库
第四部分:Database Connection Configuration (数据库连接配置)
Database URL(数据库连接 URL)
jdbc:mysql://IP:3306/dbname?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&allowMultiQueries=true
(允许执行多条SQL)
JDBC Driver class (数据库驱动)
Username (数据库登录用户名)
Password (数据库登录密码)
Connection Properties (建立连接时要设置的连接属性)
常见数据库的连接 URL和驱动
数据库
驱动包
驱动类名
JDBC的URL
备注
区别
MySQL
com.mysql.jdbc.Driver
jdbc:mysql://IP地址:端口号/数据库名字
注:端口号缺省为:3306
 
SQL server
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:microsoft:sqlserver://IP地址:端口号;DatabaseName=数据库名
注:端口号缺省为:1433
Oracle
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@IP地址:端口号:数据库名
注:端口号缺省为:1521
ojdbc6和ojdbc14的区别:ojdbc14.jar(适合java-1.4和1.5),ojdbc6(适合java-1.6)

2、JDBC Driver驱动包

2.1> 引用jar包(驱动包)

使用不同的数据库,需要引入不同的 jar 包,一共有两种方式,不过前提是下载好了 jar 包(驱动包)。以MySQL为例
引入方式一
将下好的 jar 包直接放到 jmeter 的 lib 目录下,然后重新启动就行了
jmeter连接数据库
jmeter连接数据库
引入方式二
在测试计划底部添加 jar 包即可(jar包可以放置任意位置,引用地址正确即可)
jmeter连接数据库
jmeter连接数据库

2.2> 特别说明

引用jar包版本要与数据库版本相对应
数据库版本查看方式-SQL查询数据库版本
select version() from dual;
版本不对应会出现报错:Jmeter Cannot load JDBC driver class ‘com.mysql.jdbc.Driver‘

3、JDBC request配置

在取样器(sampler)中添加JDBC request,配置如下:
jmeter连接数据库
第一部分,Variable Name Bound to pool declared in JDBC Connection Configuration (填写之前的自定义变量名)
第二部分,Query Type
字段
定义
Select Statement
Select语句
Update Statement
Update语句
Callable statement
 
Prepared Select Statement
参数化 Select语句
Prepared Update Statement
参数化 Update语句
Commit
 
Rollback
 
AutoCommit(false)
 
AutoCommit(true)
 
Edit
 
第三部分,Query参数化
字段
定义
SQL Query
sql 语句
语句结尾不需要添加 ;
变量用 ? 占位
Parameter values
需要传递的变量值,多个变量用 , 分隔
Parameter types
变量类型
Variable Names
保存sql语句返回数据的总行数和返回的数据
用 , 分隔
跳过列用空。
当接收参数少于返回列时,从开始第一列依次往后接收
Result Variable Name
一个 Object 变量存储所有返回值
Query timeout(s)
超时时间;默认0,代表无限时间
Limit ResultSet
和 limit 类似作用,限制 sql 语句返回结果集的行数
Handle ResultSet
如何定义 callable statements 返回的结果集;默认是存储为字符串
SELECT * FROM `user` WHERE shop_id = ? AND user_type = ? AND user_name LIKE ?
? 代表占位符,Parameter values值替代?部分,需要与Parameter types配合使用
jmeter连接数据库
sql 中使用占位符时,Query Type 必须选择 Prepared Select Statement 或者 Prepared Update Statement
jmeter连接数据库

如果在 sql 语句中使用变量,且是字符串类型,需要加上引号(前提是变量值没有加引号),如 ‘${name}‘

如果在 Parameter values 中使用变量,且是字符串类型,不需要加上引号,只需要在 Parameter types 里写明为 varchar 即可

4、调试取样器查看结果

调试取样器可以在查看结果树中看到在脚本中参数化变量所取得值

jmeter连接数据库

上一篇:Java-JDBC


下一篇:给新创建的用户 赋予所有的权利 *.* 查看权限 删除用户 ---------DCL用户权限管理篇