Jmeter系列(24)- 详解 JDBC Request

一、前言

  • JDBC Request 主要是向数据库发送一个 JDBC 请求(sql 语句),并获取返回的数据集
  • 它需要和数据库连接池配置(JDBC Connection Configuration)一起使用,可参考此篇博文:https://www.cnblogs.com/poloyy/p/13182706.html

二、JDBC Request

Jmeter系列(24)- 详解 JDBC Request

三、JDBC Request 界面介绍

Jmeter系列(24)- 详解 JDBC Request

3.1 字段含义

字段 含义
Variable Name Bound to Pool 数据库连接池配置的名称
Query Type sql 语句的类型
SQL Query sql 语句
语句结尾不需要添加 ;
变量用 ? 占位
Parameter values 需要传递的变量值,多个变量用 , 分隔
Parameter types 变量类型
Variable Names 保存sql语句返回的数据和返回数据的总行数用 , 分隔跳过列用空
Result Variable Name 一个 Object 变量存储所有返回值
Query timeout(s) 超时时间;默认0,代表无限时间
Limit ResultSet 和 limit 类似作用,限制 sql 语句返回结果集的行数
Handle ResultSet 如何定义 callable statements 返回的结果集;默认是存储为字符串

​ 后续通过各种栗子来深入理解常用字段的含义

四、只有 sql 语句的例子

4.1 JDBC Request

Jmeter系列(24)- 详解 JDBC Request

4.2 运行结果

Jmeter系列(24)- 详解 JDBC Request

五、参数化的例子

5.1 JDBC Request

Jmeter系列(24)- 详解 JDBC Request

5.2 运行结果

Jmeter系列(24)- 详解 JDBC Request

5.3 知识点

  • 有几个问号,Parameter value、Parameter type 填写 值的数量要保持一致,用,分隔
  • 问号其实是 占位符,如果学过编程的童鞋应该也知道这种写法,可以 避免 SQL 注入的问题
  • sql 中 使用占位符 时,Query Type 必须选择 Prepared Select Statement 或者 Prepared Update Statement
  • 我们可以用 Jmeter 变量去赋值,看下面栗子

六、参数化+变量的例子

6.1 JDBC Request

Jmeter系列(24)- 详解 JDBC Request

6.2 运行结果

Jmeter系列(24)- 详解 JDBC Request

6.3 知识点

  • 如果在 sql 语句中使用变量,且是字符串类型,需要加上引号(前提是变量值没有加引号),如 '${name}'
  • 如果在 Parameter values 中使用变量,且是字符串类型,不需要加上引号,只需要在 Parameter types 里写明为 varchar 即可

七、使用 Variable Names 的例子

7.1 结构树

Jmeter系列(24)- 详解 JDBC Request

7.2 JDBC Request

Jmeter系列(24)- 详解 JDBC Request

添加一个 Debug Sampler 就知道这个字段有什么作用了

7.3 JDBC Request 运行结果

Jmeter系列(24)- 详解 JDBC Request

7.4 调试取样器运行结果

Jmeter系列(24)- 详解 JDBC Request

7.5 知识点

  • mysql:数据库连接池对象
  • a_#、b_#、c_#、d_#:代表行数
  • a_1:第 1 行、第 1 列
  • b_2:第 2 行、第 2 列
  • c_3:第 3 行、第 3 列
  • d_3:第 3 行、第 4 列
  • 以此类推....
  • 一般如果 HTTP 请求需要用到 sql 查出来的数据的话,就会用到 Variable names 这个字段

八、使用 Result variable name 的例子

8.1 JDBC Request

Jmeter系列(24)- 详解 JDBC Request

8.2 Debug Sampler 运行结果

Jmeter系列(24)- 详解 JDBC Request

8.3 知识点

​ 该变量是个数组,每一个元素代表一条记录

8.4 重点

​ 关于通过 Variable names、Result variable name 获取到的值 如何提取,我们将在下一篇文章中详细讲解

九、使用 Limit ResultSet 的例子

9.1 JDBC Request

Jmeter系列(24)- 详解 JDBC Request

9.2 运行结果

Jmeter系列(24)- 详解 JDBC Request

9.3 知识点

  • Limit ResultSet 是对 sql 语句返回的结果集限制行数
  • limit 10 限制只返回了 10 条数据,然后 Limit ResultSet = 6 限制结果集最终只返回 6 条数据
上一篇:Jenkins 编译的时候提示错误 JAVA_HOME environment


下一篇:jmeter监听器(JDBC Request)