jmeter控制器
1.简单控制器
- 作用:分组
- 对 Jmeter 测试运行没有任何影响,可以将某些请求归集在一个简单控制器中,视为一个模块,使得脚本结构更清晰
2.随机控制器
控制器随机选取一个请求执行
3.随机顺序控制器
- 每个请求执行一次,但是执行顺序是随机的
4.循环控制器
- 作用:该控制器下的请求可以循环运行
- 设置如下,循环次数10:
-
结果:循环请求10次
备注
- 循环次数: 在输入框中输入需要循环的次数
- 永远:如果勾选该项,那么控制器下的请求可一直运行
5.仅一次控制器
作用:针对循环次数生效,对并发数(线程组数)不生效
- 设定线程数1,循环次数10次,执行1次,仅一次控制器生效
- 设置如下:
- 结果:执行请求一次
- 设定线程数10,循环次数1次,如下截图执行10次,仅一次控制器不生效
- 设置如下
-
执行请求10次
6.Switch控制器
- 通过给该控制器中的value赋值,来指定运行哪个取样器
- 第一种当Value为 空 或者 不存在的下标值,默认执行第1个子节点元素
- 第二种是直接指定字符串 子元素的名称,比如采样器的Name,我这边叫demo3来进行匹配。当指定的名称不存在时,不执行任何元素
- 第三种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素
7.ForEach控制器
作用:遍历当前元素的所有可执行场景;在用户自定义变量中读取一系列相关的变量,该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值
- 用户定义的变量设置如下:
- ForEach控制器设置循环三次
-
引用定义的变量
- 执行结果
8. 事务控制器
一、Transation Controller事务控制器配置界面
Generate parent sample 选择是否生成一个父取样器结果
Include duration of timer and pre-post processors generated sample 是否包含定时器在请求前后加上定时器,那么会将定时器时间包含到响应时间里面
二、Transation Controller实例
事务控制器作用: 事务响应时间是性能测试重要的指标,事务控制器可以统计其节点下的取样器执行消耗时间
- Transation Controller 是否勾选Generate parent sample
场景一:在事务控制器下面添加4个请求,不勾选Generate parent sample。
@运行结果
在Summary Report 可以看到分别显示四个请求的响应时间和Transation Controller(四个请求响应时间之和)响应时间
在View Result Tree 中可以看到分别显示每个请求执行结果。
场景二:在事务控制器下面添加4个请求,勾选Generate parent sample。
@运行结果
在Summary Report 可以看到只显示Transation Controller(四个请求响应时间之和)响应时间
在View Result Tree 中可以看到显示TransactionController包含了四个请求。
- @Transation Controller 是否勾选Include duration of timer and pre-post processors generated sample
场景一:在事务控制器下面添加4个请求,每个请求前加上一个定时器延时5秒。勾选Include duration of timer and pre-post processors generated sample
@运行结果
在Summary Report 可以看到分别显示四个请求的响应时间和Transation Controller(四个请求响应时间之和)都包含了定时器延时时间。
场景二:在事务控制器下面添加4个请求,每个请求前加上一个定时器延时5秒。不勾选Include duration of timer and pre-post processors generated sample
@运行结果
在Summary Report 可以看到分别显示三个请求的响应时间和Transation Controller(三个请求响应时间之和)都不含定时器延时时
9.如果(If)控制器
场景:登入成功后才能搜索商品
1.登录成功,对变量login赋值vars.put("login","true"); 注: vars.put 赋值 ,login.info打印login的值 是BeanShell语法
2.如果if控制器输入条件
- 函数助手查找:groovy,输入表达式"${login}"=="true",生成函数
- 将逻辑表达式复制进去,判断login的值是否等于true
- 符合条件执行请求 搜索商品,不符合条件不执行
10.Runtime控制器
作用:用于控制该控制器下的取样器/控制器的运行时间
- 设置如下,如果不填写,则不执行
- 查看运行时间,执行10s
11.While控制器
使用方法:
- While控制器判断条件 默认/不填 ,最后一个示例循环失败时退出循环
- While控制器判断条件 LAST ,最后一个示例循环失败时退出循环
- While控制器判断条件 LAST,如果之前的一个请求失败,不进入whlie控制循环。
-
实际例子
(1)最后一个请求填写后置处理器,login随机赋值1,2,3
(2)判断条件设置如下:
(3)运行如下,随机数为2时退出循环