前言:
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦
废话不多说,开始吧~
Variable Name for created pool:数据库连接池名称,自定义
一个JDBC Connection Configuration就是一个数据库连接池配置,一个测试计划可以有多个数据库连接池,只要名称不重复就行
Connection pool configuration : 连接池参数配置,基本保持默认就行了
字段 | 含义 |
---|---|
Max Number of Connections | 最大连接数,一般填0即可,意思是每个线程都使用单独的数据库连接 |
MAX Wait(ms) | 在连接池中取回连接最大等待时间 |
Time Between Eviction Runs | 线程可空闲时间 如果当前连接池中某个连接在空闲了x时间后仍然没有使用,则被物理性关闭 |
Auto Commit | 自动提交sql语句,如修改数据库时,自动commit |
Transaction isolation | 事务隔离级别 |
Connection Validation by Pool:验证连接池是否可响应
字段 | 含义 |
---|---|
Test While Idle | 当连接空闲时是否断开 |
Soft Min Evictable Idle Time | 连接池处于空闲状态的最短时间 |
Validation Query | 一个简单的查询,用于确定数据库是否仍在响应 默认为jdbc驱动程序的isValid()放法,该方法适用于许多数据库 |
Database Connection Configuration:数据库连接配置(重点)
字段 | 含义 |
---|---|
Database URL | 数据库连接URL 例如:jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&allowMultiQueries=true(允许执行多条 sql) |
JDBC Driver class | 数据库驱动 |
Username | 数据库登录用户名 |
Password | 数据库登录密码 |
Connection | 建立连接时要设置的连接属性 |
常见的Database URL 和 驱动—用于设置的时候参考
数据库类型 | URL | 驱动 |
---|---|---|
MySQL | jdbc:mysql://host:port/{dbname} | com.mysql.jdbc.Driver |
PostgreSQL | jdbc:postgresql:{dbname} | org.postgresql.Driver |
Oracle | jdbc:oracle:thin:user/pass@//host:port/servise | oracle.jdbc.driver.OracleDriver |
sqlServer | jdbc:sqlserver://host:port;databaseName=databaseName | com.microsoft.sqlserver.jdbc.SQLServerDriver |
想要使用不同的数据库,就需要引入不同的jar包,下面拿mysql举例:
注意:jmeter自带mysql的jar包,不过可能会因为jar包的版本过低,导致数据库连接失败,需要重新引入一个高版本的jar包覆盖低版本的。
首先需要下载mysql jar包: https://dev.mysql.com/downloads/connector/j/
将jar包复制粘贴到jmeter的bin目录下(将低版本的jar包删除)
重启jmeter
向数据库发送一个JDBC请求(sql语句),并获取返回的数据集
;
变量用?
占位,
分割,
分割;跳过列用空参数化的例子
Query Type = Prepared Select Statement 或 Prepared Update Statement
有几个问号,Parameter value、Parameter type填写的数量要保持一致,用,
分割
参数化+变量
Query Type = Prepared Select Statement 或 Prepared Update Statement
Variable names的用法
运行结果如下:
添加了Debug Sampler方便我们了解添加了Variable name之后,JDBC Request的返回值:
a代表第一列,a_1的值为第一列第一行
b代表第二列,b_1的值为第二列第一行
…