jmeter组件---线程组

一,安装插件

在安装好JMeter的插件之后,我们可以创建8个不同类型的线程组
在这里插入图片描述

线程组元素。该元素用于定义进度表和负载级别。线程组元素能够处理简单的性能测试。但是,JMeter具有许多出色的线程组扩展,可以帮助我们处理更复杂的场景。

这样的扩展之一是“定制线程组”插件,它使我们能够创建更复杂的负载方案。该插件通过五种出色的线程组类型扩展了JMeter基本线程组功能:步进线程组,终极线程组,并发线程组,到达线程组和自由形式到达线程组。

二,使用简介

1)bzm - Arrivals Thread Group(到达线程组)

乔治Maksimenko介绍:
一个“到达”是线程迭代的一个开始(虚拟用户的一个迭代开始)。

在到达的线程组用于时间表“到达”。“到达”的调度是描述负载的另一种方法。由于“到达”是脚本迭代的开始,因此调度到达就是迭代开始的调度。该自由形式到达线程组类似于抵达线程组有一个主要的区别-调度更加灵活。

bzm - Arrivals Thread Group(到达线程组)非常适合进行更传统的负载测试。可能的情况可能是“当用户在一个小时的时间内每分钟购买10张票时,我们的系统是否运行良好?”。

bzm - Free-Form Arrivals Thread Group(自由格式到达线程组)适用于负载测试,但也适用于诸如Spike测试之类的压力测试方案。可能的情况可能是“在促销开始后的5分钟内,我们的系统能否处理30,000张门票销售?”。
控制请求数案例:

  • Target Rate:目标线程数
  • Ramp Up Time:所需多少加载时间
  • Ramp Up Steps Count:所需多少个加载梯次
  • Hold Target Rate Time:持续运行时间
  • Time Unit:可以选择用分钟还是秒来做单位
  • Thread lterations Limit:线程迭代次数限制。如果我们只需要运行每个用户一次以模拟用户的实际行为,则可能会很有用。在我们的例子中,该字段为空,因此每个用户将运行不确定的迭代,直到调度结束。
  • Log Thread Status into File:将线程状态记录到文件中
  • Concurrency Limit:最大并发数限制。以避免出现内存不足的问题。在我们的例子中是1000,这是一个很大的数字。

举个栗子

创建一个脚本:
在这里插入图片描述
添加了三个监听器:

jp@gc - Active Threads Over Time 查看测试时间段内的活动线程数
jp@gc - Hits per Second 查看每秒点击数
汇总 查看样本数

因为时间因素,设置短一点:
在这里插入图片描述
执行结果:
在这里插入图片描述
在这里插入图片描述

2)bzm - Free-Form Arrivals Thread Group(自由格式到达线程组)

在这里插入图片描述

  • Start Value:起始值
  • End Value:结束值
  • Duration:持续时间
  • Time Unit:可以选择用分钟还是秒来做单位
  • Thread lterations Limit:线程迭代次数限制
  • Log Thread Status into File:将线程状态记录到文件中
  • Concurrency Limit:最大并发数限制

3)jp@gc - Stepping Thread Group(步进线程组)

jp@gc - Stepping Thread Group (deprecated)----阶梯加压,3.1版本
在这里插入图片描述

  • This Group will start 100 threads:这次的测试一共会生成100个线程
  • First , wait for :从点击执行之后,第一个线程多久开始执行。设置为0秒,就是点击执行之后立即执行
  • Then start :初次加载多少个线程,设置为0,表示最开始不加载线程
  • Next add:之后每次加载多少个线程
  • threads every:每一次加载之后的持续时间,图中30,就是每梯次加载之后,运行30秒
  • using ramp-up:每一次梯次加载线程的时间,设置为0,就是每梯次立马加载
  • Then hold load for :线程全部加载完成之后,再运行多久停止。图中60秒,表示100个线程全部启动完毕之后,再持续运行60秒,停止。
  • Finally , stop / threads every :每多久释放多少线程。图中表示为,所有持续负载结束之后,每1秒释放5个线程

图中默认给的含义是:

  1. 本次一共会启动100个线程
  2. 点击立即执行,没有延迟,启始0个线程开始加载
  3. 每5秒加载10个线程,运行30秒,然后再5秒加载10个线程,运行30秒…
  4. 一直到总线程加载到100个,然后100个线程持续运行60秒
  5. 60秒运行结束,每1秒释放5个线程,直到全部线程释放完毕,本次测试结束

结合Active Threads Over Time使用

一般推荐添加Active Threads Over Time监听器,来动态查看线程数和时间的关系图
在这里插入图片描述

4)bzm - Concurrency Thread Group(并发线程组)

bzm - Concurrency Thread Group(并发线程组)是 Stepping Thread Group(步进线程组)的替代方案。

并发线程组提供了更好的用户行为模拟,因为它使您可以更轻松地控制测试的时间,并创建替换线程,以防线程在过程中完成。此外,并发线程组不会预先创建所有线程,因此可以节省内存。

在这里插入图片描述

  • Target Concurrency:目标并发(线程数)
  • Ramp Up Time:加载到设置线程数需要多少时间
  • Ramp-Up Steps Count:加载到设置线程数的过程平均分成多少个梯次
  • Hold Target Rate Time:加载到设置线程数后,再持续加压多少时间
  • Time Unit:时间单位(分钟或者秒)
  • Thread Iterations Limit:线程迭代次数限制(循环次数)
  • Log Threads Status into File:将线程状态记录到文件中(将线程启动和线程停止事件保存为日志文件);

上图中的设置为:

  1. 本次一共会启动100个线程数
  2. 1分钟从0线程数加载到100线程数
  3. 6个梯次加载,就是每6秒加载10个线程(这10个线程没有加载时间,就是下个梯次一时间一到就立马加载了10个)
  4. 100个线程加载完成之后,再持续加压1分钟

5)jp@gc - Ultimate Thread Group(最终线程组)

可以对负载中的线程组进行复杂的管理。通过在线程计划中具有无限数量的行来完成此操作,这可以为线程组的不同部分启用不同的配置。
在这里插入图片描述
根据需要添加任意数量的线程数,并为每行选择延迟,启动时间,保持时间和关闭时间。

  • Start Threads Count:一共要启动的线程数。图中本次测试一共启动100个线程。
  • Initial Delay, sec:最开始延迟时间,单位秒。设置为0,就是点击了立即执行。
  • Startup Time, sec:启动设置的100个线程一共需要的时间,单位秒。图中设置10秒
  • Hold Load For, sec:保持加压时间,单位秒。图中10秒。
  • Shutdown Time:多久时间内全部释放关闭,单位秒。图中10秒。

图中执行结果:
一共是启动了100个线程,总运行时间为30秒
在这里插入图片描述

添加多个线程组形式:

新增第二个线程组,设置为共启动50个线程,0秒延迟启动,启动时间5秒,持续加压时间5秒,释放结束时间5秒
在这里插入图片描述
每个线程组是按照自己设置的规则运行的,每一时刻的结果是两个线程组的叠加展示:
在这里插入图片描述

三,其他组件

全组件介绍

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值