jmeter控制器

1.简单控制器

  • 作用:分组
  • 对 Jmeter 测试运行没有任何影响,可以将某些请求归集在一个简单控制器中,视为一个模块,使得脚本结构更清晰

2.随机控制器

控制器随机选取一个请求执行

3.随机顺序控制器

  • 每个请求执行一次,但是执行顺序是随机的

 4.循环控制器

  • 作用:该控制器下的请求可以循环运行
  • 设置如下,循环次数10:
  •  结果:循环请求10次

 备注

  • 循环次数:  在输入框中输入需要循环的次数
  • 永远:如果勾选该项,那么控制器下的请求可一直运行

5.仅一次控制器

作用:针对循环次数生效,对并发数(线程组数)不生效

  • 设定线程数1,循环次数10次,执行1次,仅一次控制器生效
  1. 设置如下:
  2. 结果:执行请求一次
  • 设定线程数10,循环次数1次,如下截图执行10次,仅一次控制器不生效
  1. 设置如下
  2.  执行请求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控制器

使用方法:

  1. While控制器判断条件 默认/不填 ,最后一个示例循环失败时退出循环
  2. While控制器判断条件 LAST ,最后一个示例循环失败时退出循环      
  3. While控制器判断条件 LAST,如果之前的一个请求失败,不进入whlie控制循环。
  4.  实际例子
    (1)最后一个请求填写后置处理器,login随机赋值1,2,3

          (2)判断条件设置如下:             

        (3)运行如下,随机数为2时退出循环

 



posted @ 2023-06-17 15:37  向向vlog  阅读(2151)  评论(0编辑  收藏  举报