在项目测试过程中,我经常需要将数据库中的数据作为参数传递到请求中。Jmeter中MYSQL数据库连接操作过程如下:

jmeter链接redis向数据库写入数据 jmeter读取数据库_单元测试

1、下载/n导入mysql的jdbc驱动包

导入mysql的jdbc驱包
将下载的mysql-connector-java-8.0.17.jar包直接复制到jmeter的lib目录下,重启jmeter。

jmeter链接redis向数据库写入数据 jmeter读取数据库_数据库_02

2、添加MYSQL数据库连接配置(JDBC Connection Configuration)

右击“线程组”,选择“添加”\“配置元件”\“JDBC Connection Configuration”

jmeter链接redis向数据库写入数据 jmeter读取数据库_单元测试_03

设置“JDBC Connection Configuration”

jmeter链接redis向数据库写入数据 jmeter读取数据库_单元测试_04

字段解释:
Variable Name for created pool:数据库连接池的变量名,后续请求中需要用到
DataBase URL:格式jdbc:mysql://数据地址:端口/数据库名(例如:jdbc:mysql://127.0.0.1:3307/sys?serverTimezone=UTC)
JDBC Driver Class:数据库驱动类型(mysql为com.mysql.jdbc.Driver)
Username:数据库登录的用户名
Password:数据库登录的用户名对应的密码

3、创建数据库操作请求

右击“线程组”,选择“添加”\“取样器”\“JDBC Request”

jmeter链接redis向数据库写入数据 jmeter读取数据库_软件测试_05

填写JDBC请求数据

jmeter链接redis向数据库写入数据 jmeter读取数据库_软件测试_06

Variable Name of Pool declared in JDBC Connection Configuration:填入在“JDBC Connection Configuration”中设置的“Variable Name for created pool”名称;
Query:输入SQL查询语句;
Variable names:将查询结果设置为变量名,供后续请求调用;

4、数据添加到HTTP请求中

由于查询出的数据库量非常,我们需要将数据每次传递一个值,以次递增。添加调试取样器,执行脚本,获取记录总数。

jmeter链接redis向数据库写入数据 jmeter读取数据库_数据库_07

添加计数器,右击“线程组”,选择“添加”\“配置元件”\“计数器”;

jmeter链接redis向数据库写入数据 jmeter读取数据库_软件测试_08

设置如下:

jmeter链接redis向数据库写入数据 jmeter读取数据库_软件测试_09

Starting value:1每次执行从第1个开始;

递增:迭代使用中自动增1

Maximum valud:${p_#}(数据查询的记录数,可以通过上面调试取样器获取)

引用名称:设置为变量名

添加HTTP请求,获取数据库的数据进行参数化。由于变量名称本身就是一个变量这个时候就需要使用V函数进行变量名称拼接。

jmeter链接redis向数据库写入数据 jmeter读取数据库_mysql_10

u_${index}:u:数据库返回数据中的变量名,index是计数器中的变量名称。将生成的变量名添加到参数值中。

jmeter链接redis向数据库写入数据 jmeter读取数据库_软件测试_11

添加结果树,启动,通过结果查看请求参数。数据库数据传递成功。

jmeter链接redis向数据库写入数据 jmeter读取数据库_单元测试_12