系统:windows11 jmeter版本:5.4.3
一、建立数据库连接
1、添加配置原件JDBC Connection Configuration:线程组 - 右键“添加” - 配置原件 - JDBC Connection Configuration
2、配置JDBC Connection Configuration
JDBC Connection Configuration参数详解:
Variable Name for created pool:数据库连接池的名称,存在多个JDBC连接配置时,此属性不能重复,供JDBC Request调用
Max Number of Connections:连接池允许的最大连接数。默认为“0”,即每个线程具有单个连接的情况下获得自己的连接池,即该连接在线程之间不共享。如果确实要使用共享,则将最大计数设置为与线程数相同,以确保线程不会彼此等待。
Max Wait(ms):尝试连接最大等待时长,超时报错(默认为“ 10000 ”)
Time Between Eviction Runs(ms):空闲连接池被回收的时间间隔,如果设置为非正数,则空闲连接回收器将不停的运行(默认为“ 60000 ”)
Auto Commit:自动提交。有三个选项,true、false、编辑(自己通过jmeter提供的函数设置,本文不做详述)。默认True,如果修改数据库,则会自动提交
Transaction Isolation:事务控制选项,默认DEFAULT,具体参数详解如下:
TRANSACTION_NODE: 不支持事务
TRANSACTION_READ_UNCOMMITTED: 允许脏读、不可重复读和幻读
TRANSACTION_READ_COMMITTED :禁止脏读、但允许不可重复读和幻读
TRANSACTION_SERIALIZABLE: 禁止脏读、不可重复读和幻读
DEFAULT :默认,禁止脏读,但允许不可重复读和幻读;
TRANSACTION_REPEATABLE_READ :禁止脏读、不可重复读,允许幻读
编辑
备注:
脏读:一个事物读取另一个事物未提交的数据
不可重复读:一个事物再次读取之前的数据时,这个数据已经被另一个事物修改
幻读:一个事物重新执行一个查询,返回的记录包含了其他事物提交的新记录
Test White Idle:验证查询测试连接池是否空闲,默认True
Soft Min Evictable Idle Time(ms):连接池允许处于空闲状态的最短时间,闲置超过这个时间将会被回收,默认5000
Validation Query:查询语句验证连接是否可用,根据自己的数据库选择
网上有对数据库类型和验证语句的总结。本人oracle和mysql都选择select1,其他类型未接触过,不多做详解
Database URL:数据库url
JDBC Driver class:JDBC驱动
Database | Driver class | Database URL | example |
MYSQL | com.mysql.jdbc.Driver | jdbc:mysql://host:port/{dbname} | jdbc:mysql://28.105.151.123:3306/sqh_sit |
DB2 | com.ibm.db2.jcc.DB2Driver | jdbc:db2://host:port/{dbname} | |
PostgreSQL | org.postgresql.Driver | jdbc:postgresql:{dbname} | |
Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@//host:port/service OR jdbc:orcle:thin:@(description=(address+(host={mc-name})(protocol=tcp)(port={port-no}))(connect_data=(sid={sid}))) | |
Ingres(2006) | ingres.jdbc.IngresDriver | jdbc:ingres://host:port/db[;attr=valuse] | |
MSSQL | com.microsoft.sqlserver.jdbc.SQLServer OR net.sourceforge.jtds.jdbc.Driver | jdbc:sqlserver://ip:port;databaseName+DBname OR jdbc:jtds:sqlserver://localhost:1443/”+”library”” |
Username:数据库登录用户名
Password:数据库登录密码
二、JDBC Request
1、线程组 - 右键“添加” - “取样器” - “JDBC Request”
2、JDBC Request参数详解
Variable Name of Pool declared in JDBC Connection Configuration:在配置原件JDBC Connection Configuration中申明的数据库连接池的名称(即配置原件JDBC Connection Configuration中Variable Name for created pool参数值)
Query Type:
1)、Select Statement:执行查询语句,不可以用占位符来做参数化,但是可以用${}引用变量
2)、Update Statement:执行更新操作,不可以用占位符来做参数化,但是可以用${}引用变量。如果是自负变量要系上单引号
3)、Prepared Selsect Statement:查询语句,有占位符"?"时使用
4)、Prepared Update Statement:执行更新操作,有占位符"?"时使用
5)、Commit:执行完SQL后,马上提交,使用这个选项时,JDBC Connect Configuration中Auto Commit 选择false
6)、Rollback:回退,数据不会插到数据库。使用这个选项时,JDBC Connect Configuration中Auto Commit 选择false。(PS:Rollback是指jmeter进行数据库操作室时,还没有提交到数据库的时候,执行有效,可以正常回滚。如果是已提交到数据库的操作,该回滚不会将数据库中的数据回滚)