jmeter-jdbc配置和jdbc取样器详解

发布时间 2023-03-28 23:57:34作者: 无敌大牛牛

JDBC配置详解

前言

jmeter调用jdbc协议接口之前,需要引入 jdbc驱动

maven仓库

如mysql:

maven仓库中选择的驱动,要大于等于数据库的版本

下载对应的jar包放到lib目录下的ext

配置元件-JDBC Connection Configuration

连接池名称

  • 自定义连接池的名称: 建议为英文

Database Connection Configuration

数据库的连接配置

  • Database URL

    • jdbc连接串

    • 如mysql为 jdbc://mysql://ip:port:database

      • 可选项?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC

  • JDBC Driver Class

    数据库 DatabaseURL Driverclass
    MySQL jdbc:mysql://host[:port]/dbname com.mysql.jdbc.Driver
    PostgreSQL jdbc:postgresql:{dbname} org.postgresql.Driver
    Oracle jdbc:oracle:thin:@//host:port/service OR jdbc:oracle:thin:@(description=(address=(host={mc-name})(protocol=tcp)(port={port-no}))(connect_data=(sid={sid}))) oracle.jdbc.OracleDriver
    Ingress (2006) jdbc:ingres://host:port/db[;attr=value] ingres.jdbc.IngresDriver
    Microsoft SQL Server (MS JDBC driver) jdbc:sqlserver://host:port;DatabaseName=dbname com.microsoft.sqlserver.jdbc.SQLServerDriver
    Apache Derby jdbc:derby://server[:port]/databaseName[;URLAttributes=value[;…]]  
  • 输入对应的数据库用户名、密码

jdbc取样器

JDBC Request

  • pool:要与JDBC配置中的pool名称保持一致

SQL Query

  • query type

    • select statement: 执行的sql为select类型

      • jmeter默认不支持在一个取样器中,写多个sql

    • update statement

      • update 的sql

    • insert sql

      • insert sql

    • delete sql

      • delete的sql

    • callabel statement

      • 调用存储过程

    • prepared select statement

      • 当select语句中带有变量,也可以用$引用

        • select * from test_table where name = '${name}'

      • 当有多个变量时,用英文逗号分隔

      • 有几个变量就对应几个占位符,位置要一一对应

      • 不管变量对应什么类型,建议一律写varchar

    • prepared update statement

      • update语句中带有变量

    • 注意:

      • 在sql中带有变量的时候,通常使用?占位符

      • 使用? 占位,那么此时 Query type 就必须是 prepared的那两个

    • commit:提交

    • Rollback:回滚

    类型 解析
    Select statement 查询语句,只能执行一条
    update statement 更新语句,只能执行一条
    callable statement 调用存储过程
    prepared select statement 带参数的查询语句
    prepared update statement 带参数的更新语句
    commit 提交
    rollback 回滚
    autocommit(false) 自动提交
    autocommit(true)  
    编辑${} 把sql当脚本放csv文件中

variable

定义变量接收一列中的多个值,多个值,会在变量名称后面自动添加 下划线和数字

  • Parameter values

    • 需要传递的变量值,多个变量用(实际值) , 分隔

      • 如select * from test_table where id = ?

        • 这里就直接填id对应的值,也可以使用${}去引用变量

    • Parameter types

      • 变量的类型,建议使用varchar

    • Variable Names

      • 定义变量接收一列中的多个值,多个值,会在变量名称后面自动添加 下划线和数字

      • 参考文档

    • Result Variable Name

      • 一个 Object 变量存储sql执行的返回值

      • 如果在 sql 语句中使用变量,且是字符串类型,需要加上引号(前提是变量值没有加引号),如 '${name}'

        • select * from test_table where name = '${name}'

      • 如果在 Parameter values 中使用变量,且是字符串类型,不需要加上引号,只需要在 Parameter types 里写明为 varchar 即可

    • result variable name

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

        • 如接收 select * from test_table limit 3