Jmeter线程组之jp@gc - Ultimate Thread Group

文章来源:
https://zhuanlan.zhihu.com/p/123244380
https://mp.weixin.qq.com/s/cn9jvKSK5rfZdis0iLTgsg
https://blog.csdn.net/sinat_32434273/article/details/81119516
https://segmentfault.com/a/1190000022499363

这个线程就比较难以理解,但是功能也比较强大。它可以对负载中的线程组进行复杂的管理。通过在线程计划中具有无限数量的行来完成此操作,这可以为线程组的不同部分启用不同的配置。该插件跟Stepping Thread Group线程组有些类似,不过这个是多个线程组设置的结合。执行的时候,每个线程组是同时按照自己的规则开始执行的,每一时刻,得到的结果都是两个线程组的叠加。

形象比喻:

并发的用户就像浪花一波一波的不断涌入系统,拍打服务器,考验我们的系统能否顶住压力并平稳运行

我们的网站正在平稳运行的时候,突然有一波1000用户同时访问,我们称之为第一浪潮。访问了30s之后,第一浪潮在15s内逐渐退出系统。

在第一浪潮退出系统的同时,第二波2000用户在极短时间内又突然涌入网站,我们称之为第二浪潮。在访问30s之后,第二浪潮在15s内也逐渐退出了系统。

在第二浪潮退出系统的同时,第三波3000用户又突然涌入网站,我们称之为第三浪潮。在访问30s之后,第三浪潮在15s内也逐渐退出了系统。

在第三浪潮退出系统的同时,第四波1000用户又突然涌入网站,我们称之为第四浪潮。在访问30s之后,第四浪潮在15s内也逐渐退出了系统。

具体场景

Jmeter线程组之jp@gc - Ultimate Thread Group_第1张图片
第一个任务:10个线程在10秒内启动,持续运行1800秒,然后在10秒内结束运行;

第二个任务:10个线程在第620秒的时候在10秒内启动完成,并运行1200秒,然后在10秒内结束运行;

第三个任务:10个线程在第1240秒的时候在10秒内启动完成,运行600秒之后在10秒内结束运行;

以此组成一个浪涌场景,30个线程分三次启动,也即一个稳定性测试场景。线程任务场景如下图所示。

参数:

  • start threads count:目标并发数

  • initial delay:启动延迟时间

  • startup time:启动目标线程所需时间

  • hold load for:以目标线程并发持续加压时间

  • shutdown time:结束当前线程时间

实例

  1. 需求:要求此接口用户的访问量“分波式”访问,每个时期、每波都有不同用户量访问,每波的用户访问量呈现出递增然后逐次递减的状态,单波用户量最大并发不可超过70。
  2. 分析:根据需求实现具体场景,可得出普通线程组并不能实现,普通线程组一般实现为“直线式”的需求场景(配合其他元件实现略不同),那么此时Ultimate
    Thread Group线程组便可为之实现:
  3. 步骤:
  • 第一步:根据需求场景“每个时期、每波都有不同用户量访问”现设置添加多Row,每Row的Start Threads Count(开始线程计数),初始用户的数量为:10、30、50、70、50、30、10,此时每波用户访问量递增→递减和单波用户不可超过70的需求配合关闭时间已经满足。

  • 第二步:每Row的Initial Delay,sec(延迟启动时间,单位秒)设置每时间间隔5s:0s、5s、10s、15s、20s、25s、30s,这样是为了满足不同组的启动延迟时间,若每个线程组不同的用户都在同一时间节点启动那不是递增式并发,那是同步式并发。

  • 第三步:每Row的Startup Time,sec(启动时间),意指每个线程组的线程在多少s内全部启动,目前设置为1s,即是每组线程组的线程数从启动开始到启动结束话费时长为1秒。

  • 第四步:每Row的Hold Load For,sec(持续运行),意指每个线程组的线程在启动达到设置的线程数后持续运行多长时间,单位秒。此时需求每组线程运行后达到顶峰后呈现出“递减”状态,所以持续运行时间应该也是设置为递减:30、25、20、15、10、5、0(单位s)。

  • 第五步:Shutwn Time(关闭时间),这个可配合上面四个可设置:0、5、10、15、10、5、0。这样是为了满足“每波用户访问量递增→递减”的需求

好啦主功能配置已经完成,看下具体线程组效果图:
Jmeter线程组之jp@gc - Ultimate Thread Group_第2张图片
此时,运行后为了确保线程组的变化运行轨迹,添加一个Active Threads Over Time用来查看随时间变化的活动线程:(添加路径:线程组→添加→监听器→jp@gc - Active Threads Over Time)
Jmeter线程组之jp@gc - Ultimate Thread Group_第3张图片
最后,即可添加察看结果树、聚合报告、响应时间图等分析此接口的接口各个返回指标等:
Jmeter线程组之jp@gc - Ultimate Thread Group_第4张图片
Ultimate Thread Group(最终线程组)实现原理:TA跟Stepping Thread Group线程组有些类似,不过这个是多个线程组设置的结合。执行的时候,每个线程组是同时按照自己的规则开始执行的,每一时刻,得到的结果都是两个线程组的叠加。

你可能感兴趣的:(#,线程组)