jmeter(12)-从入门到精通-逻辑控制器(终)
4.1Runtime Controller (单位秒)
运行控制器用来控制其子元件的执行时长。市场单位是秒。

2、关键参数说明如下:
Name:名称,可以随意设置,甚至为空;
Comments:注释,可随意设置,可以为空;
Runtime:默认为1,去掉1则默认为0,此时不执行其节点下的元件。 与线程组中的调度器的持续时间 效果一致。不填 或 0,不会执行样例
实例:



线程组设置3,Runtime控制器设置2,但是运行时间是2s。所以从上边的运行时间得出结论:如果线程组中设置了持续时间,Runtime 控制器也设置了 运行时间,那么会优先于线程组中的设置。
4.2Simple Controller

Simple Controller用来指定了一个执行单元,它不改变元件的执行顺序。在它下边还可以嵌套其他控制器。简单控制器可以编辑只有名称和注释。就像他的名字一样,简单,可以理解为一个文件夹,就是分组用的,没有其他特殊功能,但相比不添加简单控制器,区别在于简单控制器可以被模块控制器所引用。其作用就是分组,比如QQ好友列表,可分为家人、同学、等。一般是请求较多,需要分组时采用。
Name:名称,可以随意设置,甚至为空;
Comments:注释,可随意设置,可以为空。
4.3Throughput Controller
用来控制其下元件的执行次数,并无控制吞吐量的功能,想要控制吞吐量可以使用Constant Throughput Timer,后边会讲解到。吞吐量控制器有两种模式:Total Executions:设置运行次数与Percent Executions:设置运行比例(1~100之间)。

综上所述:
勾选Per User:
1.线程数*循环次数>=线程数*吞吐量时,Total Executions模式的执行次数=线程数*吞吐量。
2.线程数*循环次数<线程数*吞吐量时,Total Executions模式的执行次数=当线程数*循环次数。
不勾选Per User:
1.线程数*循环次数<=吞吐量时,Total Executions模式的执行次数=线程数*循环次数。
2.线程数*循环次数>吞吐量时,Total Executions模式的执行次数=吞吐量。
l Percent Executions:设置运行比例(1~100之间),单位为%
不管Per User是否勾选,按Percent Executions模式的执行次数都不受Per User影响,Percent Executions模式的执行次数=线程数*循环次数*吞吐量%。(循环次数=线程组循环次数*循环控制器循环次数)
l Per User:勾选该项的话则按虚拟用户数(线程数)来计算执行次数,不勾选则按所有虚拟用户数来计算执行次数
| 序号 | 线程数 | 循环次数 | 模式 | Throughput | Per User | 执行次数 |
| 1 | 2 | 10 | Percent | 50 | Y | 10 |
| 2 | 2 | 10 | Percent | 50 | N | 10 |
| 3 | 2 | 10 | Total | 7 | Y | 14 |
| 4 | 2 | 10 | Total | 7 | N | 7 |
| 5 | 2 | 2 | Total | 7 | Y | 4 |
| 6 | 2 | 2 | Total | 7 | N | 4 |
下面说明一下这6个场景:
(1)序号1和2场景,Per User 对总执行次数没有影响。
(2)序号3场景,Per User勾选,每个虚拟用户(线程)执行7次,共执行14次。
(3)序号4场景,Per User不勾选,则所有虚拟用户执行7次。
(4)序号5场景,Per User勾选,每个虚拟用户(线程)执行7次,共执行14次,由于Thread Group计划循环次数是4(2线程*2循环)次,所以最多只能执行4次。
(5)序号6场景,Per User不勾选,所有虚拟用户执行7次,由于Thread Group计划循环次数是4(2线程*2循环)次,所以最多只能执行4次。
在中篇有include controller 描述学习
4.4Module Controller
模块控制器可以快速的切换脚本,不用来回的新建,方便脚本调试。
可以理解为引用、调用的意思,执行内容为Module To Run种所选的内容,引用范围为当前测试计划内的测试片段、逻辑控制器<模块控制器除外>
被引用的逻辑控制器、测试片段可以为禁用状态,被引用后仍然会被执行。
可以将模块控制器与包括控制器一起学习比较,模块控制器是从内部文件中引用,引用上相对比较灵活,可以只引用部分测试片段或模块内容,包括控制器是从外部文件引用,只能引用整个测试片段的内容。
注意:被应用的模块位置不可随意变更,变更后会执行时出现提示引用失败
找到目标元素:快速查找与跳转的作用,点击后会立即跳转到所选的逻辑控制器的内容详情

2、关键参数说明如下:
Name:名称,可以随意设置,甚至为空;
Comments:注释,可随意设置,可以为空;
Forever:勾选上这一项表示一直循环下去。
例子;


4.5Switch Controller 开关
Switch Controller:开关控制器,通过其下样例顺序数值或名称 控制执行某一个样例。

2、关键参数说明如下:
Name:名称,可以随意设置,甚至为空;
Comments:注释,可随意设置,可以为空;
Switch Value:指定请求的索引或者名称,索引从0开始,如果没有赋值,或者索引超过请求个数的话就执行第0个请求。可以是数字,也可以是字符,为字符时匹配取样器名称,如果匹配不上就会默认并找取样器名称为default的取样器,如果没有则不运行。
4.5.1数值
数值:表示将执行其下第 数值+1个取样器,例如:填1,将执行第2个取样器;填0或者不填,将执行第1个取样器;数值超出其下取样器数目时,执行第1个取样器。
4.5.2字符
1、创建一个测试计划,设置线程组和Switch控制器(直接使用取样器名字),如下图所示:
实例:




浙公网安备 33010602011771号