《全栈性能测试修炼宝典 JMeter实战》—第2章 2.3节性能测试成功与失败要素

简介: 性能测试上手难度比较高,是一门融合测试、开发、运维、需求调研、架构、协调管理等综合技能的学科,掌握一门性能测试工具对于性能测试来说只是万里长征的第一步,没有一定的需求、开发和运维专业能力,往往会吃一些苦头。

本节书摘来自异步社区《全栈性能测试修炼宝典 JMeter实战》一书中的第2章,第2.3节性能测试成功与失败要素,作者ROAD_TESTING软件测试组 组稿 , 陈志勇 , 马利伟 , 万龙,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 性能测试成功与失败要素
性能测试上手难度比较高,是一门融合测试、开发、运维、需求调研、架构、协调管理等综合技能的学科,掌握一门性能测试工具对于性能测试来说只是万里长征的第一步,没有一定的需求、开发和运维专业能力,往往会吃一些苦头。

性能测试有几大难点:

(1)需求分析;

(2)场景设计;

(3)性能诊断调优。

(4)环境搭建和模拟

往往很多性能测试从业者在需求分析方面没有做到位,不能准确地预估用户行为;在场景上不能复现用户操作,无法把需求体现在脚本和场景设计上,无法模拟真实的系统负载;这种状态下做出的性能测试往往结果良好,上线出问题,导致整个项目团队狼狈不堪,整个公司手忙脚乱。

性能诊断调优是一门有效利用和协调硬件软件的“艺术”,从Oracle Exadata诞生之初在软件层面的优化就可以有200倍至10000倍之多。

但是性能诊断和调优是有时间和经济成本的,也是需要全面的IT知识体系的专家或者团队才能比较全面地挖掘出系统的性能问题并给出调优方案。

很多性能测试初学者总觉得性能测试就是写个脚本,弄几台机器应付,出个报告就行了。通常关注并发多少,响应时间多少,能跑通吗等问题认为并发越大,响应时间越快,那性能一定就越好,实际上我们需要对系统进行一系列复杂精密的工作才能开始性能测试执行,经过N次回归,找到瓶颈的具体原因,优化再验证。

下面讲解性能测试重要关注点。

1.评估系统,需求分析
对性能测试进行需求分析,通常情况下我们很多功能测试人员会直接依赖需求人员或者项目经理的口述或者有缺陷的文档。实际上,大多数情况下我们需要自己来引导相关的运维人员和需求人员给出具体的需求数据,并对这些数据进行二次分析,得出我们真实的性能需求。

对于初次上线的系统,我们需要用同行的系统数据,进行用户行为分析和商业数据结构的估算为前提,利用性能估算法推算。得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。

对于已经上线的系统,我们可以通过运维人员获取TPS和时间的比例分布图、用户数和时间的分布图、数据库ER关系图、容量数据等,直接精确得出目前的系统的用户行为和业务数据关系,进而得出我们需要的性能需求。

2.场景设计、用例设计
充足的需求调研与分析之后,我们要在测试场景中尽可能真实地复原系统负载。

通过需要我们要决定哪些功能要参与性能执行,如何参与?这就是用例设计。

如何有效地组织测试用例就是场景要做的事,按业务分布、业务量、业务时段、业务角色来综合分配用户数、执行时间、执行比例等。看似简单,实际操作起来还是比较麻烦的。

3.测试执行、是否通过
模拟不同负载执行测试场景来识别系统弱点:做好各种监控,甄别各种问题;验证系统的稳定性。下面是我们在执行时常见的需要关注的指标,如图2-4所示。


d698ec98a78deeede52fd47ae3aff7c6a6734ef3

4.性能诊断优化
性能诊断知识面要求甚广,系统日益复杂,单打独斗的日子已经远去,依靠团队力量才能够高效完成诊断任务。性能测试从业者要具备良好、敏感的性能意识,能够把遇到的问题初步分类,协助各开发团队完成问题定位、分析调优。所以首先要是一个好的协调者,还是一个技术面广的技术人员,具备跨领域知识,如开发、运维、数据库、缓存等。
相关文章
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
513 4
|
JSON Java 测试技术
面向初学者的JMeter实战手册:从环境搭建到组件解析
Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。
1203 0
|
11月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
1285 0
|
10月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
2066 10
|
监控 测试技术 数据库连接
RunnerGo API 性能测试实战:从问题到解决的全链路剖析
API性能测试是保障软件系统稳定性与用户体验的关键环节。本文详细探讨了使用RunnerGo全栈测试平台进行API性能测试的全流程,涵盖测试计划创建、场景设计、执行分析及优化改进。通过电商平台促销活动的实际案例,展示了如何设置测试目标、选择压测模式并分析结果。针对发现的性能瓶颈,提出了代码优化、数据库调优、服务器资源配置和缓存策略等解决方案。最终,系统性能显著提升,满足高并发需求。持续关注与优化API性能,对系统稳定运行至关重要。
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1615 23
|
10月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
1325 0
|
存储 关系型数据库 测试技术
拯救海量数据:PostgreSQL分区表性能优化实战手册(附压测对比)
本文深入解析PostgreSQL分区表的核心原理与优化策略,涵盖性能痛点、实战案例及压测对比。首先阐述分区表作为继承表+路由规则的逻辑封装,分析分区裁剪失效、全局索引膨胀和VACUUM堆积三大性能杀手,并通过电商订单表崩溃事件说明旧分区维护的重要性。接着提出四维设计法优化分区策略,包括时间范围分区黄金法则与自动化维护体系。同时对比局部索引与全局索引性能,展示后者在特定场景下的优势。进一步探讨并行查询优化、冷热数据分层存储及故障复盘,解决分区锁竞争问题。
1679 2
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。