17.JMeter定时器


目录

1、集合点概念【Timer】

2、固定定时器【Constant Timer】

3、同步定时器【Synchronizing Timer】

4、定时器生效的范围

5、统一随机定时器

6、常数吞吐量定时器


  • 功能作用:

    • 定时器主要作用于线程延迟,用来达到业务上更真实的场景模拟
    • 底层采用Thread.sleep(毫秒数)来实现

  • 执行顺序:

    • ①、配置元件优先执行
    • ②、按深度优先算法,依次寻找取样器,找到取样器后,逐个执行,遵循下面的第③条规则

    • ③、组件执行的顺序:前置处理器 ---> 定时器 ---> 取样器 ---> 后置处理器 ---> 断言 ---> 监听器

    • ④、同一个取样器有多个定时器组合时,在范围内按照广度优先策略依次执行

    • ⑤、定时器无子元素


1、集合点概念【Timer】

  • 集合点

    • 集合点是LoadRunner里面的概念
    • 性能测试中需要模拟大量用户并发

    • 集合点可以让虚拟用户在同一时刻发送请求

    • 在JMeter中,集合点通过定时器完成

  • JMeter中,定时器控制取样器的执行时机

    • 根据实际需求,有许多的定时器可以选择 
    • 如固定定时器,随机定时器等

  • 定时器

    • 为了真实模拟用户场景负载
    • 可能还需要模拟在什么时候以什么规律发送请求

    • 定时器还用来设置延迟与同步

      • 定时器的优先级高于取样器
      • 在同一作用域下如果有多个定时器存在,那么每一个定时器都会被执行。

      • 如果想让某一定时器仅对某一个sampler有效,可以将定时器加到此节点下(子节点呗)


2、固定定时器【Constant Timer】

  • 固定值的定时器,用来模拟思考时间

    • 思考时间也是起源于LoadRunner里面的专业术语
  • 固定定时器的特点:

    • 可以让每个线程在请求之前按照相同的指定时间进行停顿
      • 固定定时器的延时不会计入单个sampler的响应时间

        • 为啥,你想,我等那么久才去执行我的sampler,我执行请求的时候,跟我之前的时间有半毛钱关系吗?是不!
      • 但是固定定时器的延时会计入事务控制器的时间

        • 因为它和请求放到一起的,同一个作用域,都在事务控制器之下呗


3、同步定时器【Synchronizing Timer】

  • 在性能测试中需要模拟多用户并发的场景

    • 同步定时器可以实现此需求。
    • 集合点

  • 原理:

    • 通过这个定时器,在某一点阻塞线程,直到那么多个线程被阻塞,然后同时释放
  • Synchronizing Timer可以在测试计划的某个需要的时刻创建较大的即时负载

  • 它就是拿来模拟所有的操作都在同一时间运行的

    • 如果不搞这个处理,你想,有的都跑完了,后面的线程有的才陆陆续续的开始,这样的话就达不到负载的目的
  • 参数:

    • 1)模拟用户组的数量
      • 这个就是要模拟的并发数
      • 或者说要模拟的多少个用户

    • 2)超时时间

      • 这个必须要设置,否则,如果最后一次,达不到这个并发量的话,那么脚本就会停在那里,永远卡住了,不执行【因为永远达不到那个并发,达不到就不运行】
      • 比如设置线程数为100,同步定时器,模拟并发30,那么最后一次,就运行不了了,因为还剩10个线程数,永远达不到30

      • 同时,超时时间不要设置太短,尽量设置大点,否则,会影响集合点本身!没加载完那么多用户就超时了。。。


4、定时器生效的范围

  • 1)定时器如果放线程组外面,那么对线程组里面所有的取样器都生效

  • 2)定时器如果放控制器里面,就是控制器的一级子级,那么它也是对控制器里面的所有的取样器生效的

  • 3)如果你只想让这个定时器,只针对具体的一个取样器生效,那么请把它作为那个取样器的子级,就是放到取样器的里面,这样就OK了


5、统一随机定时器

  • 可以对sampler请求前做随机时间的延迟

  • 它的总延迟时间是下面两个参数之和【随机延迟时间 + 固定偏移值】

  • Random Delay Maximum:  

    • 暂停的最大随机毫秒数。
  • Constant Delay Offset:  

    • 除了随机延迟之外要暂停的毫秒数。

6、常数吞吐量定时器

  • 这个用得也不是很多,仅仅需要知道有这种方法就可以了

  • Const Throughput Timer

  • 当有需求,要以xx的吞吐量(多少QPS)来运行的时候,可以使用这个定时器

    • 然后你就可以设置线程组的时候,可以持续运行多久,或者不断运行(循环永远),来看效果
    • 然后可以通过聚合报告查看,这个时候,那个吞吐量的值就能保持不变


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值