zoukankan      html  css  js  c++  java
  • Jmeter系列(24)- 详解 JDBC Request

    转自:https://www.cnblogs.com/poloyy/

    一、前言

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

    二、JDBC Request

    img

    三、JDBC Request 界面介绍

    img

    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

    img

    4.2 运行结果

    img

    五、参数化的例子

    5.1 JDBC Request

    img

    5.2 运行结果

    img

    5.3 知识点

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

    六、参数化+变量的例子

    6.1 JDBC Request

    img

    6.2 运行结果

    img

    6.3 知识点

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

    七、使用 Variable Names 的例子

    7.1 结构树

    img

    7.2 JDBC Request

    img

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

    7.3 JDBC Request 运行结果

    img

    7.4 调试取样器运行结果

    img

    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

    img

    8.2 Debug Sampler 运行结果

    img

    8.3 知识点

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

    8.4 重点

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

    九、使用 Limit ResultSet 的例子

    9.1 JDBC Request

    img

    9.2 运行结果

    img

    9.3 知识点

    • Limit ResultSet 是对 sql 语句返回的结果集限制行数
    • limit 10 限制只返回了 10 条数据,然后 Limit ResultSet = 6 限制结果集最终只返回 6 条数据
  • 相关阅读:
    在基础数据类型和在对象中 使用 == 与equals的差别
    对Java中静态代理和动态代理的简单理解
    MyBatis中sqlSession的创建及执行流程
    Spring相关概念
    AOP相关
    IOC容器和Bean的配置
    如何将本地项目上传到GitHub进行托管
    稀疏数组
    Java集合回忆
    JSTL标签库
  • 原文地址:https://www.cnblogs.com/dongye95/p/14178453.html
Copyright © 2011-2022 走看看