压力测试
压力测试
在本节中,我们将了解压力测试,这是性能测试的重要组成部分并用于通过施加大于所需负载的负载来检查应用程序的行为。
我们还了解了它的过程,为什么我们需要执行压力测试,压力测试的目的、示例、压力测试的各种特点、优缺点。
压力测试介绍
In软件测试,压力测试是非功能测试下性能测试的重要组成部分。
压力测试是用于检查软件超出通常功能限制的可访问性和健壮性的测试。它主要考虑关键软件,但也可用于所有类型的软件应用程序。
也称为耐力测试、疲劳测试或酷刑测试。
压力测试包括超出标准操作规模的测试,重复到破坏点,以获得输出。
它突出了重负载下的错误处理和鲁棒性,而不是常规条件下的正确行为。
换句话说,我们可以说压力测试用于验证系统的稳定性和
可靠性,并确保系统在灾难情况下不会崩溃。
为了分析系统在极端条件下的工作方式,我们在正常负载之外执行压力测试。
压力测试的目的
使用压力测试的主要目的是实现以下几个方面:
执行压力测试的主要目的是确认软件不会因缺少磁盘空间、内存和网络请求等计算资源而崩溃。
压力测试的实施证明系统失败并毫不费力地改进,称为可恢复性过程。
我们可以使用压力测试来发现硬件问题、数据损坏问题。
压力测试将帮助我们识别在恒定峰值负载期间可能潜入的安全漏洞。
它有助于确定整个极端负载期间软件应用程序的数据完整性,这意味着数据在发生故障后应该处于可靠状态。
压力测试的特点
以下是压力测试的基本特点:
压力测试还可确保意外故障不会导致安全问题。
用于分析系统在极少数情况下的工作情况以及系统发生故障后的行为。
压力测试用于检查系统在崩溃前是否保存了数据。
压力测试可确保在系统处于压力下时显示合适的错误消息。
为什么要进行压力测试?
遇到以下情况需要进行压力测试:
任何时候电子商务或在线购物网站宣布节日期间的促销活动可能会导致流量激增。或者当一篇文章在顶级报纸上被提及时,它知道一个意外的流量。
如果我们不能帮助这种突然的流量,可能会导致利润和地位的损失。因此,在这种情况下,我们需要执行压力测试来整合此类不规则的流量高峰。
还需要针对以下场景执行压力测试:
当系统处于压力之下时,它应该显示正确的错误消息。
检查系统是否在异常情况下工作。
如果系统在危险情况下出现故障,可能会导致巨大的利润损失。
通过实施压力测试,我们将为极端情况做好准备。
压力测试示例
让我们看一些实时示例,从中我们可以发现压力测试的用法。
示例 1: 电子商务网站/应用
在新品发布、销售、节假日、促销和节日优惠期间,电子商务应用往往会得到很多
示例 2: 新闻网站在某些重大/病毒事件发生时
新闻网站会崩溃或变慢重大事件发生; 例如,当迈克尔杰克逊去世时,最大数量的新闻网站变慢了,或者其中一些还崩溃了。
为了克服这种情况,我们需要施加压力对特定应用程序进行测试,并准备在发生任何崩溃或故障时快速恢复。
示例 3: 教育委员会的结果网站
压力测试对于在教育委员会的结果网站上执行。部分结果当天,很多学生、用户和申请者都会登录到特定的查看他们的成绩。
因此,执行压力测试有助于识别应用程序的失败并评估其性能和表现。当最终负载在短时间内发生或结果出来时,可恢复性。
注意: 网站或应用程序的压力测试对于处理这种意外增加的访问者或用户非常重要。
压力测试的类型
压力测试可以分为以下几部分:
产品或应用压力测试
服务器-客户端或分发压力测试
分析压力测试
系统压力测试
交易压力测试
产品或应用压力测试
应用或产品压力测试主要侧重于确定与网络问题、数据锁定、阻塞以及软件产品中的性能瓶颈相关的故障。
服务器-客户端或分布式压力测试
在这种类型的压力测试中,所有与服务器相关的客户端都经过测试。
分布式压力测试用于从服务器跨所有客户端执行。
服务器可以与客户端A和B通信,但是当客户端-服务器系统有压力时,它不能与客户端C和D链接,正如我们所看到的在下图中:
分析/探索性压力测试
分析或探索性测试用于在实际场景中不太可能出现异常约束的情况下执行系统。
主要用于识别极少数情况下的错误,例如大量用户同时登录或从网站检索时数据库脱机。
让我们看一些使用这种不规则条件的分析压力测试示例:
当大量并行用户尝试登录应用程序时。
数据库中添加了大量数据。
当网站尝试从前端访问时,链接到网站的数据库关闭。
系统压力测试
它是一种组合测试,用于跨运行在类似服务器上的各种系统执行测试。
使用系统压力测试,我们可以轻松检测到一个应用程序的数据阻塞另一个应用程序的瓶颈。
交易压力测试
另一种压力测试是事务压力测试,用于在各种应用程序之间实现一个或多个事务。
执行事务压力测试的主要目标是提高系统性能。
压测过程/如何进行压测
压测过程将分为以下几个步骤:
Step1: 检测测试环境
在压力测试的第一步中,我们将确定可用于实现压力测试的网络、软件和硬件配置和工具。
Step2: 查找性能验收标准
确定测试环境后,我们将找到性能验收标准,这有助于我们对用于测试应用程序在压力下的性能的指标进行分类。
此外,确定压力测试的成功标准,例如,可以应用的最大负载
Step3: 计划和设计压力测试
在压力测试过程的下一步中,我们将计划和设计一个压力测试局域网,识别测试场景等
Step4: 配置测试环境
成功创建压力测试计划后,我们将进入下一步创建测试环境、工具和资源
第五步: 实施测试设计
在测试环境配置完成后,我们将开发压力测试
第六步: 执行测试
下一步,我们将执行特定的测试,观察并确认测试和测试
Step7: 分析结果
在压力测试过程的最后一步,我们将分析结果,合并并分享各自的团队的输出数据。
压力测试工具
众所周知,压力测试是性能测试的一部分强>,pe使用的工具性能测试可用于压力测试。因此,市场上有各种类型的压力测试工具,其中一些是商业工具和开源工具。下面列出了一些最常见的压力测试:
Apache JMeter
NeoLoad
压力测试员
LoadRunner
压力测试的优缺点
优势
执行压力测试的一些重要优势如下:
压力测试表明系统在失败后的行为,并确保系统从崩溃中快速恢复。
执行压力测试最重要的优势是让系统以合适的方式在有规律和不规律的条件下工作。
它决定了软件的可扩展性并增强了软件的性能。
缺点
压力测试的一些最常见的缺点如下:
即使在 JMeter 等开源工具中,也需要负载测试环境,该环境应尽可能接近生产环境设置。
如果我们正在编写压力测试脚本,此人应该对特定工具支持的语言有足够的脚本知识。
如果我们使用压力测试,则需要额外的资源,这会使此测试成本更高。
如果我们手动执行压力测试,完成起来会变成一项繁琐而复杂的任务,而且也可能无法产生预期的结果。
概述
在本教程中,我们已经了解压力测试用于在极端情况下评估系统。它可以验证系统恢复到正常状态。
它是一种非功能测试,一般在功能测试之后执行。
压力测试完全专注于在极端负载情况下测试系统以检测其断点,并查看在系统未正常运行时是否显示合适的消息响应式。