浅析性能测试策略及适用场景

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 面对日益复杂的业务场景和不同的系统架构,前期的需求分析和准备工作,需要耗费很多的时间。而不同的测试策略,也对我们的测试结果是否符合预期目标至关重要。这篇文章,聊聊我个人对常见的性能测试策略的理解,以及它们的适用场景。。。

面对日益复杂的业务场景和不同的系统架构,前期的需求分析和准备工作,需要耗费很多的时间。而不同的测试策略,也对我们的测试结果是否符合预期目标至关重要。这篇文章,聊聊我个人对常见的性能测试策略的理解,以及它们的适用场景。

 

一、常见的测试策略


性能测试实施过程中,针对不同的业务场景,我们经过分析和场景建模后,会选择不同的测试策略。下面的十种测试策略,覆盖了绝大多数的场景。


1、并发测试


模拟客户端请求,在单位时间内(S)同时发起一定量的请求,验证系统是否具有并发性的问题。


PS:不要无脑高并发!!!


2、负载测试


不断增加请求压力,直到服务器某个资源项达到饱和(比如CPU使用率达到90%+)或某个指标达到安全临界值(比如运维的监控告警阈值or拐点);


负载测试(也叫阶梯式压测)一般主要用来寻找性能的拐点,验证系统在既有测试环境不同的请求压力下能否正常运行。示例如下:


640.jpg


3、容量测试


采用负载测试策略,验证在现有测试环境下被测系统的最大性能表现(可接受的最大性能表现,不一定是最优性能表现)。


4、极限测试


在既有测试环境下,不考虑资源占用率的极限情况(CPU使用率达到95%以上或IO异常繁忙或Load值较高),在系统不宕机的情况下的最大处理能力。


PS:由于被测系统的业务场景各不相同,这种策略,采用率相对较少。


5、配置测试


不断调整系统各方面的配置(软硬件、参数配置等),验证在性能达到最优时(最优的性能一定是权衡各方面因素找到的平衡点)的最佳配置。


6、浪涌测试


验证系统在某段时间内并发突增或请求量波动较大的情况下,系统能否正常稳定的提供服务。


PS:这种测试策略使用的也相对较少,主要针对不确定性的短期的峰值流量涌入场景(比如某微博的离婚、恋爱、分手话题)。


7、稳定性测试


以恒定的并发数(根据负载测试的结果,CPU使用率在70%时对应的并发数),验证系统在混合场景下的性能表现。


8、批处理测试


验证待测系统在既有环境下,系统的批处理(一般都是一个crontab或者触发式的job)业务能力能否满足生产的业务需求指标。


9、高可用测试


在集群多节点或分布式的情况下,破坏其中一个或多个集群节点,验证系统能否及时恢复服务能力。


10、容错恢复测试


验证系统能否在出现故障的情况下仍能保持正常提供服务的能力或出现故障后的自我恢复能力。比如下面这张图:


640.jpg


a1面积越大,说明系统的处理能力越强;a2面积越大,说明系统稳定性越好;a3面积越大,说明系统的容错能力越好(啧啧,图有点丑。。。)


之前有手动画了好几个性能模型图,找不到了,尴尬。。。

 

二、适用场景


以上十种测试策略,根据适用的业务&测试场景、采用该策略的目的以及场景出现频次来划分,仅供参考。


640.jpg

 

三、经验之谈


1、中小型团队:常规的测试策略选型:并发、负载、容量、配置、批处理、稳定性、高可用策略,可以覆盖绝大部分需求。


2、电商类业务:高并发、高可用、稳定性,是重中之重。


3、业务场景:很多时候一个性能需求包含好几个业务场景,但并发、负载、容量、稳定性,建议都采用。


4、需求场景:需求分析和场景建模做不好,测试结果往往偏差很大。


5、压测环境:环境的调研选型,建议和生产环境等配置最小化部署,这是成本和结果精准度的平衡。


