Jmeter系列(30)- 详解 JDBC Request

简介: 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


image.png


JDBC Request 界面介绍


image.png


字段含义

字段 含义

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

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

 

举栗子的前提


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

image.png

只有 sql 语句的栗子


image.png

参数化的栗子


JDBC Request

image.png

image.png


知识点

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

 

参数化+变量的栗子


JDBC Request

image.png

识点

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

 

使用 Variable Names 的栗子


结构树

image.png

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

 

JDBC Request 运行结果

image.png

image.png

知识点

  • 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

image.png

知识点

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

 

重点

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

 

使用 Limit ResultSet 的栗子


JDBC Request

image.png


image.png

知识点

  • Limit ResultSet 是对 sql 语句返回的结果集限制行数
  • limit 10 限制只返回了 10 条数据,然后 Limit ResultSet =6 限制结果集最终只返回 6 条数据

 


相关文章
|
2月前
|
SQL Java 关系型数据库
性能工具之JMeter JDBC Request 基础
JDBC 本质其实是官方(sun 公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动 jar 包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动 jar 包中的实现类。
122 0
性能工具之JMeter JDBC Request 基础
|
SQL Java 关系型数据库
Jmeter 之JDBC连接
Jmeter 之JDBC连接
76 0
|
Java 数据库连接 数据库
Jmeter系列(31)- 获取并使用 JDBC Request 返回的数据
Jmeter系列(31)- 获取并使用 JDBC Request 返回的数据
417 0
Jmeter系列(31)- 获取并使用 JDBC Request 返回的数据
|
Java 关系型数据库 MySQL
|
前端开发 算法 JavaScript
JMeter的Java Request实现
JMeter的Java Request实现
142 0
JMeter的Java Request实现
|
网络协议 IDE Java
JMeter中java request测试环境配置
JMeter中java request测试环境配置
156 0
JMeter中java request测试环境配置
|
SQL Oracle Java
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
181 0
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
|
2月前
|
Java 关系型数据库 数据库连接
实时计算 Flink版操作报错之在使用JDBC连接MySQL数据库时遇到报错,识别不到jdbc了,怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
Java 关系型数据库 MySQL
JDBC实现往MySQL插入百万级数据
JDBC实现往MySQL插入百万级数据
|
2月前
|
SQL 关系型数据库 MySQL
Spring_jdbc数据连接池(mysql实现增、删、改、查)
Spring_jdbc数据连接池(mysql实现增、删、改、查)
30 0