常见数据库的连接 URL和驱动
数据库 |
驱动 |
URL |
MySQL |
com.mysql.jdbc.Driver |
jdbc:mysql://host:port/{dbname} |
PostgreSQL |
org.postgresql.Driver |
jdbc:postgresql:{dbname} |
Oracle |
oracle.jdbc.driver.OracleDriver |
jdbc:oracle:thin:user/pass@//host:port/service |
sqlServer |
com.microsoft.sqlserver.jdbc.SQLServerDriver |
jdbc:sqlserver://host:port;databaseName=databaseName |
一、配置
1. 下载安装驱动包,将mysql-connector-java.jar
方式一:
将jar包放置在jmete安装路径的lib目录下,重启jmeter。
方式二:
在测试计划底部添加jar包即可。
二、JDBC connection configuration 参数配置
1. 添加配置元件
启动jmeter》线程组》配置元件》JDBC connection configuration
2. jdbc参数
1)Variable Name Bound to Pool 连接池变量名
- Variable Name: 变量名称,需要变量名绑定到池。需要唯一标识。与JDBC取样器中的相对应,决定JDBC取样的配置。简单理解就是在JDBC request的时候确定去哪个绑定的配置。
2)Connection Pool Configuration JDBC连接池配置,一般使用默认值就可以
- Max Number of Connection: 数据库最大链接数。
做性能测试时,建议填 0,意思是每个线程都使用单独的数据库连接,线程之间数据库连接不共享。
如果您真的想要使用共享池,那么将max count与线程数相同,以确保线程不会相互等待。
-
Max Wait (ms) : 在连接池中取回连接最大等待时间。
中文:如果在试图检索连接过程中(取回连接)超过所设置期限,连接池抛出一个错误
- Time Between Eviction Runs (ms) : 线程可空闲时间,单位毫秒,默认6000(6秒)。
如果当前连接池中某个连接在空闲了 time Between Eviction Runs Millis 时间后任然没有使用,则被物理性的关闭掉
- Auto Commit:自动提交sql语句,如:修改数据库时,自动 commit。有三个选项,true、false、编辑(自己通过jmeter提供的函数设置)。
- Transaction Isolation: 事务间隔级别设置,主要有如下几个选项:(对JMX加解密)
1. TRANSACTION_NODE 事务节点 、
2. TRANSACTION_READ_UNCOMMITTED 事务未提交读、
3. TRANSACTION_READ_COMMITTED 事务已提交读 、
4. TRANSACTION_SERIALIZABLE 事务序列化 、
5. DEFAULT 默认、
6. TRANSACTION_REPEATABLE_READ 事务重复读、
7. 编辑
-
Preinit Pool:立即初始化连接池。默认false。
- 如果为 False,则第一个 JDBC 请求的响应时间会较长,因为包含了连接池建立的时间。
- 有三个选项,true、false、编辑(自己通过jmeter提供的函数设置)。
3)Connection Validation by Pool 连接池是否有效 判断,一般使用默认就可以
-
Test While Idle :当空闲的时候测试连接是否断开
-
Soft Min Evictable Idle Time(ms) :默认值为5000(5秒)
中文:最少的时间连接可能在池中闲置,然后才有资格被闲置的对象驱逐出去,额外的条 件是至少在池中保持连接。
-
Validation Query:简单的查询,用于确定数据库是否仍在响应。默认为jdbc驱动程序的 isValid() 方法,适用于许多数据库。
4))Database Connection Configuration 数据库配置
-
Database URL:jdbc:mysql://服务器地址:3306/数据库名
比如: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
备注:
allowMultiQueries=true:是为了在JDBC中执行多条select语句的时候用的!
serverTimezone=UTC:设置时区(有时不设置时区会报错)
characterEncoding=utf8:设置字符编码
autoReconnect=true:设置自动重连
useUnicode=true:使用Unicode编码
-
JDBC Driver class:数据库JDBC驱动类名:com.mysql.jdbc.Driver
-
Username:数据库连接用户名
-
password:数据库连接密码
-
Connection Properties: 建立连接时要设置的连接属性
三、JDBC Request 参数配置
线程组》添加》取样器
-
Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
-
Query Type:设置sql语句类型。
-Select Statement:1条查询sql
- Update Statement :1条sql (插入和删除)
- Callable Statement:多条查询sql
- Prepared SelectStatement:多条查询sal
- Prepared Update Statement-:多条sql(插入和删除)
- Commit:
- RollbackAutocommit(false):
- Autocommit(true):
- Edit: 这应该是一个变量引用,它的值应该等于上面的值之一。
-
Query:填写的sql语句
-
Parameter valus:参数值(sql语句参数化的时候使用)
-
Parameter types:参数类型,可参考:Javadoc for java.sql.Types(字段类型,与参数值一一对应)
-
Variable names:保存sql语句返回结果的变量名
-
Result variable name:创建一个对象变量,保存所有返回的结果
-
Query timeout:查询超时时间
-
Handle result set:定义如何处理由callable statements语句返回的结果