性能测试最佳实践

Posted 自动化测试馆长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试最佳实践相关的知识,希望对你有一定的参考价值。

软件性能故障会影响用户使用软件的体验,导致公司失去客户和收入,并限制了组织的扩展可能性。为了确保软件成功地处理预期的流量,并在用户活动激增时保持稳定,建议将性能测试纳入测试范围,并在开发过程开始时就进行相关类型的性能测试。

下面,将描述软件性能测试过程的关键阶段,以及最佳实践。

一、软件性能测试过程的5个阶段

1. 确定测试目标并选择相关的测试类型

如果你对检查软件在正常情况下和预期流量下的行为感兴趣,就去做负载测试。选择压力测试来检查应用程序在流量大大超过预期负荷时的性能。在测试范围中增加可扩展性测试,以衡量应用程序在更多流量负载下的扩展能力。为了检查软件是否在较长的时间内保持稳定,包括每周7天,每天24小时操作,进行稳定性测试。

2. 阐述和确认用户场景

作为下一步,性能测试工程师应该为关键用户角色设计全面的用户场景。他们应该与BAs、产品所有者和其他项目利益相关者合作,以选择与性能测试最相关的用户角色,并依靠他们来模拟用户行为。例如,在为一个客户验证电子商务解决方案的性能时,先挑出了访客用户、登录用户和老客户等用户角色,并设计了以下场景:登录或注册账户、查看以前的订单、搜索产品目录中的物品、查看产品页面的细节、将产品添加到购物车等。

3. 设计性能测试

然后,性能测试工程师应该为一个应用程序设计性能测试脚本,并创建负载配置文件来测量必要的性能指标。为了全面了解一个应用程序的性能,建议集中测量以下性能KPI:

用户数:可能同时访问软件的用户数量。

响应时间–从第一个字节的数据到达用户手中到最后一个字节被接收的这段时间。

每秒点击量 - 向目标服务器产生的请求数量。

吞吐量 - 每秒测试所需的平均带宽消耗。

每秒错误数。

延迟 - 从向服务器发送请求到收到响应的时间。

4. 为性能测试设置一个环境

你可以在测试或生产环境中运行性能测试。为了做出正确的选择,建议评估潜在停机时间对组织的运营和客户的影响和成本,并将其与测试环境设置的成本进行比较。

不过,还是建议你在测试环境中进行性能测试,因为在生产环境中进行测试会有风险,比如说,真正的应用程序用户将不得不处理较慢的响应和错误。

一个应用程序可能会崩溃。
如果在测试期间产生了许多数据库记录,数据库的响应时间可能会受到影响,甚至在测试结束后的一段时间内。

保持测试环境的隔离也很重要,因为真实的用户活动可能会影响测试结果的准确性,并使其难以确定性能问题的根本原因。

5. 执行性能测试并分析测试结果

测试工程师在选定的环境中运行所设计的测试。如果你选择在生产中运行性能测试,确保性能测试工程师在非工作时间执行测试,这时真正的用户活动是最少的。一旦测试完成,使用确定的性能关键绩效指标来计划性能改进。

最佳实践

1.测试环境应紧密复制生产环境,测试应在与生产相同数量的数据库记录中进行。为了减少建立测试环境的成本和时间,考虑选择基于云的测试环境。这将使你减少基础设施成本,因为你的组织将只为使用基础设施资源的时间付费。

2.应该有足够的网络带宽,因为低带宽可能导致用户请求产生超时错误,从而影响测试结果的准确性。

3.代理服务器应该从网络路径中移除,因为有了代理服务器,客户端将从缓存中获得数据,因此将停止向服务器发送请求。
测试你的软件的性能

4.稳定的软件性能是积极的用户体验的关键,例如,对于电子商务企业来说,尤其关键。因此,检查你的应用程序在预期和峰值负载下是否表现出一致的性能,以及提供扩展的可能性是至关重要的。

粉丝专享

为你们整理了价值100G的软件测试资源:


内容包含:

  • 从0-1规划软件测试学习路径

  • 配套视频教程

  • 职场上常用的测试模板、攻略

  • 软件测试提升电子书

  • 经典面试题

有需要的小伙伴可以点击下方卡片进群免费领取:

以上是关于性能测试最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

性能测试最佳实践

什么是分析和性能测试 python 代码的最佳实践和工具? [复制]

SwingBench 字符模式压测最佳实践

在 Qt/C++ 应用程序中管理测量单位转换的最佳实践

RabbitMQ最佳实践

Hibernate 性能最佳实践?