数据库驱动包下载与安装
示例:连接 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:登录数据库的用户名
- password:登录数据库的密码
添加 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:查询脚本,不带变量参数
- Update 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}。这样一来,测试人员就可以创建一个计数器后,在多个地方引用它的值。