在项目测试过程中,我经常需要将数据库中的数据作为参数传递到请求中。Jmeter中MYSQL数据库连接操作过程如下:
 
1、下载/n导入mysql的jdbc驱动包
导入mysql的jdbc驱包
将下载的mysql-connector-java-8.0.17.jar包直接复制到jmeter的lib目录下,重启jmeter。
 
2、添加MYSQL数据库连接配置(JDBC Connection Configuration)
 
右击“线程组”,选择“添加”\“配置元件”\“JDBC Connection Configuration”

 

设置“JDBC Connection Configuration”

 

字段解释:
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”

 

填写JDBC请求数据
Variable Name of Pool declared in JDBC Connection Configuration:填入在“JDBC Connection Configuration”中设置的“Variable Name for created pool”名称;
Query:输入SQL查询语句;
Variable names:将查询结果设置为变量名,供后续请求调用;
 
4、数据添加到HTTP请求中
由于查询出的数据库量非常,我们需要将数据每次传递一个值,以次递增。添加调试取样器,执行脚本,获取记录总数。
添加计数器,右击“线程组”,选择“添加”\“配置元件”\“计数器”;
设置如下:
Starting value:1每次执行从第1个开始;
递增:迭代使用中自动增1
Maximum valud:${p_#}(数据查询的记录数,可以通过上面调试取样器获取)
 
引用名称:设置为变量名
添加HTTP请求,获取数据库的数据进行参数化。由于变量名称本身就是一个变量这个时候就需要使用V函数进行变量名称拼接。
 
u_${index}:u:数据库返回数据中的变量名,index是计数器中的变量名称。将生成的变量名添加到参数值中。
 
添加结果树,启动,通过结果查看请求参数。数据库数据传递成功。