循环控制器:
指定迭代次数,可以用具体数字,也可以通过变量控制
永远:表示无限循环
点击查看示例:Jmeter实例(四)_图片爬虫
简单控制器:
这是最基础的一个控制器,它可以让脚本分层,变成一个模块,但是本书并不具有任何的逻辑控制能力
Foreach控制器:
ForEach控制器用户变量一起使用,用于遍历读取返回值。该控制器下的任何请求和元件都会被执行一次或多次
注:foreach控制器通常和表达式提取器一起使用。表达式提取值应为-1,表示取全部值,然后sampler在foreach控制器下执行遍历。
仅一次控制器:
作用:在测试计划执行期间,该控制器下的子结点对单线程只执行一次,但是在多线程下仍然会执行多次。登录场景经常会使用到这个控制器。
事务控制器:
作用:事务控制器用来统计该控制器下所有子结点的性能数据。
参数:
Generate parent sample:勾选后,所有的结果将在父结点中展示(选中这个参数结果展示如下图红框,否则显示为下图蓝框)
If控制器 :
作用:根据表达式决定如何执行后续分支,默认使用javascript的语法进行判断(如下图红框内的文字)。
判断 project_id 不为空,且数据库返回值与接口返回值相等时,执行 if 控制器下面的添加需求接口
点击查看示例:Jmeter实例(一)_Beanshell脚本断言Mock接口
Switch控制器:
作用:Switch控制器通过给该控制器中的Value赋值,来指定运行哪个采样器。有两种赋值方式:
· 第一种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素。
· 第二种是直接指定子元素的名称,比如采样器的Name来进行匹配。当指定的名称不存在时,不执行任何元素。
当Value为空时,默认执行第1个子节点元素。
示例:
1、Switch Controller选择的值为 客服登录
2、执行结果:
吞吐量(Throughput Controller):
作用:控制其下的子节点的执行次数与负载比例分配,别被名字迷惑了,跟吞吐量没任何关系。也有两种方式:
Total Executions:设置运行次数,整个测试计划中总计执行次数
Percent Executions:设置运行比例(1~100之间),整个测试计划中总计执行百分比
Throughtput: 设计的数值
Per User: 依据网上的说明在选择Total Executions时,勾选时会在每个线程中执行的次数。但在3.0版本中尝试使用无效
示例:
1、设置线程组循环5次:
2、Throughput Controller1的子结点执行3次:、
结果发现一共运行了3次
3、Throughput Controller2的子结点执行(40% * 线程组循环次数5)= 2次:注意percent选项下,填写的是百分比!
观察运行结果,发现运行了2次
随机控制器:
作用:随机执行其下的某个子结点
应用场景: 用户对页面的随机访问
执行结果,随机选择了三个登录中的一个
多运行一次,观察结果,发现两次运行的顺序不同,但是每个接口都运行了一遍
交替控制器:
忽略控制器块:勾选后,子控制器每次只能发起一个请求
Interleave accross threads:勾选之后,控制器下的子元素会依次执行
如果交替控制器挂在循环控制器之下,那么循环次数与线程数的作用相同
点击查看示例:Jmeter(二十九)循环控制器+交替控制器+事务控制器 完美实现接口字段参数化校验
模块控制器:
· 模块控制器,用于跳转到选定的控制器位置并执行对应的控制器
· 应用场景: 业务逻辑的跳转
· Module to Run: 选择需要跳转到的目标控制器
While 控制器:
While 控制器,与开发语言中的While功能一致。直到条件为false时,停止运行
条件如下:
1:为空(不输入任何值) -- 直到某次请求执行失败则退出循环
2:LAST -- 直到最后一个请求请求失败则退出循环
3:其它 -- 条件值等于"false"时则退出循环
例:${num} !=5判断变量num的值是否为5,等于5则退出循环
${__javaScript("${num}"!=8 && "${num}"不等于8的情况下执行循环体,但是只能循环5次
我们通过计数器让它有十次循环的机会
查看结果,循环体执行到${num}==5的时候就停止了
点击查看示例:Jmeter(三十)while控制器实现ssh三次重连