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

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Jmeter系列(30)- 详解 JDBC Request

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址