jmeter之数据库连接配置说明
jmeter 之数据库连接
1、JDBC Connection Configuration
从提供的JDBC连接设置创建数据库连接(由JDBC RequestSampler使用)。连接可以选择在线程之间进行池化。否则每个线程都有自己的连接。JDBC采样器使用连接配置名称来选择适当的连接。使用的池是DBCP,请参阅BasicDataSource配置参数。

参数说明:
name 必填:否
描述:树中显示的连接配置的描述性名称。
Variable Name for created pool 必填:否
描述:连接所绑定的变量的名称 可以使用多个连接,每个连接都绑定到一个不同的变量,从而允许JDBC Samplers选择适当的连接。每个名称必须不同。 如果有两个使用相同名称的配置元素,则只会保存一个。 如果检测到重复名称,JMeter会记录一条消息。 是 最大连接数 池中允许的最大连接数。 在大多数情况下,将此设置为零(0)。 这意味着每个线程将在其中具有单个连接的情况下获得其自己的池,即该连接在线程之间不共享。如果您确实要使用共享池(为什么?),则将最大计数设置为与线程数相同,以确保线程不会彼此等待。
Max Wait (ms) 必填:是
描述:如果在尝试检索连接的过程中超过了超时期限,则Pool会引发错误.具体见:https://commons.apache.org/proper/commons-dbcp/api-2.1.1/org/apache/commons/dbcp2/BasicDataSource.html#getMaxWaitMillis--
Time Between Eviction Runs (ms) 必填:是
描述:空闲对象退出线程的两次运行之间要休眠的毫秒数。 当为非肯定时,将不运行任何空闲的对象退出线程。 (默认为“ 60000”,1分钟)。见:https://commons.apache.org/proper/commons-dbcp/api-2.1.1/org/apache/commons/dbcp2/BasicDataSource.html#getTimeBetweenEvictionRunsMillis--
Auto Commit 必填:是
描述:打开或关闭连接的自动提交。
Transaction isolation 必填:是
描述: 事务隔离级别
Preinit Pool 必填:否
描述:连接池可以立即初始化。 如果设置为False(默认),则使用此池的JDBC请求采样器可能会为第一个查询测量更高的响应时间-因为包括了整个池的连接建立时间。
Init SQL statements separated by new line 必填:否
描述:SQL语句的集合,将在首次创建物理连接时将其用于初始化。 这些语句仅执行一次-当配置的连接工厂创建连接时
Test While Idle 必填:是
描述:测试池的空闲连接,请参阅https://commons.apache.org/proper/commons-dbcp/api-2.1.1/org/apache/commons/dbcp2/BasicDataSource.html#getTestWhileIdle-- 验证查询将用于测试它。
Soft Min Evictable Idle Time(ms) 必填:是
描述: 在空闲对象驱逐者有资格将其驱逐之前,连接可能在池中处于空闲状态的最短时间,另外还有至少最少空闲连接保留在池中的额外条件。 请参阅BasicDataSource.html#getSoftMinEvictableIdleTimeMillis。 默认值为5000(5秒)
Validation Query 必填:否
描述:一个简单的查询,用于确定数据库是否仍在响应。 默认为jdbc驱动程序的'isValid()'方法,该方法适用于许多数据库。
但是,有些可能需要不同的查询。 例如,可以使用Oracle之类的“ SELECT 1 FROM DUAL”。
验证查询的列表可以使用jdbc.config.check.query属性进行配置,
并且默认情况下为:
hsqldb:
select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
Oracle:select 1 from dual
DB2:
select 1 from sysibm.sysdummy1
MySQL or MariaDB:
select 1
Microsoft SQL Server (MS JDBC driver):
PostgreSQL:
select 1
Ingres:
select 1
Derby:
values 1
H2:
select 1
Firebird:
select 1 from rdb$database
Exasol:
select 1
该列表来自不同数据库验证查询上的stackoverflow条目,该列表可能不正确
请注意,即使“ Test While Idle”建议仅在空闲连接上使用查询,此验证查询也会在池创建中用于对其进行验证。 这是DBCP的行为。 否 Database URL 数据库的JDBC连接字符串 是 JDBC Driver class 驱动程序类的全限定名称。 (必须在JMeter的类路径中-必须将.jar文件复制到JMeter的/ lib目录中)。
可以使用jdbc.config.jdbc.driver.class属性配置预配置的jdbc驱动程序类的列表,并且默认情况下是:
hsqldb: org.hsqldb.jdbc.JDBCDriver
Oracle: oracle.jdbc.OracleDriver
DB2 :com.ibm.db2.jcc.DB2Driver
MySQL :com.mysql.jdbc.Driver
Username 必填:否
描述: 数据库的用户名
Password 必填:否
描述:用于连接的密码。 (注:此文件未加密存储在测试计划中)
Connection Properties 必填:否
描述:建立连接时要设置的连接属性(例如,对于Oracle,像这样:internal_logon = sysdba)
不同的数据库和JDBC驱动程序需要不同的JDBC设置。 数据库URL和JDBC驱动程序类由JDBC实现的提供程序定义。
一些可能的设置如下所示。 请检查JDBC驱动程序文档中的确切详细信息。
如果JMeter报告没有合适的驱动程序,则可能意味着:
1、找不到驱动程序类。 在这种情况下,将出现一条日志消息,例如
**DataSourceElement: Could not load driver: {classname}
*java.lang.ClassNotFoundException: {classname}
找到了驱动程序类,但该类不支持连接字符串。 这可能是由于连接字符串中的语法错误,或者是因为使用了错误的类名。
如果数据库服务器未运行或不可访问,则JMeter将报告java.net.ConnectException。
下面给出了一些数据库及其参数的示例。
MySQL
Driver class :com.mysql.jdbc.Driver
Database URL:jdbc:mysql://host[:port]/dbname
Oracle
Driver class: oracle.jdbc.OracleDriver
Database URL: jdbc:oracle:thin:@//host:port/service OR jdbc:oracle:thin:@(description=(address=(host={mc-name})(protocol=tcp)(port={port-no}))(connect_data=(sid={sid})))
以上内容可能不正确-请查看相关的JDBC驱动程序文档。
参考:https://jmeter.apache.org/usermanual/component_reference.html#JDBC_Connection_Configuration
连接过程中的异常:
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.8.0_131]
at java.lang.Integer.parseInt(Integer.java:592) ~[?:1.8.0_131]
at java.lang.Integer.parseInt(Integer.java:615) ~[?:1.8.0_131]
at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.initPool(DataSourceElement.java:230) ~[ApacheJMeter_jdbc.jar:5.3]
at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.testStarted(DataSourceElement.java:127) ~[ApacheJMeter_jdbc.jar:5.3]
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:205) ~[ApacheJMeter_core.jar:5.3]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:380) ~[ApacheJMeter_core.jar:5.3]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
异常原因就是缺少必填参数,所以会报错,按照上述表格中添加必须的参数,错误即可消除。

浙公网安备 33010602011771号