jmeter连接mysql数据库

总体步骤如下:

  1. 下载mysql的jar包放入到jmeter的lib下,然后重启jmeter
  2. 配置JDBC Connection Configuration
  3. 配置JDBC Request
  4. 在请求中引用查询到的结果变量,可以结合计数器取每一个结果值:性能测试|JMeter连接数据库_mysql{index})}

具体实施步骤

  1. 下载Mysql jdbc驱动包

尽量保证其版本和你的数据库版本一致,至少不低于数据库版本,否则可能有问题。

mysql官网下载地址:​​https://dev.mysql.com/downloads/connector/j/​

JDBC驱动在mysql的官网下载:​​https://dev.mysql.com/downloads/file/?id=477058,不需要注册,直接点击左下角的小字​

性能测试|JMeter连接数据库_数据库_02

  1. 在测试计划下面把JDBC驱动包导入,如下图

性能测试|JMeter连接数据库_mysql_03

  1. 线程组下添加一个配置元件JDBC Connection Configuration

性能测试|JMeter连接数据库_mysql_04

  • Variable Name:自定义参数,在JDBC Request中会用到
  • Database URL:jdbc:mysql:// 数据库IP地址:数据库端口/数据库名称;jdbc:mysql://localhost:3306/mysql?serverTimezone=UTC&characterEncoding=utf-8,注意:?后面的serverTimezone=UTC&characterEncoding=utf-8不能缺少,否则会报时区错误。
  • JDBC Driver Class:com.mysql.jdbc.Driver
  • Username:数据库用户名
  • Password:数据库密码
  1. 在添加一个Sampler:JDBC Request

性能测试|JMeter连接数据库_数据库_05

4.1 由于只需要在数据库中取一次数据,即 jdbc取样器只需要执行一次,可以使用仅一次控制器;如下图:

配置路径:逻辑控制器——仅一次控制器

性能测试|JMeter连接数据库_bc_06

  1. 运行之后,数据库会返回某一列下的数据

性能测试|JMeter连接数据库_bc_07

  1. 在http请求中引用tname变量名,如果有一列数据返回,引用变量的时候可以输入${tname_1},发送请求的参数值就是 周启元

性能测试|JMeter连接数据库_数据库_08

variables names 参数使用方法:

Jmeter官网的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。假如,sql语句返回2行,3列,且variables names设置为A,C,那么如下变量会被设置为:

A_#=2(总行数)

A_1=第1列,第一行;如上面的变量${tname_1};

A_2=第1列,第2行

C_#=2(总行数)

C_1=第3列,第1行

C_2=第3列,第2行

如果返回结果为0,那么A_#和C_#会被设置为0,其他变量不会设置值。

如果第一次返回6行数据,第二次只返回3行数据,那么第一次的6行数据变量会被清除

可以使用性能测试|JMeter连接数据库_mysql_09{A_1}...来获取相应的值

  1. 如果想循环数据库返回的值,可以使用计数器,加引用的变量性能测试|JMeter连接数据库_mysql{index})};如下图

根据上方数据库返回的tname列下有9行数据,在计数器中最大值填入9,在输入一个变量名index;

性能测试|JMeter连接数据库_bc_11

在http请求中引用数据量返回的变量+计数器的变量:性能测试|JMeter连接数据库_mysql{index})};

性能测试|JMeter连接数据库_mysql_13

  1. 运行结果

性能测试|JMeter连接数据库_bc_14