Jmeter 逻辑控制器

1、ForEach 控制器

  • 该逻辑控制器主要用于多个读取自定义变量值
  • 添加 --> 配置元件 --> 用户自定义变量,定义变量主要命名格式:变量名 + 下划线 + 数字 (从1开始计数),之所以这样命名是为了满足以后 ForEach 控制器提取数据

编辑 ForEach 控制器如下图中:

  • 变量前缀:就是刚才我们定义用户自定义变量下划线前面的字符串
  • 取值范围: 从 start index 位置开始取值,到 end index 位置结束(不包含 end index 位置的值)
  • 输出变量名称:我们将每一次得到的用户自定义变量 user 存储到参数 for_user 中

2、if controller

  • 类似于 if 语句,根据给定表达式的条件决定是否执行该节点下请求

3、交替控制器

  • 根据线程组中的循环次数来设定子节点中的取样器执行

(1)当线程数循环次数设为1且控制器下有3个取样器时,结果如下:

  • 结果仅只运行了第一个取样器

(2)当线程数循环次数设为3且控制器下有3个取样器时,结果如下:

  • 结果3个取样器,每个都运行了1次

4、循环控制器

  • 控制子节点的循环次数

如下所示:

  • 线程组中只设置循环1次,但是循环控制器中设置了2次,输出的结果为两次

5、仅一次控制器(Once Only Controller)

  • 是为了让 Test Plan 中的某些内容在整个 Test Plan 的执行期间对每个线程仅执行一次(例如,每个线程仅需要进行一次"登录"操作)

 如下所示:

  • 虽然线程组中设置了循环次数为3次,但是添加仅一次控制器后,输出的结果则每个取样器输出一次

6、随机控制器

  • 每次执行时,随机从字节点中随机选取一个来执行

如下所示:

  • 线程组中设置循环3次,但是添加随机控制器后,输出的结果是随机从子节点中随机执行了3个线程数

7、随机顺序控制器

  • 每次执行时,按照随机产生的顺序执行其下的所有子节点。
  • 注意:该控制器与随机控制器的不同之处在于,随机控制器只选择执行其所有子节点中的一个,而随机顺序控制器则按照随机顺序全部执行该控制器下的所有子节点

如下所示:

  • 线程数设置循环1次,添加随机顺序控制器后,结果为子节点下的所有取样器都会执行一次,但是执行顺序是随机的

8、Switch Controller

  • Switch 控制器,类似程序语言中的 switch 函数,该控制器根据给定的值 N (可以使用参数选择执行其下的第 N + 1 个子节点,需要注意的是,switch控制器只接受整数值,并且给定的值 N 是以 0 为基础的,因此当给定的值为 2 时,意味着该控制器下的第 3 个子节点会被执行,同时该控制器接受参数作为其值)

 如下所示:

  • 线程组设置循环2次添加 Switch Controller 控制器后,并设置 switch value 值后结果只对 witch value 值+1的取样器执行了两遍

9、事务控制器

  • 事务控制器会生成一个额外的采样器来测量其下测试元素的总体时间
  • 注意:这个时间包含了该控制器范围内的所有时间,而不仅仅是采样器的

(1)未勾选 Generate parent sample 选项时对应的结果如下,结果中包含了每个取样器的数据

(2)勾选 Generate parent sample 选项后对应的结果如下,结果中仅包含了事务的数据

  

原文地址:https://www.cnblogs.com/ZhengYing0813/p/11695731.html