Jmeter阶梯式压测

 

什么是阶梯式压测?

阶梯式压测,就是对系统的压力呈现阶梯性增加的过程,每个阶段压力值都要增加一个数量值,最终达到一个预期值。然后保持该压力值,持续运行一段时间。实际上,阶梯式压测,是负载测试的一种通用方法。

 

为什么要阶梯式压测?

原因与负载测试是相同的。其目标是测试在一定负载情况下的系统性能,测试系统的不同负载情况下的性能指标。这种方法可以帮助我们,在最初无法预知服务器性能的情况下,迅速的得到一个极限值。在执行中,如果某个阶梯时间内Error率突然增加,那么这个阶段就是服务器的某个极限值。这种方法,要比我们不断地循环“设定并发值->执行->查看结果->调整并发值”这样一个迭代过程要方便的多。

 

Jmeter阶梯式压测方法

首先,安装相关插件,该插件可以在插件管理中找到。插件安装可参考:https://jmeter-plugins.org/downloads/all/ 。我们用到的就是这个Concurrency Thread Group。这个插件替代了之前的一个插件:Stepping Thread Group(已废弃),功能类似,不过使用上要更简单。安装步骤如图:

第一步:打开插件管理器

 

第二步:选择左侧Custom Thread Groups

 

第三步:点击右下的按钮进行安装

 

安装完成后,我们开始创建测试计划,并选择Concurrency 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:将线程状态记录到文件中(保存日志文件);

 

以图中所示为例,首先Time Unit选择的是min(分),输入的数据为:

Target Concurrency: 50

Ramp up Time(min): 1

Ramp-up Steps Count: 5

Hold Target Rate Time(min): 1

Thread Iterations Limit: (空)

此用例场景为 ,在“Ramp up Time(min): ”1分钟的时间内,一共产生目标线程“Target Concurrency: ”50个;并且,分成“Ramp-up Steps Count: ”5个阶段来完成;在目标线程产生结束后,维持该线程生产速度“Hold Target Rate Time(min): ”1分钟;并且循环执行“Thread Iterations Limit: ”1次。over。

图中红色线条显示了单个循环内线程的产生概况,X轴为时间,共2min;Y轴为线程数,最高50条。5个阶梯显示出了线程的阶梯状分布。

现在对某个主页进行压测实验,并发参数就是上面输入的参数。

聚合报告如下:

 

Active Threads Over Time如:

 

从“Active Threads Over Time”这个图里可以清楚看到,并发线程数量呈现出明显的阶梯形状。在不同的时间段内,服务器处在不同的压力级别当中。

那么阶梯式压测与普通的压测有什么区别呢?

先按照普通压测方式执行一次,查看结果。并发数据输入:

 

聚合报告如:

 

Active Threads Over Time如:

 

 

第一点不同,普通的压测方式,并发的线程数是可预知的;而阶梯压测是未知的。

普通压测,只要参数不变,每次结束后,#Samples一定是50x30=1500。而阶梯式压测,每次的并发数是变化的。我们现在依照上面给的参数,再进行2次压测。

第二次阶梯压测的聚合报告如:

 

第三次阶梯压测的聚合报告如:

 

 

第二点不同,”Active Threads Over Time”是不一样的。普通压测,线程只定义了初始产生的时间(50/秒,循环30次),而没有定义后续线程。每个线程在完成了自己的生命周期后,就结束了。而阶梯压测,会保持活跃线程在一个数值上,后续线程会持续产生。因此,在图中会出现不同。

 

可以得知:阶梯压测的方式与普通线程产生的方式是不一样的。

普通的压测方式,线程产生是固定的按照每秒X个线程的方式来产生,只在线程发出端做了限制。而阶梯压测的方式,是根据实际运行情况产生线程。一个线程,从请求发出,到服务器端处理,再到返回结果接收,才算完成一个完整的生命周期。阶梯压测方式,可以控制每个单位时间内的线程数。就像我们在Active Threads Over Time表格中看到的,在一段时间内,活跃的线程数量基本保持不变。可以这样想,当一个线程结束,总线程数-1,为保持活跃度,jmeter会立刻再产生一个线程上来维持数量,此时总线程数+1。

