Jmeter-阶梯式压测Concurrency Thread Group

简介: Jmeter-阶梯式压测Concurrency Thread Group

在性能测试中经常提到并发,但是实际上很少会有同时很多请求的,如果一下子就来很多的请求,服务器很快就会被压垮。都是在逐渐增加,然后达到一个预期值,再持续运行一段时间,其实阿里云的PTS配置压测策略也有这种的。

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

在jmeter中有插件可以帮助我们实现这种场景。(推荐使用新版的bzm - Concurrency Thread Group)

1.Stepping Thread Group

通过插件管理器下载插件Custom Thread Groups即可,点击了Apply后就等待安装,安装后jmeter会自动重启的。

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.pngThis group will start N threads:设置线程组启动的线程总数为N个;First,wait for N seconds:启动第一个线程之前,需要等待N秒;Then start N threads:设置最开始时启动N个线程;ZNext,add X threads every Y seconds,using ramXp-up Z seconds:每隔Y秒,启动X个线程,在Z秒内启动X个线程;Then hold load for N seconds:启动的线程总数达到最大值之后,再持续运行N秒;Finally,stop X threads every Y seconds:每Y秒停止X个线程;

2.Concurrency Thread Group

测试计划右键添加线程组->bzm - Concurrency Thread Group

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.pngTarget Concurrency: 预期客户端最大并发线程数为100Ramp Up Time(min): 在1min内启动100个线程Ramp-up Steps Count: 在上述时间内,分5次启动Hold Target Rate Time (min): 达到目标并发线程数100后,再并发运行30秒Thread Iterations Limit:线程迭代次数限制,即循环次数(空,即为一次)(无特殊情况,建议不设置该选项的值)Log Threads Status into File:将线程状态记录到文件中

3.Ultimate Thread Group

测试计划右键添加->线程组->jp@gc - Ultimate Thread Group

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.pngStart Threads Count:当前行启动的线程总数Initial Delay/sec:延时启动当前行的线程,单位:秒Startup Time/sec:启动当前行所有线程达峰值所需时间,单位:秒Hold Load For/sec:当前行线程达到峰值后的稳定加载时间,单位:秒Shutdown Time:停止当前行所有线程所需时间,单位:秒

上图含义:

第一个线程:没有延时,在30秒内启动100个线程数,到达100个后稳定运行60秒后,在再10秒内结束100个线程数。第二、第三行同理。

[mark]需要注意的是如果设置多行其实运行时是一起运行的,并不是第一行设置的结束了再进行第二行,点击开始后,立马启动第一行设置的线程,启动2秒后,第二行和第三行的线程开始启动(此时第一行设置的线程数也是在启动中,同步进行的)[/mark]

三.查看结果

以上阶梯式压测可以添加 jp@gc - Active Threads Over Time 察看具体请求结果图(需要安装插件3 Basic graphs)

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

 

总体来讲:普通的压测,线程产生的方式是固定的,通过计算得出每秒产生X个线程(在线程中配置的,线程数10,5秒,循环2次;这样计算出来就是每0.5s产生一个线程,共计循环2次),每个线程从请求发出,到服务端处理再返回接收,这样一个线程的完整生命周期就结束了,后面就没他啥事了。而阶梯式压测能保证活跃的线程数在一个数值,当一个线程结束时为了保持活跃度,jmeter会立马再产生一个新的线程来运行,维护活跃的线程数,具体的线程产生间隔时间是根据实际运行状态来决定的,旧的线程结束的快,新的产生就产生得快,因此间隔时间没有固定值(而普通的压测间隔时间就是固定的值)。阶梯式压测可以控制的是在一段时间内的线程数,所以可能相同配置每次阶梯式压测,总的线程数都是不一样的,测出来的结果也是不同的。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
1月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
264 23
|
1月前
|
Rust Java 测试技术
还在用 Jmeter 做压测?试试 oha 吧!你会毫不犹豫的爱上它!
在 Web 服务与 API 性能测试中,选择合适的工具至关重要。本文介绍基于 Rust 的高效性能测试工具 **OHA**,并与经典工具 **JMeter** 对比。OHA 以其高性能、低资源占用和简洁易用的特点脱颖而出,适合高并发场景下的快速测试。而 JMeter 功能丰富、支持多协议,适合复杂测试需求。两者各有优势,选择需根据具体场景决定。OHA 安装简单,命令行操作便捷,是性能测试的新利器。
74 0
还在用 Jmeter 做压测?试试 oha 吧!你会毫不犹豫的爱上它!
|
9月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
311 3
|
10月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
279 2
|
8月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
315 3
|
8月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
201 1
|
10月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
314 10
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
9月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
211 4
|
10月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【9月更文挑战第10天】随着软件应用的不断扩展,性能测试成为确保系统稳定运行的关键环节。本文通过对比Apache JMeter和Locust,探讨了如何在Python环境中利用这两款工具挖掘更多性能测试潜力。JMeter是一款成熟且功能强大的开源工具,支持多种协议,适用于各种应用的测试;而Locust则基于Python,通过简单脚本模拟HTTP请求,更适合Web应用测试。
236 3
|
10月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【9月更文挑战第5天】性能测试是确保应用在高负载下稳定运行的关键。本文介绍Apache JMeter和Locust两款常用性能测试工具,帮助识别并解决性能瓶颈。JMeter适用于测试静态和动态资源,而Locust则通过Python脚本模拟HTTP请求。文章详细讲解了安装、配置及使用方法,并提供了实战案例,帮助你掌握性能测试技巧,提升应用性能。通过分析测试结果、模拟并发、检查资源使用情况及代码优化,确保应用在高并发环境下表现优异。
172 5