JMeter-LogicControllers逻辑控制器

2019-10-17  本文已影响0人  MechelleWang

18.2 Logic Controllers


逻辑控制器决定采样器执行的顺序。

Simple Controller(简单控制器)


简单逻辑控制器可以组织采样器和其他逻辑控制器。与其他逻辑控制器不同,此控制器除了存储设备之外,不提供任何功能。

Attribute Description Required
Name 控制器名称 NO

Loop Controller(循环控制器)


如果向循环控制器添加生成或逻辑控制器,那么实际循环的次数除了受线程组指定的循环值影响外,还受到循环控制器设定的循环值的影响。例如,如果向一个循环计数为2的循环控制器添加一个http请求,并且线程组循环计数配置为3,则JMeter将总共发送2*3=6个http请求。

Attribute Description Required
Name 控制器名称 NO
Loop Count 该控制器下所有元素的循环次数,值-1表示forever,即永远执行下去。 NO

Once Only Controller(只执行一次控制器)


Once Only Controller表示在控制器所在的线程组只执行其一次。
如果Once Only Controller的父类元素是一个循环控制器,则其只在循环控制器的第一次迭代时执行。因此,如果将Once Only Controller控制器放置在循环5次的循环控制器下,则Once Only Controller将仅在循环控制器的第一次迭代时执行。
注意,这意味着只有一个控制器将仍然如先前预期的那样被放置在一个线程组(每个线程每次测试只运行一次),但是现在用户在只使用一次控制器时有更大的灵活性。
对于需要登录的测试,考虑将登录请求放在这个控制器中,因为每个线程只需要登录一次就可以建立会话。

Attribute Description Required
Name 控制器名称 NO

Interleave Controller(交替控制器)


如果将生成控制器或逻辑控制器添加到交替控制器中,JMeter将在每次循环迭代时交替执行这两个控制器。

Attribute Description Required
Name 控制器名称 NO
ignore sub-controller blocks 该设置表示,交替控制器会像处理单个请求那样处理每一个子控制器,即一次只允许一个子控制器的一个请求通过。 NO
Interleave across threads 该设置表示,交错控制器在每个循环迭代时将交替地执行每个子控制器,例如一个测试计划具有4个线程和3个子控制器,第一次迭代时,线程1将运行控制器1,线程2运行控制器2,线程3运行控制器3,线程4运行控制器1,以此类推。 NO
迭代次数 发送请求
1 News Page
1 Log Page
2 FAQ Page
2 Log Page
3 Gump Page
3 Log Page
4 News Page(再次从第一个请求开始发送)
4 Log Page
5 FAQ Page
5 Log Page

完整测试计划查看InterleaveTestPlan.jmx

Random Controller(随机控制器)


随机逻辑控制器的作用与交替控制器类似,只是它不是按顺序执行其子控制器和采样器,而是在每次执行时随机选取一个。

多个控制器之间的交互可以产生复杂的行为。随机控制器尤其如此。

Attribute Description Required
Name 控制器名称 NO
ignore sub-controller blocks 该设置表示,交替控制器会像处理单个请求那样处理每一个子控制器,即一次只允许一个子控制器的一个请求通过。 NO

Random Order Controller(随机顺序控制器)


随机顺序控制器很像一个简单的控制器,它最多执行每个子元素一次,但是执行顺序却是随机的。

Throughput Controller(吞吐量控制器)


吞吐量控制器是最常用的控制器之一,可以允许用户控制它的执行频率。有两种模式:

与Once Only Controller一样,当父循环控制器重新启动时,此设置将重置。

注意,此控制器的名称不准确,因为它不控制吞吐量。请参阅可用于调整吞吐量的Constant Throughput Timer

当与其他控制器结合时,吞吐量控制器可以产生非常复杂的行为,特别是以交替或随机控制器作为父控制器使用。

Attribute Description Required
Name 控制器名称 NO
Execution Style 执行模式,按百分比还是次数执行 YES
Throughput 一个数字。对于百分比模式,是0-100之间的一个数字(可以是小数),表示控制器将按多少比例执行一定的次数。对于执行次数模式,该数字表示控制器将执行的总次数。 YES
Per User 该设置表示控制器执行次数是否考虑每个用户(每个线程)。如果未设置该项,则计算将是所有用户的全局计算。例如,如果使用Total模式,并且不设置Per User,那么吞吐量给定的数字将是执行的总数。如果设置Per User,那么执行的总数将是用户数乘以吞吐量的给定数。 NO
上一篇 下一篇

猜你喜欢

热点阅读