6、测试数据:无论是数据量还是数据的有效性以及热点数据的覆盖率,都决定了测试结果的可参考价值。


7、技术建设:基础架构(包括环境、服务部署、详尽的监控体系、问题处理流程)的完备,才能让性能测试左移。


8、文档建设:一定要重视文档建设和数据留存,这样可以避免很多不必要的麻烦和重复性工作。


9、平台化:平台的作用是对流程的规范以及多人协同工作的效率整合,不要过度追求平台化(但一定要有技术规划和方案准备)。


10、不要无脑高并发!!!

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
30天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
93 8
|
2月前
|
测试技术 持续交付 UED
软件测试的艺术:确保质量的实战策略
在软件开发的舞台上,测试是那把确保每个功能如交响乐般和谐奏响的指挥棒。本文将深入探讨软件测试的重要性、基本类型以及如何设计高效的测试策略。我们将通过一个实际的代码示例,展示如何运用这些策略来提升软件质量和用户体验。
|
1月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
1月前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
61 1
|
2月前
|
敏捷开发 人工智能 Devops
探索自动化测试的高效策略与实践###
当今软件开发生命周期中,自动化测试已成为提升效率、保障质量的关键工具。本文深入剖析了自动化测试的核心价值,探讨了一系列高效策略,包括选择合适的自动化框架、设计可维护的测试脚本、集成持续集成/持续部署(CI/CD)流程,以及有效管理和维护测试用例库。通过具体案例分析,揭示了这些策略在实际应用中的成效,为软件测试人员提供了宝贵的经验分享和实践指导。 ###
|
2月前
|
人工智能 前端开发 测试技术
探索软件测试中的自动化框架选择与优化策略####
本文深入剖析了当前主流的自动化测试框架,通过对比分析各自的优势、局限性及适用场景,为读者提供了一套系统性的选择与优化指南。文章首先概述了自动化测试的重要性及其在软件开发生命周期中的位置,接着逐一探讨了Selenium、Appium、Cypress等热门框架的特点,并通过实际案例展示了如何根据项目需求灵活选用与配置框架,以提升测试效率和质量。最后,文章还分享了若干最佳实践和未来趋势预测,旨在帮助测试工程师更好地应对复杂多变的测试环境。 ####
55 4
|
2月前
|
人工智能 监控 测试技术
探索软件测试中的自动化框架选择与优化策略####
【10月更文挑战第21天】 本文深入剖析了软件测试领域面临的挑战,聚焦于自动化测试框架的选择与优化这一核心议题。不同于传统摘要的概述方式,本文将以一个虚拟案例“X项目”为线索,通过该项目从手动测试困境到自动化转型的成功历程,生动展现如何根据项目特性精准匹配自动化工具(如Selenium、Appium等),并结合CI/CD流程进行深度集成与持续优化,最终实现测试效率与质量的双重飞跃。读者将跟随“X项目”团队的视角,直观感受自动化框架选型的策略性思考及实践中的优化技巧,获得可借鉴的实战经验。 ####
42 0
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
MarS 是微软亚洲研究院推出的金融市场模拟预测引擎,基于生成型基础模型 LMM,支持无风险环境下的交易策略测试、风险管理和市场分析。
31 8
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
|
2月前
|
测试技术 UED 开发者
软件测试的艺术与科学:探索有效的测试策略
在软件开发的宇宙中,测试是一颗璀璨的星辰,它不仅保障着产品的质量,也指引着项目的方向。本文将带你穿梭于测试的银河系,从基础的单元测试到复杂的集成测试,再到全面的系统测试,我们将一探究竟。你会发现,每一个测试阶段都是一次对代码深度和广度的挑战,也是一次对开发者耐心和智慧的考验。准备好了吗?让我们开始这段探索之旅,看看如何通过精心设计的测试案例来确保我们的软件能够在现实世界中稳健运行。