Jmeter学习:JDBC链接池配置
功能:通过该元件,我们可以给数据源配置不同的连接池,供后续 JDBC 采样器使用。
使用场景:该元件配置通常与 JDBC 采样器一同使用。
Jmeter 默认采用 DBCP 连接池。
1. 下载驱动
使用前请将对应的数据库驱动复制到$JMETER_HOME/lib/或者$JMETER_HOME/lib/ext/下。
Mysql数据库驱动下载:https://downloads.mysql.com/archives/c-j/
下载时注意,版本向下兼容,如果是windows版本的jmeter则下载zip包,Linux系统的则选择tar.gz,平台选择platform independent。
2. 参数介绍
2.1、Variable Name Bound to Pool
绑定数据库连接池的变量名
字段名称 | 含义 |
---|---|
Variable Name for created pool | 数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request取样器中可以通过这个名称选择合适的连接池进行使用。 |
注意:Variable Name for created pool其与JDBC Request取样器中的的Variable name保持一致。
2.2、Connection pool Configuration
连接池的参数配置,一般保持默认设置
字段名称 | 含义 |
---|---|
Max Number of Connections |
数据库连接池最大连接数,意思是每个线程都使用单独的数据库连接,线程之间数据库连接不共享;做性能测试时,建议填 默认值0。 如填写具体链接数请务必将最大计数设置为与线程数相同,以确保线程不会相互等待。 |
Max Wait(ms) | 在连接池中取回连接最大等待时间,单位毫秒 |
Time Between Eviction Runs(ms) |
空闲对象清除器线程运行的休眠毫秒数。当非正值时,没有空闲对象清除线程将运行 对象清除器执行时会将超过Soft Min Evictable Idle Time(ms)线程休眠时间的线程清除掉。 |
Auto Commit | 自动提交sql语句,比如:修改数据库时,自动 commit |
Transaction isolation | 事务隔离级别;主要有如下几个选项: TRANSACTION_NODE 事务节点; TRANSACTION_READ_UNCOMMITTED 事务未提交读; TRANSACTION_READ_COMMITTED 事务已提交读(生产压测常用); TRANSACTION_SERIALIZABLE 事务序列化; DEFAULT 默认; TRANSACTION_REPEATABLE_READ 事务重复读; |
Preinit Pool | 立即初始化连接池 如果为 False,则第一个 JDBC 请求的响应时间会较长,因为包含了连接池建立的时间 |
Pool Prepared Statements | 每个连接池中准备语句的最大数量。“-1”禁用池化,“0”表示池化预处理语句的数量不受限制。(默认为“-1”) |
Init SQL statements separated by new line | SQL语句集合,用于在首次创建物理连接时初始化物理连接。这些语句只执行一次——当配置的连接工厂创建连接时。 |
2.3、Connection Validation by Pool
功能是验证连接池是否能正常响应
字段名称 | 含义 |
---|---|
Test While Idle | 当空闲的时候测试连接是否断开 |
Soft Min Evictable Idle Time(ms) | 连接在池中处于空闲状态的最短时间 |
Validation Query |
一个简单的查询,用于确定数据库是否仍在响应 默认为jdbc驱动程序的 isValid() 方法,适用于许多数据库 不同类型的数据库测试sql不一样,具体参考官网。 |
2.4、Database Connection Configuration
数据库连接配置
字段名称 | 含义 |
---|---|
Database URL | 数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称 如:jdbc:mysql://localhost:3306/test |
JDBC Driver class | 数据库驱动。比如:com.mysql.jdbc.Driver |
Username | 数据库登录用户名 |
Password | 数据库登录密码 |
Connection Properties | 建立连接时要设置的连接属性 |
注意:
- 当选择mysql 5的版本时,jar包,可以选择大于等于数据库版本的任务jar包。
- 当选择mysql 8的版本时,jar包,可以选择大于等于数据库版本的任务jar包,一般选择版本号相同的包。
- mysql 5的版本和mysql 8的版本JDBC Driver class不相同。
2.5、不同数据库驱动
可以参考下面的表格
Datebase | Driver class | Database URL |
---|---|---|
MySQL5 | com.mysql.jdbc.Driver | jdbc:mysql://ip地址:端口号/数据库名 |
MySQL8 | com.mysql.cj.jdbc.Driver | jdbc:mysql://ip地址:端口号/数据库名 |
PostgreSQL | org.postgresql.Driver | jdbc:postgresql: |
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" |