zoukankan      html  css  js  c++  java
  • Jmeter-使用jdbc发送sql & 配置JDBC Connection Configuration & JDBC Request的使用

    1.什么是jdbc(Java Data Base Connectivity)

    • 是一种用于执行SQL语句的Java Api
    • 通过这个api可以直接执行sql脚本

    2.Jmeter添加连接数据库的驱动jar包    

    !使用不同的数据库,我们需要引入不同的jar包。  

       mysql数据库的Jar包名:mysql-connector-java-x.x.xx.jar

    方法1:直接将jar包复制到jmeter的lib目录

    方式2:通过Test Plan,使用Jmeter的Test Plan引入相应的jar包

     3.配置JDBC Connection Configuration       (!这个一般放在Setup线程组下)

       步骤1.先建一个Setup线程

       步骤2.Setup线程—>添加配置元件—>数据库连接配置JDBC Connection Configuration

       步骤3.填写对应的参数

      

     ?useUnicode=true&characterEncoding=utf-8

    重要参数说明

    • Variable Name:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。
    • Database URL:数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称, 如:jdbc:mysql://localhost:3306/Test
    • JDBC Driver class:JDBC驱动
    • username:数据库登陆的用户名
    • passwrod:数据库登陆的密码

    不同数据库具体的填写方式,可以参考下面的表格:

    DatabaseDriver classDatabase URL
    MySQL com.mysql.jdbc.Driver jdbc:mysql://host:port/{dbname}
    PostgreSQL org.postgresql.Driver jdbc:postgresql:{dbname}
    Oracle oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:user/pass@//host:port/service
    Ingres (2006) ingres.jdbc.IngresDriver jdbc:ingres://host:port/db[;attr=value]
    MSSQL com.microsoft.sqlserver.jdbc.SQLServerDriver或者net.sourceforge.jtds.jdbc.Driver jdbc:sqlserver://IP:1433;databaseName=DBname或者jdbc:jtds:sqlserver://localhost:1433/"+"library"

     

     

     

     

     

     

     

     

     

    4. 配置JDBC Request

    • JDBC Request 主要是向数据库发送一个 JDBC 请求(sql 语句),并获取返回的数据集
    • 它需要和数据库连接池配置(JDBC Connection Configuration)一起使用

       步骤1:线程组—>添加—>取样器 JDBC Request

       步骤2:填写对应的参数

     

            重要的参数说明:
     

      • Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
      • Query:填写的sql语句
      • Parameter valus:需要传递的变量值,多个变量用 ‘逗号,’  隔开
      • Parameter types:变量类型
      • Variable names:保存sql语句返回结果的变量名;用 ‘逗号,’  隔开;跳过列用空
      • Result variable name:创建一个对象变量,保存所有返回的结果
      • Query timeout:查询超时时间
      • Handle result set:定义如何处理由callable statements语句返回的结果

     

     

    具体的实战,准备了cb_user表的以下数据

    1.只有SQL语句的例子

     返回结果:

    2.JDBC Request 参数化

    方法一:在sql query中使用”?“作为占位符,并传递参数值和参数类型 的例子

    •    sql 中使用占位符时,Query Type 必须选择 Prepared Select Statement 或者 Prepared Update Statement 
    • ”?“作为占位符,sql中有几个问号,下面的Parameter valus 和Parameter types对应着填写,中间用英文逗号隔开

     执行结果:

     方法二在sql query中使用变量,sql query中使用${变量名}引用

     

     执行结果:

     

    另外!Parameter values中可以使用变量,然后sql query中用?占位符

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

    3.Variables names 参数使用方法

    如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。

    假如,sql语句返回2行,3列,且variables names设置为A,,C,那么如下变量会被设置为:
     
      A_#=2 (总行数)
      A_1=第1列, 第1行
      A_2=第1列, 第2行
      C_#=2 (总行数)
      C_1=第3列, 第1行
      C_2=第3列, 第2行
     

     执行结果:

    添加一个”Debug Sampler“用来查看输出的结果

     4.Result variable name 参数使用方法

    如果给这个参数设置值,它会创建一个对象变量,保存所有返回的结果,获取具体值的方法:columnValue = vars.getObject("resultObject").get(0).get("Column Name")

     执行结果:

  • 相关阅读:
    Single Number II
    Pascal's Triangle
    Remove Duplicates from Sorted Array
    Populating Next Right Pointers in Each Node
    Minimum Depth of Binary Tree
    Unique Paths
    Sort Colors
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Climbing Stairs
  • 原文地址:https://www.cnblogs.com/Aphrodite/p/13212731.html
Copyright © 2011-2022 走看看