数据库驱动包下载与安装

示例: 连接mysql

下载connector

https://dev.mysql.com/downloads/connector/j/

安装

下载完成后解压放到jmeter的lib/ext下

重启jmeter

JDBC的连接配置

添加配置元件-JDBC Connection Configuration

参数详解

Variable Name for created pool:
自己定义连接数据库的名称, 需要记住, 这里会在后续使用jdbc request中用到
Database URL:数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称,
如:jdbc:mysql://localhost:3306/kyj
url后面的参数(可以不写)characterEncoding=utf8&useSSL=true&serverTimezone=UTC
设置时区和编码格式
JDBC Driver class:mysql新版使用com.mysql.cj.jdbc.Driver
username:登陆数据库的用户名
passwrod:登陆数据库的密码

添加JDBC Request

参数详解

Variable Name for created pool 前面自己定义的连接数据库的名称jmeter中写sql语句,末尾不建议用;
jdbc request请求中,不支持写多条语句

知识点

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

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

sql中可以可以使用问号占位符,对应着Parameter value、Parameter type 填写值的数量要保持一致,用,分隔

sql 中使用占位符时,Query Type 必须选择 Prepared Select Statement 或者 Prepared Update Statement

我们可以用 Jmeter 变量去赋值,看下面栗子

关于query type

select statement 查询脚本,不带变量参数
updata statement 增删改脚本,不带变量参数
Prepared select statement 查询脚本,带变量参数
Prepared statement 增删改脚本,带变量参数

将得到的结果集进行遍历, 依次再进行处理, 可以使用逻辑处理器

如下, 得到结果集是多条, 且每个上面步骤中配置的variable会返回两个参数, 例如vgqid, 一个是vgqid_#代表查到vgqid的数据一共多少条, 另外则是这些vgqid所有的值, 参数以vgqid_{索引值,从1开始}展示

添加循环控制器设置

动态参数可以使用拼接函数 __V 和计数函数__counter

例如在下面的登陆接口中希望循环${vgqid_#}次, 然后取vgqid的值进行查询

则可以使用${__V(vgqid_${__counter(true,)},)}取出vgqid的值, 这里视清空配置counter函数的false和true,如果循环控制器内还有其他的组件也需要使用变量参数获取vgqid的值,那就设置为true

关于counter参数

每次调用计数器函数都会产生一个新值,从1开始每次加1。计数器既可以被配置成针对每个虚拟用户是独立的,也可以被配置成所有虚拟用户公用的。如果每个虚拟用户的计数器是独立增长的,那么通常被用于记录测试计划运行了多少遍。全局计数器通常被用于记录发送了多少次请求。

计数器使用一个整数值来记录,允许的最大值为2,147,483,647。

功能:这个函数是一个计数器,用于统计函数的使用次数,它从1开始,每调用这个函数一次它就会自动加1,它有两个参数,第一个参数是布尔型的,只能设置成 “TRUE”或者“FALSE”,如果是TRUE,那么每个用户有自己的计数器,可以用于统计每个线程歌执行了多少次。如果是FALSE,那就使用全局计 数器,可以统计出这次测试共运行了多少次。第二个参数是“函数名称”

格式: ${__counter(FALSE,i)}

使用: 我们将"_counter"函数生成的参数复制到某个参数下面,如果为TRUE格式,则每个线程各自统计,最大数为循环数,如果为FALSE,则所有线程一起统计,最大数为线程数乘以循环数

参数:

第一个参数:True,测试人员希望每个虚拟用户的计数器保持独立,与其他用户的计数器相区别。False,全局计数器。

第二个参数:重用计数器函数创建值的引用名。测试人员可以这样引用计数器的值:${i}。这样一来,测试人员就可以创建一个计数器后,在多个地方引用它的值。