Jmeter – JDBC Request使用方法

  • Post author:
  • Post category:其他

系统:windows11 jmeter版本:5.4.3

一、建立数据库连接

1、添加配置原件JDBC Connection Configuration:线程组 – 右键“添加” – 配置原件 – JDBC Connection Configuration

2、配置JDBC Connection Configuration

JDBC Connection Configuration参数详解:

Variable Name for created pool:数据库连接池的名称,存在多个JDBC连接配置时,此属性不能重复,供JDBC Request调用

Max Number of Connections:连接池允许的最大连接数。默认为“0”,即每个线程具有单个连接的情况下获得自己的连接池,即该连接在线程之间不共享。如果确实要使用共享,则将最大计数设置为与线程数相同,以确保线程不会彼此等待。

Max Wait(ms):尝试连接最大等待时长,超时报错(默认为“ 10000 ”)

Time Between Eviction Runs(ms):空闲连接池被回收的时间间隔,如果设置为非正数,则空闲连接回收器将不停的运行(默认为“ 60000 ”)

Auto Commit:自动提交。有三个选项,true、false、编辑(自己通过jmeter提供的函数设置,本文不做详述)。默认True,如果修改数据库,则会自动提交

Transaction Isolation:事务控制选项,默认DEFAULT,具体参数详解如下:

        ​ 

         TRANSACTION_NODE: 不支持事务
         TRANSACTION_READ_UNCOMMITTED: 允许脏读、不可重复读和幻读
         TRANSACTION_READ_COMMITTED :禁止脏读、但允许不可重复读和幻读
         TRANSACTION_SERIALIZABLE: 禁止脏读、不可重复读和幻读
         DEFAULT :默认,禁止脏读,但允许不可重复读和幻读;
         TRANSACTION_REPEATABLE_READ :禁止脏读、不可重复读,允许幻读
         编辑

        备注:

                脏读:一个事物读取另一个事物未提交的数据

                不可重复读:一个事物再次读取之前的数据时,这个数据已经被另一个事物修改

                幻读:一个事物重新执行一个查询,返回的记录包含了其他事物提交的新记录

Test White Idle:验证查询测试连接池是否空闲,默认True

Soft Min Evictable Idle Time(ms):连接池允许处于空闲状态的最短时间,闲置超过这个时间将会被回收,默认5000

Validation Query:查询语句验证连接是否可用,根据自己的数据库选择

网上有对数据库类型和验证语句的总结。本人oracle和mysql都选择select1,其他类型未接触过,不多做详解

Database URL:数据库url

JDBC Driver class:JDBC驱动

Database

Driver class

Database URL

example

MYSQL

com.mysql.jdbc.Driver

jdbc:mysql://host:port/{dbname}

jdbc:mysql://28.105.151.123:3306/sqh_sit

DB2

com.ibm.db2.jcc.DB2Driver

jdbc:db2://host:port/{dbname}

PostgreSQL

org.postgresql.Driver

jdbc:postgresql:{dbname}

Oracle

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@//host:port/service OR jdbc:orcle:thin:@(description=(address+(host={mc-name})(protocol=tcp)(port={port-no}))(connect_data=(sid={sid})))

Ingres(2006)

ingres.jdbc.IngresDriver

jdbc:ingres://host:port/db[;attr=valuse]

MSSQL

com.microsoft.sqlserver.jdbc.SQLServer OR net.sourceforge.jtds.jdbc.Driver

jdbc:sqlserver://ip:port;databaseName+DBname OR jdbc:jtds:sqlserver://localhost:1443/”+”library””

Username:数据库登录用户名

Password:数据库登录密码

二、JDBC Request

1、线程组 – 右键“添加” – “取样器” – “JDBC Request” 

2、JDBC Request参数详解

Variable Name of Pool declared in JDBC Connection Configuration:在配置原件JDBC Connection Configuration中申明的数据库连接池的名称(即配置原件JDBC Connection Configuration中Variable Name for created pool参数值)

Query Type:

1)、Select Statement:执行查询语句,不可以用占位符来做参数化,但是可以用${}引用变量

2)、Update Statement:执行更新操作,不可以用占位符来做参数化,但是可以用${}引用变量。如果是自负变量要系上单引号

3)、Prepared Selsect Statement:查询语句,有占位符”?”时使用

4)、Prepared Update Statement:执行更新操作,有占位符”?”时使用

5)、Commit:执行完SQL后,马上提交,使用这个选项时,JDBC Connect Configuration中Auto Commit 选择false

6)、Rollback:回退,数据不会插到数据库。使用这个选项时,JDBC Connect Configuration中Auto Commit 选择false。(PS:Rollback是指jmeter进行数据库操作室时,还没有提交到数据库的时候,执行有效,可以正常回滚。如果是已提交到数据库的操作,该回滚不会将数据库中的数据回滚)

 


版权声明:本文为qq_42128875原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。