可扩展性测试是什么?
什么是可扩展性测试并通过示例学习
系统/应用程序必须能够在过载的情况下完美运行。可扩展性测试的特点是根据不断增长的用户请求、数据量、事务和用户流量来测试系统效率的过程。开发人员确定系统停止响应变化的点,并深入挖掘以找出原因。
可扩展性测试的显着特征
它告诉您应用程序在高负载下的行为方式
它让您了解应用程序在用户体验方面的局限性
它可以帮助您确定服务器的效率和限制
它可以深入了解您的用户在系统/软件/服务器过载期间的体验
可扩展性测试Vs。负载测试
可扩展性和负载测试都属于性能测试的范畴。
可扩展性测试提供有关您的系统在每个级别的最小和最大负载下的行为方式的信息。它考虑了所有级别,例如软件、硬件和数据库。一旦开发人员找到最佳负载,他们就会通过提高系统的可扩展性来修复系统。
同时,负载测试用于测试应用程序如何响应最大级别。它会告诉您超出峰值点,这可能会导致系统崩溃。因此,您的用户将无法再使用该系统。
示例-
假设您想知道有多少用户可以同时使用此应用程序。在进行可扩展性测试后,您会发现您的应用最多可以承载15,000个用户。
现在,您有两种选择可以采取行动-
您可以在达到15,000个用户后减少应用的响应时间
您可以增加RAM大小以容纳更多用户
为什么组织需要进行可扩展性测试
从技术上讲,可扩展性测试允许开发人员发现系统/软件中的缺陷并尽早纠正它们。然而,它带来了更多。
以下是选择可扩展性测试的一些原因
确定用户体验因素
它告诉开发者应用在低、中、重负载下将如何响应,提前采取纠正措施。
通知有关应用程序的限制
它让开发人员根据响应时间、CPU使用率、网络使用率和其他属性了解应用程序的限制。
使公司免于经济损失和声誉受损
严格的可扩展性测试允许开发人员在将其发布到生产环境中之前构建一个健壮且无错误的应用程序。它还有助于在测试阶段及早发现性能问题。在生产环境中解决这些问题将为组织带来巨大的成本。因此,它使组织免于因糟糕的用户体验而造成的经济损失和声誉损害。
在可扩展性测试中测试的属性
可扩展性测试属性是指关于系统/应用程序特性的性能测量过程。
以下是在可扩展性测试中测试的一些关键属性-
响应时间
用户发送请求后,应用程序需要特定时间让服务器响应。用户请求和应用响应之间的时间称为响应时间。开发人员进行此测试以了解应用在最小、阈值和最大负载下响应的时间。它还决定了应用程序的断点。
吞吐量
吞吐量是应用程序在单位时间内可以处理的请求数。对于基于Web的应用程序,吞吐量是根据单位时间内处理的用户请求数来衡量的。同时,对于数据库,吞吐量是通过计算处理的查询数/单位时间来衡量的。
内存使用情况
每当我们使用应用程序时,它都会使用一些内存来访问设备的随机存取存储器,从而使应用程序能够高效运行。应用程序使用的内存量称为“内存使用量”。它通常以字节为单位,例如兆字节、千兆字节和兆兆字节。通过采用更好的编程实践,开发人员可以最大限度地减少应用程序的内存使用量。
CPU使用率
CPU使用率表明应用程序对系统/设备的处理器造成了多大的压力。换句话说,它说明了我们使用应用程序时处理器内核的使用百分比。它的测量单位是兆赫兹。高CPU使用率主要出现在图形丰富、编辑和游戏应用程序中。但是,缺乏适当的编码也会使应用程序消耗高CPU利用率。
网络使用
网络使用测试通知开发人员有关应用程序的带宽消耗。这里的目标是限制网络使用以减少网络拥塞。开发人员可以使用压缩技术来最小化网络使用。
事务响应时间
事务响应时间定义了应用程序完成事务或业务流程所需的时间。它允许开发人员在性能测试过程中发现瓶颈。
除了上述这些,可扩展性测试还包括一些较少使用的属性,例如重启时间、会话时间、每秒事务数、网页加载时间、任务执行时间等等。
可扩展性测试的测试策略
测试策略是描述软件测试过程的系统过程的大纲。它通常根据您需要测试的应用程序类型而有所不同。
例如,如果您的应用程序带有数据库,则您的测试参数应关注在数据库崩溃之前用户可以访问多少数据库。同样,对于电子商务应用程序,参数应该是测试服务器的平均交易时间与并发用户数。
以下是用于开发测试策略的一些基本测试参数
评估和积累先决条件
找到可以承受来自多台机器的负载并且可以从一个位置进行管理的最佳负载测试工具。
找到合适的操作系统来运行负载测试主机
确定用于运行测试代理和负载测试主机的CPU
分析运行测试需要多少内存
定义您的可扩展性测试过程
这是进行可扩展性测试的分步清单-
选择可重复的过程
定义测试应用程序可扩展性的标准
准备运行测试所需的工具列表
创建测试环境
配置任何硬件(如果需要)
列出测试场景
起草和评估负载测试和可视化脚本场景
执行负载测试
现在最后一步是评估结果并准备报告。您的报告必须包含改进指南。例如,如果您希望您的网站流量在两个月内增加200,您必须采取一些方法来提高您的服务器性能。