JMeter配置元件之JDBC Connection Configuration
一、背景
在性能测试、自动化测试时,经常在准备测试数据、清理测试数据或者断言时,都会去操作数据库(增删改查),在jmeter中也就是发起jdbc 请求,而操作数据库(增删改查)之前,需要需要连接数据库,也就是需要先配置好 JDBC Connection Configuration。
二、界面简介
1、添加配置元件
选择测试计划-右键添加配置元件-JDBC Connection Configuration

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) | 线程可空闲时间,单位毫秒 如果当前连接池中某个连接在空闲了 time Between Eviction Runs Millis 时间后任然没有使用,则被物理性的关闭掉 |
| Auto Commit | 自动提交sql语句,比如:修改数据库时,自动 commit |
| Transaction isolation | 事务隔离级别;主要有如下几个选项: TRANSACTION_NODE 事务节点 、 TRANSACTION_READ_UNCOMMITTED 事务未提交读、 TRANSACTION_READ_COMMITTED 事务已提交读 、 TRANSACTION_SERIALIZABLE 事务序列化 、 DEFAULT 默认、 TRANSACTION_REPEATABLE_READ 事务重复读 |
| Preinit Pool | 立即初始化连接池 如果为 False,则第一个 JDBC 请求的响应时间会较长,因为包含了连接池建立的时间 |
2.3、Connection Validation by Pool
功能是验证连接池是否能正常响应
| 字段名称 | 含义 |
|---|---|
| Test While Idle | 当空闲的时候测试连接是否断开 |
| Soft Min Evictable Idle Time(ms) | 连接在池中处于空闲状态的最短时间 |
| Validation Query | 一个简单的查询,用于确定数据库是否仍在响应 默认为jdbc驱动程序的 isValid() 方法,适用于许多数据库 |
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 | 建立连接时要设置的连接属性 |

jdbc:mysql://192.168.88.129:3306/jmeter_class?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true
注意:
- 当选择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" |
三、示例
1、配置数据库连接

2、插入数据

3、查询数据


四、参考
1、jmeter压测练习:https://github.com/princeqjzh/iJmeter
2、dbeaver下载:https://dbeaver.io/download/
3、mysql connector依赖包下载:https://downloads.mysql.com/archives/c-j/
4、mysql数据库的连接:https://www.cnblogs.com/xyztank/articles/16548646.html
5、docker安装mysql:https://www.cnblogs.com/xyztank/articles/16617024.html
6、mysql数据库的创建:https://www.cnblogs.com/xyztank/articles/16617024.html

浙公网安备 33010602011771号