使性能测试现代化:改善应用程序的6个技巧

作者:性能测试   发布时间:2021-11-01

现代性能测试超越负载测试

创建负载自动化、执行负载场景以及通过负载猛烈撞击系统来测试系统的性能是组织在进行性能测试时通常会做的事情。

这种做法导致性能测试 和负载测试 被错误地视为可互换的术语。即使是性能测试专业人员也经常切换这些,这通过仅运行负载自动化和负载测试来延续测试性能的不良传统。

今天,负载测试和负载自动化只是在性能测试实践中需要执行的一些操作。

性能测试包括必须作为一个整体采取的无数实践和行动。负载测试有其一席之地,但首先需要执行其他任务,如下所述。

尽早考虑性能

传统的性能测试方法没有解决性能保证问题,这意味着可能需要执行所有可能的任务来确保性能。

确保良好性能的流程需要在编写第一行代码之前执行任务。其中一些任务在环境中创建机制,包括管道、监控和仪表。

旧策略专注于自动化和前端负载测试,直到软件开发生命周期的后一步,这限制了完成通常负载测试的可用时间。这种做法削弱了性能保证,几乎没有时间进行更正,并在检测到问题时导致巨额成本。如果需要返工或团队必须将有缺陷的软件发布到生产中,将会产生重大影响。

尽早考虑性能,不仅包括基础设施,还包括从需求收集阶段到构建史诗、功能和任务的所有性能影响。围绕性能实施的一切都应该定义在将任何事情标记为完成之前必须通过的指标。

团队必须定义度量,例如单个线程上的响应时间、并发响应、数据库连接/读取的数量、消耗的带宽等。以这种性能为重点,(包括开发人员)将在创建软件之前、期间和之后牢记性能礼仪。
 

开发人员是第一道防线

与软件生命周期和QA实践的旧思维方式相反,开发人员与他们创建的代码相关的QA工作脱节,开发人员必须从一开始就完全参与 QA和性能保证。

旧的思维方式使得识别代码中产生的缺陷变得困难,并允许这些缺陷到达并有时通过 QA、验收和性能测试并投入生产。并且修复使其进入生产的缺陷的成本比早期发现它们要高得多。

现代实践建议为开发人员交付的内容实施规则。一种可能性是在应用程序代码中实现遥测、检测、单元测试和计时器并存储性能测量值。这些操作有助于触发、检测和衡量性能问题,即使在开发阶段也是如此,并且即使在签入任何代码之前,也可以更轻松地识别和报告任何问题。

测量和观察一切

它有助于在软件开发过程中的每个时刻进行应用程序性能测量。一旦开发人员编写代码,团队就应该进行性能测量,这应该持续到生产。

进行这些测量是对旧做法的巨大改变,旧做法通常无法衡量应用程序及其组件的性能。通常,在软件达到测试环境甚至生产阶段之前,没有任何机制到位。在某些情况下,生产中甚至没有任何指标。

即便如此,代码中的性能指标还不够。团队必须使用应用程序性能管理(APM) 系统来补充这些。旧应用程序性能监控系统的演变,这些系统提供更轻量级的代理和无数新功能来监控和管理性能阈值。

团队必须在应用程序在软件生命周期中经过的每个环境中实施APM代理和工具。随着代码从开发环境传递到暂存、测试、分支等,团队将能够以连续的方式观察和衡量性能指标和任何突出的偏差。

在创建测试自动化时让开发人员参与

另一个过时的做法是尝试将代码发布到生产环境之前自动化测试流程。这个问题一般会影响性能自动化和测试自动化。传统上,性能测试人员和 QA 团队经常需要对代码、功能和前端进行逆向工程,以自动化此类代码的测试,这对每项任务都有相当大的影响。

测试人员在很多情况下无法自动化流程,因为软件位被密封、编译或无法访问。在这些情况下,软件将完全未经测试,或者测试人员将不得不手动测试。

为避免这种情况,创建代码的开发人员必须考虑所 使用的测试自动化的性质,并确保可以从这些自动化轻松触发代码。他们可以实现调用方法并创建测试后门、面向测试的 API 以及任何允许自动化测试的机制。

这些机制有多种好处。一方面,为一般 QA 和性能测量(包括负载)创建所需的测试自动化将更容易。另一方面,这将帮助团队将这些测试和验证集成到连续和自动化的流程中,这些流程将接收这些结果作为让代码进入生产的标志。

计划、运行、测量、验证、重复

在传统实践中,测试专业人员过去常常认为性能测试只是在启动前执行一次的单一负载测试,如果有任何变化,每年执行一次。但是现在,解决方案预计会经常更改。性能测试结果在新代码的那一刻或在 sprint 发布之后就过时了,这使得仅一次的性能测试成为无用的实践。

测试将是轻量级且高度自动化的,以便可以安排它们或将它们配置为由代码签入、计划作业或外部事件触发。随着自动化被触发,将不断收到性能测量值,允许实施阈值,自动停止新代码或让它进入生产环境。

然后,自动化即使在生产中也是可重复的,允许测试在应用程序的任何层和环境中运行,以及警报阈值。当实施所有这些阈值时,它们将允许通知和纠正触发器。通过这种方式,将避免必须随时查看所有内容并避免因无所事事的测量而过载。


本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。



沪ICP备07036474号-4 |

沪公网安备 31010702003220号

2015-2021 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.