产生线程的间隔时间是根据压测中的实际运行状态来决定的。旧的线程结束的快,新的线程产生的就快。因此,每次阶梯压测的结果,总线程数都不一样,因为每次压测负载机和服务器机的状态都不一样。

 

 

以上,就是对Jmeter工具阶梯压测方式的简单总结。欢迎补充。

 

转载于:https://www.cnblogs.com/xbxblog/p/9702652.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JMeter阶梯式压测是一种逐步增加并发用户数的压测方式,可以更加真实地模拟用户的访问行为,同时也可以有效地避免系统因瞬时高并发而崩溃。 具体操作步骤如下: 1. 在JMeter中创建一个线程组,并设置初始并发用户数和目标并发用户数。 2. 在线程组中添加一个“计数器”元件,用于逐步增加并发用户数。 3. 在线程组中添加一个“定时器”元件,用于控制每个用户的访问时间间隔。 4. 在线程组中添加一个“HTTP请求”元件,用于模拟用户的访问行为。 5. 按照需要,可以添加其他元件,如断言、监听器等。 6. 运行测试,并观察测试结果。 7. 根据测试结果,逐步增加并发用户数,直到达到目标并发用户数为止。 通过阶梯式压测,可以更加真实地模拟用户的访问行为,同时也可以有效地避免系统因瞬时高并发而崩溃。 ### 回答2: JMeter阶梯式压测是一种压力测试的方法,它模拟并逐步增加用户负载,以评估系统的性能和稳定性。 首先,利用JMeter工具配置测试计划,包括目标服务器地址、端口、要测试的接口等。然后,设置线程组并定义所需的用户数量、用户运行时间和线程延迟等参数。 在阶梯式压测中,我们会设置多个不同负载水平的阶段,每个阶段的持续时间可能会有所不同。例如,开始阶段可以设置为10个并发用户,持续时间10秒。接下来的阶段可以是50个并发用户,持续时间30秒。再接下来的阶段可能是100个并发用户,持续时间60秒。每个阶段的用户数量和持续时间可以根据需求进行调整。 当测试开始时,JMeter会模拟指定数量的并发用户,逐步增加用户的数量,直到达到当前阶段的目标负载。然后,系统会在该负载下运行一段时间,以评估系统的性能指标,如响应时间、吞吐量等。完成当前阶段后,JMeter会逐步减少用户数量,并进入下一个阶段进行测试,直到所有阶段都完成。 通过使用阶梯式压测方法,我们可以模拟并评估系统在不同负载条件下的性能表现。这有助于我们了解系统的极限和瓶颈,并优化系统以改进其性能和稳定性。同时,这种方法也可以帮助我们发现系统在不同负载下可能存在的问题,并采取相应措施来解决这些问题。 总之,JMeter阶梯式压测是一种有序、渐进的测试方法,可以帮助我们评估系统的性能和稳定性,以及发现和解决潜在的问题。 ### 回答3: JMeter阶梯式压测是一种测试方法,用于模拟多种负载情况下系统的性能表现。它通过逐步增加并稳定延长负载时间,直到系统达到峰值负载或承载能力极限来进行测试。 这种方法的主要目的是评估系统在不同负载下的性能,并找出系统在负载递增过程中出现的性能瓶颈。在JMeter中,阶梯式压测可以通过使用Ramp-Up Period属性来实现。Ramp-Up Period属性可以控制并发用户数如何递增,从而模拟不同负载情况。 在阶梯式压测中,可以根据实际需求设置不同的并发用户数和递增时间。开始时可以选择一个较低的并发用户数,然后随着时间的推移逐步增加用户数,直到达到目标并发用户数。通过逐步增加负载,可以观察系统的性能指标如响应时间、TPS(每秒事务数)和错误率等是否受到负载的影响。 通过阶梯式压测,可以找出系统在不同负载下的性能瓶颈,并进行相应的优化。例如,当并发用户数递增时,如果系统的响应时间显著增加或错误率升高,那么可能是由于系统在面对更高负载时无法承受压力而导致的。通过这种测试方法,可以确定系统的最大承载能力,并进行性能调优,以确保系统在高负载下的稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值