【JMeter】jmeter 操作 mysql 数据库

本文内容基于如下测试环境:
JMeter 4.0 版本
Win 7 系统
mysql-connector-java-5.1.7-bin.jar
不同环境下可能会有不一致的地方。

JMeter 通过 JDBC Connection ConfigurationJDBC Request 可以连接数据库,并进行增删改查操作,支持各种常见的数据库,本文以最常用的 MySQL 数据库为例讲解,其它数据库的使用方法类似。

一、下载驱动包

在使用之前,需要先下载与数据库对应的驱动包。

这里以 mysql 为例讲解,我使用的驱动包是 mysql-connector-java-5.1.7-bin.jar,下载后放到 jmeter 的 lib 目录下,重启 jmeter 生效。

二、JDBC连接配置

在发送 JDBC 请求之前,需要通过 JDBC Connection Configuration 元件配置连接数据库的信息。

【JMeter】jmeter 操作 mysql 数据库

如上图所示,需要注意的是如下两点:

  • Variable Name for created pool:连接池的变量名,一定要跟 JDBC Request 中的连接池变量名一致;

  • Database Connection Configuration:其中 url 格式为 jdbc:mysql://ip:port/dbname,一个请求只能执行一条 sql 语句,若要执行多条 sql 语句,url 要写成 jdbc:mysql://ip:port/dbname?allowMultiQueries=true

JDBC Driver class 选择与数据库对应的驱动,下面是登录数据库的用户名密码,其它项都按默认值即可。

不同数据库的配置如下所示:

Datebase Driver class Database 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/[email protected]//host:port/service
MSSQL com.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://IP:1433;databaseName=Dbname

三、JDBC Request

在这里写 sql 语句,实现增删改查,如下图所示:

【JMeter】jmeter 操作 mysql 数据库

  • 注意上图中的变量名称要跟 JDBC Connection Configuration 中的变量名称一样。
  • Query Type:不同语句对应不同的 Query Type

1、单条查询语句

一个请求中执行一条查询语句

  • Database URL:jdbc:mysql://192.168.72.128:3306/dang
  • Query Type:Select Statement

2、多条查询语句

一个请求中执行多条查询语句

  • Database URL:jdbc:mysql://192.168.72.128:3306/dang?allowMultiQueries=true
  • Query Type:Callable Statement

3、增删改语句

insert 、delete 语句使用的 Query Type 与 update 语句的一样,所以此处不再单独列出。

  • 单条 sql 的 Query Type:Update Statement
  • 多条 sql 的 Query Type:Callable Statement

4、参数化 sql 语句

select author from d_book where id=${id};

update d_book set author = '${author}' where id=${id};

5、占位符语句

【JMeter】jmeter 操作 mysql 数据库

  • select * from d_book where id = ? and author = ?; 用 ? 代替 where 条件值;
  • Parameter values :填写 ? 代表的值,多个值用逗号分隔;
  • Parameter types :参数值的类型,不管什么类型都写成 varchar,几个参数就写几个,多个值用逗号分隔;
  • Query TypePrepared Update StatementCallable Statement