前言
连接数据库进行测试在工作中会比较常用,首先可以读取数据库的数据进行参数化、关联等,批量添加测试数据以及清理数据,还可以直接对SQL语句进行压测。
一、基本介绍
1. 首先第一步要导入mysql驱动包,放到jmeter/lib目录下,
然后重启jmeter。
2. 在测试计划 点击“浏览”,然后选择刚才的mysql驱动包
3. 在配置文件中添加JDBC Connection Configuration
4. 线程组 - HTTP取样器 - JDBC Request
JDBC 请求采样器允许你将JDBC请求(SQL语句)发送到数据库。在使用之前,你需要设置JDBC Connection Configuration
5. JDBC Connection Configuration
JDBC连接配置 设置创建数据库连接(供JDBC Request Sampler使用)
(1)Variable Name for created pool:数据库连接池的变量名,需要唯一标识。与JDBC取样器中的相对应,决定JDBC取样器的配置。
原理:JDBC Request可以选择不同的连接池名来选择不同的数据库连接。Variable Name变量名称与JDBC Request中的Variable Name要保持一致,JDBC Connection Configuration中先配置好连接数据库,然后赋予该连接一个变量名 。JDBC Request需要连接哪个数据库,就填写该数据库的变量名即可。
(2)Max Number of Connections:数据库连接池最大连接数,一般设置为0,意思是每个线程都单独使用一个数据库连接。
(3)Max Wait (ms):在连接池中取回连接最大的等待时间,在查询过程中,超过设置的值,连接池会抛出异常。
(4)Time Between Eviction Runs (ms):疏散时间,数据库空闲清理的间隔时间。
(5)Auto Commit:自动提交。
(6)Transaction isolation:事务间隔级别设置。
6. JDBC Request
该采样器使您可以将JDBC请求(SQL查询)发送到数据库。
使用此功能之前,您需要设置 JDBC连接配置配置元素。
(1)Variable Name of Pool declared in JDBC Connection Configuration:连接池绑定到的JMeter变量的名称。这必须与JDBC连接配置的“变量名”字段一致。
(2)Query Type:
1.Select Statement:需要填写的sql是完整可执行的sql语句。
2.Update Statement:对于insert、update、delete语句,需要设置此选项,数据修改语句中可以使用参数,而且可以顺序执行多个修改语句。
3.Callable Statement:多个语句查询。
(3)Parameter valus:参数值
(4)Parameter types:参数类型
(5)Variable names:保存sql语句返回结果的变量名
(6)Result variable name:创建一个对象变量,保存所有返回的结果
(7)Query timeout:查询超时时间
(8)Handle result set:定义如何处理由callable statements语句返回的结果
二、实操
1. 填写好数据库连接池的变量名,名称自己定义
2. 设置连接
Database URL: jdbc:mysql:// 数据库地址 /数据库名
JDBC Driver class:com.mysql.jdbc.Driver
Username:账号
Password:密码
3. 加一个调试取样器,然后,看结果
三、不同数据库的连接配置
不同的数据库连接配置不一样,常用的数据 mysql、sqlserver、oracel
Database
Driver class
Database URL
MySQL
com.mysql.jdbc.Driver
jdbc:mysql://host:port/{dbname}
Oracle
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:user/pass@//host:port/service
MSSQL
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://IP:1433;databaseName=DBname
DatabaseDriver class Database URL
MySQL com.mysql.jdbc.Driver jdbc:mysql://host:port/{dbname}
PostgreSQLorg.postgresql.Driver jdbc:postgresql:{dbname}
Oracle oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:user/pass@//host:port/service
MSSQL com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://IP:1433;databaseName=DBname