jmeter-操作数据库(JDBC Connection Configuration和JDBC Request)

做接口测试或者是压测,有时候需要读取、修改数据库等操作,jmeter操作数据库需要导入外部jar包来实现,下面是步骤。

1、下载mysql-connector-java.jar包,两种方式

maven地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java

mysql地址:https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.zip

2、jar包导入jmeter

这里有3种方式,参看我的另一篇博客

https://blog.csdn.net/qq_40308101/article/details/103685809

3、在jmeter的GUI界面,在测试计划or线程组里先添加 配置元件-JDBC Connection Configuration,如图

jmeter-操作数据库(JDBC Connection Configuration和JDBC Request)

参数详解:

Variable Name for created pool:自定义数据库连接池的变量名,与JDBC Request的Variable name of Pool保持一致

Max Number of Connections:该数据库连接池的最大连接数,一般可设置为0,意思是每个线程都使用单独的数据库连接,线程之间数据库连接不共享

Max Wait:最大等待时间,超过这个时间,请求结果还没有返回,会报超时错误

Time Between Eviction Runs (ms):疏散时间,在空闲对象驱逐线程运行期间,可以休眠的毫秒数。当非正值时,将运行无空闲对象驱逐器线程。(默认为“60000”,1分钟)(如果当前连接池中某个连接在空闲了time Between Eviction Runs Millis时间后任然没有使用,则被物理性的关闭掉。)

Auto Commit :自动提交sql语句,有三个选项:true、false、编辑(自己通过jmeter提供的函数设置)

Transaction Isolation:  事务间隔级别设置,主要有如下几个选项:(对JMX加解密) 

         TRANSACTION_NODE   事务节点 、

         TRANSACTION_READ_UNCOMMITTED  事务未提交读、

         TRANSACTION_READ_COMMITTED   事务已提交读 、

         TRANSACTION_SERIALIZABLE   事务序列化 、

         DEFAULT  默认、

         TRANSACTION_REPEATABLE_READ 事务重复读、

         编辑

Test While Idle :当空闲的时候测试连接是否断开

Soft Min Evictable Idle Time(ms)  :最少的时间连接可能在池中闲置,然后才有资格被闲置的对象驱逐出去,额外的条件是至少在池中保持连接。默认值为5000(5秒)

validation query:测试连接是否有效的查询语句,这是Jmeter用来检验数据库连接是否有效的一种机制,超过5秒没有使用的话,就会用validation query去测试下这个连接是否有效

Database URL:数据库连接地址

JDBC Driver class:数据库驱动,不同数据库的驱动类和URL格式

Datebase

Driver class

Database 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/[email protected]//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"

Username:数据库登录名

Password:数据库登陆密码

4、添加JDBC请求,取样器-JDBC Request,如图

jmeter-操作数据库(JDBC Connection Configuration和JDBC Request)

参数详解:

Variable name of Pool:这里写入数据库连接池的名字(和JDBC Connection Configuration名字保持一致 )

Query Type:SQL语句类型,包含十个类型,具体可以参考https://www.cnblogs.com/imyalost/p/6498029.html

Query:里面填入查询数据库数据的SQL语句

Parameter valus:数据的参数值,与Parameter types中的类型要一一对应

Parameter types:数据的参数类型,全部类型:https://docs.oracle.com/javase/6/docs/api/java/sql/Types.html

Variable names:保存SQL语句返回结果的变量名,如果查询结果又多列,可以设置多个变量,以逗号分隔。

Result variable name:创建一个对象变量,保存所有返回结果

Query timeout:查询超时时间

Handle resultSet:定义如何处理由callable statements语句返回的结果