电商性能测试实战 | JMeter 插件 Ultimate Thread Group 完成梯度递增场景的压测

简介: 电商性能测试实战 | JMeter 插件 Ultimate Thread Group 完成梯度递增场景的压测

前面几篇文章已经介绍完一个电商从注册登录到购物下单的典型场景的 Jmeter压测脚本,具体可参考前期文章:基于电商模式的性能测试(五)-基于Jmeter完成一次日常典型电商场景的压测(下单-支付)。

在实际压测前,我们还需要对场景做适当的调整。

从 ThreadGroup中看,我们的 Thread会在某个时间点同时起多个,而日常场景中我们需要的可能是一个递增的梯度加压的方式。

为了实现梯度递增,我们就需要借助于插件 UltimateThreadGroup

先看下 UltimateThreadGroup插件的面板信息,如下:

  • 参数解释:

  • StartThreadsCount:当前行启动的线程总数
  • InitialDelay/sec:延时启动当前行的线程,单位:秒
  • StartupTime/sec:启动当前行所有线程达峰值所需时间,单位:秒
  • HoldLoadFor/sec:当前行线程达到峰值后的稳定加载时间,单位:秒
  • ShutdownTime:停止当前行所有线程所需时间,单位:秒
  • 文字的描述还是稍显晦涩, UltimateThreadGroup插件有个很好的地方就是下方的图表,它会根据你的设定而展示出趋势图,那么现在我们设定如下参数:
  • StartThreadsCount:100
  • InitialDelay/sec:10秒
  • StartupTime/sec:200秒
  • HoldLoadFor/sec:100秒
  • ShutdownTime:10秒
    从插件的趋势图我们可以看到在延迟10秒后100个线程在200秒时间内逐步从0递增至100,然后持续100秒的时间,最后在10秒的时间内有逐步从100递减到0。
    当然你还可以继续添加 ThreadSchedule,趋势图会帮你绘制出综合的线程运行趋势:

1) 选择插件 UltimateThreadGroup

2)将写好的Jmeter脚本整体移至 UltimateThreadGroup下

3)现在我们需要的场景是:

  • 开始我们需要在60秒的时间内起是10个thread,然后保持运行
  • 接着我们继续在60秒的时间内再起10个thread,然后和开始的10个线程一起保持运行100秒后结束
    具体设置如下:

1)命令启动,实际运行脚本期间会用命令行的方式,减少客户端自身运行性能造成的测试影响

1.$ jmeter

n

t

RegisterLogin

.

jmx

2)在grafana中查看运行数据

从数据中简单的分析,可以看到:

线程数在设定的120秒时间内均匀的从0递增至20

错误率在38分30秒的时候出现剧增,而这个时候的线程数为5,说明在 ActiveUser达到5的时候系统出现了问题造成错误率陡增。

从错误率和响应时间来看,结果较差的接口主要集中在下单流程这块,而首页的响应时间也很大,很可能是因为首页相关的表数据是和订单的表数据有关联的,因而订单的响应时间增加也会造成首页的耗时增加。

  • 插件添加后在如下位置选择

打开后的面板如下:

现在可以设置当平均响应时间大于200ms持续10秒,平均延迟时间大于300ms持续10秒或者错误率大于1%持续5秒时测试停止。

可以看到当我们的响应时间持续10秒超过200ms时,测试自动停止了。

总结

客户端方面的电商压测实战学习暂时到这里了,后面如果还想继续深入学习就需要关注服务端的指标了,依然可以结合 docker+grafana+prometheus的方式来监控服务端的各项指标进行分析。

更多技术文章

相关文章
|
9月前
|
数据采集 JSON JavaScript
Cypress 插件实战:让测试更稳定,不再“偶尔掉链子”
本文分享如何通过自定义Cypress插件解决测试不稳定的痛点。插件可实现智能等待、数据预处理等能力,替代传统硬性等待,有效减少偶发性失败,提升测试效率和可维护性。文内包含具体实现方法与最佳实践。
|
10月前
|
人工智能 数据可视化 测试技术
Postman 性能测试教程:快速上手 API 压测
本文介绍API上线后因高频调用导致服务器告警,通过Postman与Apifox进行压力测试排查性能瓶颈。对比两款工具在批量请求、断言验证、可视化报告等方面的优劣,探讨API性能优化策略及行业未来发展方向。
Postman 性能测试教程:快速上手 API 压测
|
10月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
11月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
11月前
|
存储 人工智能 算法
AI测试平台实战:深入解析自动化评分和多模型对比评测
在AI技术迅猛发展的今天,测试工程师面临着如何高效评估大模型性能的全新挑战。本文将深入探讨AI测试平台中自动化评分与多模型对比评测的关键技术与实践方法,为测试工程师提供可落地的解决方案。
|
9月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
11月前
|
人工智能 缓存 测试技术
Playwright进阶指南 (6) | 自动化测试实战
2025企业级测试解决方案全面解析:从单元测试到千级并发,构建高可用测试体系。结合Playwright智能工具,解决传统测试维护成本高、环境依赖强、执行效率低等痛点,提升测试成功率,内容从测试架构设计、电商系统实战框架、高级测试策略、Docker化部署、CI/CD集成及AI测试应用,助力测试工程师掌握前沿技术,打造高效稳定的测试流程。
Playwright进阶指南 (6) | 自动化测试实战
|
10月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
1185 11
|
10月前
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
11月前
|
算法 测试技术 API
从自学到实战:一位测试工程师的成长之路
在技术快速发展的今天,自动化测试已成为提升职场竞争力的关键技能。本文讲述了一位测试工程师从自学到实战的成长之路,分享他在学习UI、APP和API自动化过程中遇到的挑战,以及如何通过实际项目磨炼技术、突破瓶颈。他从最初自学的迷茫,到实战中发现问题、解决问题,再到得到导师指导,逐步掌握测试开发的核心思维,并向测试平台建设方向迈进。文章总结了他从理论到实践、从执行到思考的转变经验,强调了实战、导师指导和技术服务于业务的重要性。最后,邀请读者分享自己的技术突破故事,共同交流成长。