一、jmeter连接数据库
连接MySQL
将mysql-connector-java-X.X.X-bin.jar放入到jmeter安装目录下的./lib目录,重启jmeter
步骤:
- 创建测试计划
- 创建线程组
- 添加 JDBC Connectionn Configuration (建立数据库连接)
- 添加 JDBC Request (发送数据库请求)
- 添加查看结果树
-
引入数据库驱动jar 包
- 配置 JDBC Connectionn Configuration
- 连接测试(JDBC Request)
Variable name of pool...:数据库连接池的名字(与JDBC Connection Configuration 名字保持一致)
Querys:查询数据库语句的SQL语句(末尾不要加;)
parameter values:数据的参数值
parameter types:数据的参数类型
variable name:变量名称,用于保持SQL语句返回结果(eg. 变量名称)
result variable name:创建一个对象变量,保存所有返回结果
query timeout:查询超时时间
handle result set:定义如何处理由 callable statements语句返回的结果
二、逻辑控制器
如果(if)控制器
作用:用来控制它下面测试元素是否运行
操作:右击线程组 --> 添加 --> 逻辑控制器 --> 如果(if)控制器
- JS语法格式:"${name}"=="itcast" #当name取值等于itcast
- 函数格式:${_jexl3("${name}"=="itcast")} #需要勾选下面的复选框
循环控制器
ForEach 控制器
作用:一般和用户自定义变量或正则表达式提取器一起使用,读取返回结果中一系列相关的变量
三、定时器
同步定时器
阻塞线程(累计一定的请求),在规定的时间内达到一定的线程数量,这些线程会在同一时间点一起释放,瞬间产生很大的压力。
案例1:模拟100个用户同时访问百度首页,统计各种高并发情况下运行情况
步骤:
- 添加线程组
- 添加http请求
- 添加同步定时器(要设置时间且不能太小!)
- 添加查看结果树
- 添加监听器 --> 聚合报告
常数吞吐量定时器 constant throughput timer
稳定性测试时,需要模拟用户真实的业务场景。若真实业务场景QPS为20,如何精确模拟?
作用:让jmeter按指定的吞吐量(QPS)执行,以每分钟为单位。