Jmeter入门(7)- 连接数据库

配置/使用,以MySQL为例

一、导入数据库(MySQL)的jar包

1. 连接数据库,需要引入外部的jar包

1.1. 下载地址:https://dev.mysql.com/downloads/

1.2. 选择:Connector/J,进入页面
Jmeter入门(7)- 连接数据库

1.3. 点击下载压缩包
Jmeter入门(7)- 连接数据库

1.4. 不登录,直接选择 No thanks, just start my download.
Jmeter入门(7)- 连接数据库

2. 解压,将jar包放到jmeter的lib目录下

3. 重启jmeter

二、连接数据库配置(JDBC Connection Configuration)

位置:线程组右键 ==> 添加 ==> 配置元件 ==> JDBC Connection Configuration

Jmeter入门(7)- 连接数据库

配置说明

  1. Variable Name for create pool:数据库的名称

  2. Database Connection Configuration连接数据库相关参数配置说明,如下:

    Jmeter入门(7)- 连接数据库

    • Database URL:数据库连接地址
      格式:jdbc:<数据库类型>://<数据库链接地址>:<数据库端口号>/<数据库名>
      例:jdbc:mysql://127.0.0.1:3306/testdb

    • JDBC Driver class:JDBC Driver需要在 测试计划 中进行导入
      使用的是什么数据库就选择什么驱动进行链接,例:com.mysql.jdbc.Driver
      在测试计划页面,选择解压好的lib目录下的jar包
      Jmeter入门(7)- 连接数据库
      Jmeter入门(7)- 连接数据库

    • Username:连接数据库的用户名

    • Password:连接数据库用户的密码

三、发送数据库请求(JDBC Request)

可以将JDBC请求(SQL查询)发送到数据库

位置:线程组右键 ==> 添加 ==> 取样器 ==> JDBC Request

配置项的含义及解释

配置项 说明
Variable Name of Pool declared in JDBC Connection Configguration 与JDBC Connection Configuration中的Variable Name for create pool保持一致
Query Type 查询类型
Query sql语句
注:sql语句后面不需要加
变量用?占位
例:select * from users where user_name =‘xxx‘
Parameter values 需要传递的变量值
多个变量用隔开
Parameter types 变量类型
例:字段数据类型,varchar
Variable Names 保存sql语句返回的数据和返回数据总行数
隔开
跳过列为空
Result Variable Name 创建一个对象变量,保存所有返回的数据
query timeout(s) 超时时间
默认为0,代表无限时间
Limit ResultSet 和 limit 类似作用,限制 sql 语句返回结果集的行数
Handle ResultSet 定义如何处理callable statements语句返回的结果
默认是存储为字符串

添加Debug Sampler

添加Debug Sampler,可以查看变量的数据,方便调试

位置:线程组右键 ==> 添加 ==> 取样器 ==> Debug Sampler

运行测试的例子

1. 只有sql语句的情况

Jmeter入门(7)- 连接数据库

运行结果

Jmeter入门(7)- 连接数据库

2. 将sql语句进行参数化

Jmeter入门(7)- 连接数据库

运行结果和上面相同

注意

  • sql语句中的变量使用?占位,可以避免SQL注入的问题
  • sql使用占位符时,Query Type必须选择 Prepared Select Statement 或者 Prepared Update Statement
  • Parameter valueParameter type 填写值的数量要保持一致,用,分隔

3. 变量和参数化结合

Jmeter入门(7)- 连接数据库

用户定义变量

Jmeter入门(7)- 连接数据库

运行结果

Jmeter入门(7)- 连接数据库

注意:sql语句中使用变量时,如果是字符串需要加上引号

4. Variable Names的使用
可以将sql语句查询出的数据进行提取

Jmeter入门(7)- 连接数据库

运行结果

Jmeter入门(7)- 连接数据库

调试取样器-查看提取的数据

Jmeter入门(7)- 连接数据库

解释

  • a_#、b_#、d_#表示的是获取的数据的总条数
  • a_1:第一列第一行的数据
  • a_2:第一列第二行的数据
  • b_1:第二列第一行的数据
  • b_2:第二列第二行的数据

注意

  • Variable Names跳过列为空,例:a,b,,d
  • 如果返回结果为0,那么a_#、b_#、d_#会被设置为0,其它变量不会设置值
  • 可以通过${变量名_#}来获取总条数
  • 可以通过${变量名_n}来获取变量名所在的列的第n行的值,例:${a_1}获取第一行第一列的值

5.Result variable name的使用

设置一个变量名,将返回的结果赋值给这个变量

Jmeter入门(7)- 连接数据库

调试取样器-以一个对象的形式返回所有数据

Jmeter入门(7)- 连接数据库

官网参考文档:https://jmeter.apache.org/usermanual/build-db-test-plan.html#building

Jmeter入门(7)- 连接数据库

上一篇:sql查询语句


下一篇:每周总结【2020/10/24】————Redis与Mongodb初学