JMeter定时器之同步定时器

JMeter定时器之同步定时器

1. 背景

在实际生活中大家肯定遇到过一种场景,就是在某一时间或某一时刻,某件商品进行抢购,相当于秒杀;但是用JMeter进行测试的时候,如何模拟这种场景?用一种组件就可以实现,定时器中的"同步定时器"。

2. 目的

  • 了解t同步定时器的基础功能;熟悉同步定时器的使用场景。
  • 学会使用同步定时器组件。

3. 介绍

官网解释: 同步定时器的目的是阻塞下称,直到X个线程被阻塞,然后立即释放。因此,同步定时器可以在各种情况下创建较大的瞬时负载。

界面显示: 如下所示。

属性 描述 必填
名称 树中显示此计时器的描述性名称
要分组的并发用户数 一次释放的线程数,设置为0等效于将其设置为线程中的线程数 是的
超时时间(单位是毫秒) 1、如果设置成0,计时器将等待线程数达到"要分组的并发用户"中的值。 2、如果大于0,则计数器将以最大"超时时间(单位是毫秒)"等待线程。 3、如果在超时时间间隔后未达到等待的用户数,计时器将停止等待。 4、默认值为0。
[#### 参数解释]

注意:

  • 如果超时时间设置为0,并且线程数永远不会达到"要分组的并发数",则Test将无限停止,只有强制停止才能阻止他。这种情况,将超时时间设置成一个合理的值是需要考虑的。
  • 仅在一个JVM内同步定时器模块,因为如果使用分布式测试,请确保永远不会将"并发用户数"设置高于用户数的值,其包含的线程组只考虑一个注入器。

4. 例子

验证同步定时器,作用,准备如下测试场景

4.1单个请求

|----|---------|---------|------|-----------------------------------------------------------------------------------------------------------|
| 序号 | 线程数(30) | 定时器等待线程 | 超时时间 | 预期结果 |
| 1 | 30 | 30 | 0 | 用户等待达到30个用户,同时并发发起请求 |
| 2 | 30 | 20 | 100 | 1、刚好超时100ms,且用户等待达到20个用户,同时并发发起请求。 2、等到20个用户,未超时,继续等到结束,再并发,这时用户数将大于30。 3、等到小于20个用户,又超过超时时间,等到的用户数可以小于30。 |
| 3 | 30 | 40 | 0 | 用户无法达到40个用户,线程会一直等待,不会停止。 |
| 4 | 30 | 0 | 0 | 定时器设置的用户等于线程组的用户,超时默认设置为0,用户同时并发。 |
[##### 测试场景]

  • 序号是1,设置如上边参数,测试结果如下所示。
  • 序号是4,设置如上边参数,测试结果如下所示。

4.2多个请求

背景: 当线程组中有多个请求,怎么实现不同请求的不同并发操作呢?

解决方案: 例如单个线程组下有两个请求,给每个请求增加同步定时器,每个定时器设置不同的并发数。

重点:线程数的参数 > 定时器的等待线程数。

|----|--------|----------|----------|------|-----------------------------------------------------------------|
| 序号 | 线程数(8) | 定时器等待线程1 | 定时器等待线程2 | 超时时间 | 预期结果 |
| 1 | 8 | 2 | 4 | 0 | 1、定时器等待线程1,总请求次数,8次,每次2个同时并发请求。 2、定时器等待线程2,总请求次数,8次,每次4个同时并发请求。 |
[##### 测试场景]

测试结果:

相关推荐
古人诚不我欺9 小时前
jmeter常用配置元件介绍总结之分布式压测
分布式·jmeter
綦枫Maple16 小时前
Jmeter基础篇(22)服务器性能监测工具Nmon的使用
运维·服务器·jmeter·性能监控·nmon
古人诚不我欺17 小时前
jmeter常用配置元件介绍总结之线程组
java·开发语言·jmeter
惜.己17 小时前
Jmeter中的监听器(一)
测试工具·jmeter·1024程序员节
我非夏日1 天前
JMeter进阶篇
jmeter
惜.己1 天前
Jmeter中的配置原件(三)
功能测试·测试工具·jmeter·1024程序员节
綦枫Maple1 天前
Jmeter基础篇(23)TPS和QPS的异同
数据库·jmeter·oracle
惜.己1 天前
Jmeter中的配置原件(二)
测试工具·jmeter·1024程序员节
我非夏日1 天前
JMeter项目实战
jmeter
川石课堂软件测试1 天前
性能测试|JMeter接口与性能测试项目
javascript·数据库·python·jmeter·单元测试