性能测试教程1简介

2021-02-08  本文已影响0人  python测试开发

性能测试类型

1). 负载测试

测试应用程序在正常和峰值使用时的性能。检查应用程序对用户请求的响应,以及在不同用户负载下在可接受的容许范围内持续响应的能力。

主要的考虑因素有:

2). 压力测试

该测试还提供了系统可以承受的最大负荷范围。

压力测试采用渐进式方法,即逐渐增加负载。测试从应用程序已经测试过的负载开始。然后慢慢地增加更多的负载来给系统施加压力, 服务器对请求没有响应的点被认为是断点。

要解决以下问题。

3). 体积(Volume)测试

验证应用程序的性能是否受到应用程序所处理的数据量的影响。为了执行批量测试,需要将大量的数据输入到数据库中。该测试可以是增量测试或稳定测试。在增量测试中,数据量是逐渐增加的。

一般来说,随着应用的使用,数据库的规模会越来越大,这就需要对应用进行重度数据库的测试。

4). 容量测试

容量测试主要解决以下问题。

容量测试用于确定一个给定的网络应用程序能够支持多少用户和/或事务,并且仍然能够满足性能要求。在这个测试过程中,处理器容量、网络带宽、内存使用量、磁盘容量等资源都会被考虑并改变,以达到目标。

4). 可靠性/恢复性测试

可靠性测试或恢复测试--是验证应用程序在发生故障或异常行为后是否能够恢复到正常状态,以及需要多长时间才能恢复到正常状态(换句话说时间估算)。

如果一个在线交易网站发生了故障,用户在一天中的某个时间点(高峰期)无法买入/卖出股票,但在一两个小时后就能买入/卖出,我们就可以说这个应用是可靠的,或者说从异常行为中恢复过来了。

性能测试流程

  1. 需求分析/收集

性能团队与客户互动,以确定和收集技术和业务需求。这包括获取应用程序的架构、技术、使用的数据库、目标用户、功能、应用程序用途、测试要求、硬件和软件要求等信息。

  1. POC/工具选择

可用工具的列表取决于工具的成本、应用程序使用的协议、用于构建应用程序的技术、我们模拟测试的用户数量等。在POC期间,为确定的关键功能创建脚本,并与10-15个虚拟用户一起执行。

  1. 性能测试计划和设计

进行测试规划和设计。

测试规划包括性能测试如何进行的信息--测试环境、工作负载、硬件等。

  1. 性能测试开发
  1. 性能测试建模

性能负载模型是为测试执行而创建的。这一步的主要目的是验证给定的性能指标(由客户提供)是否在测试中实现。创建负载模型有不同的方法。大多数情况下使用 "Little's Law"。

  1. 测试执行

场景是根据Controller或Performance Center中的Load Model设计的,但初始测试并没有与Load Model中的最大用户一起执行。

测试执行是逐步进行的。例如,如果最大用户数是100个,则先以10个、25个、50个用户等场景运行,最终转为100个用户。

  1. 测试结果分析

测试结果是性能测试人员最重要的成果。这是我们可以证明性能测试工作所能提供的投资回报率(ROI)和生产力的地方。

一些有助于结果分析过程的最佳实践。

  1. 报告

测试结果应该简化,使结论更清晰,不需要任何推导。开发团队需要更多关于分析、结果比较的信息,以及如何获得结果的细节。

测试报告如果能简明扼要、描述性强、切中要害,就可以认为是好报告。

性能测试的最佳实践

尽量确定最常见的工作流程,即必须测试的业务场景。如果应用程序是现有的,那么检查服务器日志,了解最经常访问的场景。如果应用程序是新的,则与项目管理团队讨论以了解主要的业务流程。

计划负载测试的方式,你要覆盖广泛的工作流程,如轻度使用、中度使用和峰值负载。

你需要执行很多周期的Load Test,所以尽量创建一个框架,这样你就可以反复使用相同的脚本。另外,尝试对脚本进行备份。

尝试分析一个测试要运行多长时间,是1小时?8个小时?一天还是一周?通常情况下,长时间的测试会发现很多重大的缺陷,比如操作系统的bug、内存泄露等。

如果你的组织正在使用任何APM(应用程序监控工具),那么你可以在测试运行期间加入它,这样你就可以很容易地发现性能问题,并更容易地找出根本原因。

在开发脚本即录制的时候,尽量根据计划中提到的业务流名称,给出一个更有意义的事务名称。

不要录入任何第三方应用。

压力打到应用程序的后端,而不仅仅是缓存服务器。

确保在类似生产的环境中运行测试,包括SSL、负载均衡器和防火墙等因素。这对于模拟系统的真实负载是必要的。

尽量创建一个非常现实的工作负载,如果是现有的应用程序,你可以通过检查服务器日志来获得,如果是新的应用程序,你需要从业务团队获得这些信息。

千万不要用生产规模一半的环境来运行测试来得出结论,总是建议在与生产环境相同的环境中进行测试。
在执行长期运行的测试时,尽量每隔一段时间就观察运行情况,以确保测试顺利进行。

一个应用程序失败的原因有很多,比如它可能无法响应请求、响应错误代码、你的验证逻辑失败或者响应速度太慢。所以,在得出结论之前,尽量研究一下所有这些问题。

上一篇下一篇

猜你喜欢

热点阅读