转载

Jmeter系列(30)- 详解 JDBC Request

如果你想从头学习Jmeter,可以看看这个系列的文章哦

https://www.cnblogs.com/poloyy/category/1746599.html

前言

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

JDBC Request

Jmeter系列(30)- 详解 JDBC Request

JDBC Request 界面介绍

Jmeter系列(30)- 详解 JDBC Request

字段含义

字段 含义

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 返回的结果集;默认是存储为字符串

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

举栗子的前提

需要自己找一个有数据库的数据来练手哦!这里拿的表数据如下哈

Jmeter系列(30)- 详解 JDBC Request

只有 sql 语句的栗子

JDBC Request

Jmeter系列(30)- 详解 JDBC Request

没啥特别的,平时 sql 怎么写,这里就怎么写

运行结果

Jmeter系列(30)- 详解 JDBC Request

参数化的栗子

JDBC Request

Jmeter系列(30)- 详解 JDBC Request

运行结果

Jmeter系列(30)- 详解 JDBC Request

知识点

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

参数化+变量的栗子

JDBC Request

Jmeter系列(30)- 详解 JDBC Request

运行结果

Jmeter系列(30)- 详解 JDBC Request

知识点

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

使用 Variable Names 的栗子

结构树

Jmeter系列(30)- 详解 JDBC Request

JDBC Request

Jmeter系列(30)- 详解 JDBC Request

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

JDBC Request 运行结果

Jmeter系列(30)- 详解 JDBC Request

调试取样器运行结果

Jmeter系列(30)- 详解 JDBC Request

知识点

  • 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 的栗子

JDBC Request

Jmeter系列(30)- 详解 JDBC Request

Debug Sampler  运行结果

Jmeter系列(30)- 详解 JDBC Request

知识点

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

重点

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

使用 Limit ResultSet 的栗子

JDBC Request

Jmeter系列(30)- 详解 JDBC Request

运行结果

Jmeter系列(30)- 详解 JDBC Request

知识点

  • Limit ResultSet 是对 sql 语句返回的结果集限制行数
  •   limit 10  限制只返回了 10 条数据,然后  Limit ResultSet = 6  限制结果集最终只返回 6 条数据
原文  http://www.cnblogs.com/poloyy/p/13184602.html
正文到此结束
Loading...