测试的过程中,我们经常要对数据库表数据进行查询、修改、添加等操作。在用 JMeter 做性能或者接口等测试时,也可以让 JMeter 连接数据库然后对数据库数据进行相关操作。下面先来学习如何使用 JMeter 连接 MySql 数据库进行操作。

一、创建测试

首先创建一个测试计划和线程组,然后在线程组下添加配置元件 JDBC Connection Configuration 。

二、设置数据库连接配置

接下来要对数据库连接的配置项进行设置。

Variable Name for created pool: 创建池的变量名 。这个变量在后面介绍的 JDBC Request 请求中用到。

Max Number of Connections: 池中允许的最大连接数。在大多数情况下,将其设置为零(0),这意味着每个线程都将拥有自己的池,其中只有一个连接,即线程之间不共享连接。如果您真的想使用共享池,那么将 max count 设置为与线程数量相同,以确保线程不会彼此等待。

Max Wait(ms):在试图检索连接的过程中超过了超时时间,则池会抛出一个错误 。

Time Between Eviction Runs (ms):在被逐出的时间间隔(ms)。在空闲对象驱逐线程之间运行的毫秒数。当非正的时候,就不会运行无用的对象驱逐线程(默认为”60000″,1分钟) 。

Auto Commit:将自动提交或关闭连接到连接上 。

transaction isolation:事务隔离 。这个默认即可,具体用法暂时还没有研究过,会的可以分享一下。

Test While Idle :测试池的空闲连接 ,后面的验证查询将用于测试它。

Soft Min Evictable Idle Time(ms) :软Min可驱逐空闲时间(ms) 。在它有资格被闲置的对象驱逐者强制驱逐之前,一个连接可能闲置在池中,并且至少在池中存在空闲连接的额外条件,默认值为5000(5秒) 。

Validation Query :验证查询 。一个简单的查询,用来确定数据库是否仍在响应。 这个验证查询在池创建中使用,即使“空闲测试”建议查询只在空闲连接上使用,也可以验证它。

验证查询的列表可以配置 jdbc.config.check。查询属性,默认情况下:

hsqldb:select 1 from INFORMATION_SCHEMA.SYSTEM_USERS

Oracle:select 1 from dual

DB2:select 1 from sysibm.sysdummy1

MySQL:select 1

Microsoft SQL Server (MS JDBC driver):select 1

PostgreSQL:select 1

Ingres:select 1

Derby:values 1

H2:select 1

Firebird:select 1 from rdb$database

Database URL:数据库的JDBC连接字符串。格式:jdbc:mysql://host[:port]/dbname,称举个栗子:jdbc:mysql://127.0.0.1:3306/db_api。为了避免读取数据出现乱码,可以在前面基础上加上处理乱码的字符串,例如:jdbc:mysql://127.0.0.1:3306/db_api?useUnicode=true&characterEncoding=utf8。

JDBC Driver class :JDBC驱动程序类 。MySql 选择 com.mysql.jdbc.Driver,另外我们要把 mysql-connector-java.jar 包放到 JMeter/lib目录下,然后重启 JMeter 。

mysql-connector-java.jar 包下载地址:https://pan.baidu.com/s/14N4Beohy14SvKJziAHVSDg 密码:vmy3

下面列举一些数据库及其参数的实例:

MySQL

  • Driver class:com.mysql.jdbc.Driver
  • Database URL:jdbc:mysql://host[:port]/dbname

PostgreSQL

  • Driver class:org.postgresql.Driver
  • Database URL:jdbc:postgresql:{dbname}

Oracle

  • Driver class:oracle.jdbc.OracleDriver
  • Database URL:jdbc:oracle:thin:@//host:port/service ORjdbc:oracle:thin:@(description=(address=(host={mc-name})(protocol=tcp)(port={port-no}))(connect_data=(sid={sid})))

Ingress (2006)

  • Driver class:ingres.jdbc.IngresDriver
  • Database URL:jdbc:ingres://host:port/db[;attr=value]

Microsoft SQL Server (MS JDBC driver)

  • Driver class:com.microsoft.sqlserver.jdbc.SQLServerDriver
  • Database URL:jdbc:sqlserver://host:port;DatabaseName=dbname

Apache Derby

  • Driver class:org.apache.derby.jdbc.ClientDriver
  • Database URL:jdbc:derby://server[:port]/databaseName[;URLAttributes=value[;…]]

Username :连接数据库的用户名。

Password:连接数据库的密码。

三、连接数据库操作

设置完成后,接下来在线程组下创建一个 JDBC Request 请求。

1、查询操作

例如我们先来个查询语句。

运行脚本之前,我们先在 SQLyog 中查询看 table_api 表中有哪些数据?

接着在 JMeter 中添加一个查看结果树监听器,运行一次脚本。

从上面的结果可以看出,JMeter 已经成功操作了数据库,并且把 table_api 表的数据查询出来了,和在 SQLyog 中查询到的结果是一致的。

2、增加操作

下面往表内插入一行新数据。

运行脚本,查看结果。

从结果可以看出,插入数据也是没问题的。

3、修改操作

接下来,我们把隔壁老王的电话修改一下。

运行脚本,查看结果。

数据修改成功。

4、删除操作

最后,我们把隔壁老王的数据删除。

运行脚本,查看结果。

从查询结果看出,隔壁老王数据被删除,永远离开了我们。

以上就是 JMeter 连接 MySql 对数据库的一些操作,希望对大家有些帮助。

文章来源于互联网:JMeter JDBC连接MySql配置

发表评论