负载测试教程(定义、操作方法、示例)
负载测试
负载测试是一种非功能性软件测试,其中软件应用程序的执行是在特定负载下进行判断的。当大量用户同时使用软件应用程序时,它控制软件应用程序的工作方式。在部署前进行负载测试,检测性能瓶颈,保证软件程序稳定运行。
该分析通常确定:-
应用程序的最大操作容量
检查当前的基础架构是否能够处理应用程序。
该应用程序在用户峰值负载方面的可行性值得商榷。
应用程序支持的最大并发用户数及其可扩展性使其他用户能够访问它。
这是一种非功能性测试。负载测试广泛用于软件工程中的客户端/服务器以及Intranet和Internet上基于Web的应用程序。
负载测试的目的是什么?
负载测试建立了对系统可靠性和性能的信任。
负载测试在生产环境中发生之前,在大量用户压力情况下识别系统瓶颈。
负载测试提供了针对性能不佳的良好保护,并且可以与生产环境中的其他性能管理和监控策略结合使用。
为什么需要负载测试?
需要进行负载测试,因为一些最受欢迎的网站在收到大量流量时会出现严重的停机时间。在营销吸引访问者的时候,电子商务网站在广告工作上进行了大量投资,而不是在负载测试上进行投资,以确保最佳的系统性能。
考虑下面的例子。
Toysrus.com是一家受欢迎的玩具零售商,无法应对其广告活动带来的增加的流量,从而导致营销成本和潜在产品销售的损失。
在节日期间,一家航空公司的网站无法容纳10,000多名客户。作为促销优惠,EncyclopediaBritannica提供免费访问其在线数据库的机会。几个星期以来,他们无法跟上流量的涌入。
当一个网站收到大量流量时,它需要更长的时间来加载。
事实-
在加载页面延迟8秒后,大多数人会点击离开。
由于业绩不佳,每年损失44亿美元。
负载测试的目标
在将应用程序发布到市场或投入生产之前,负载测试确定以下问题-
每个事务的响应时间
不同负载下的系统组件性能
各种负载下的数据库组件性能
在客户端和服务器之间,存在网络延迟。
软件设计问题
Web服务器、应用程序服务器、数据库服务器和其他服务器配置困难。
硬件限制问题,例如CPU最大化、内存限制、网络瓶颈等。
负载测试将表明是否需要对系统进行微调,或者是否需要修改硬件和软件以提高性能。
负载测试先决条件
负载测试最重要的统计数据是响应时间。您必须首先确定-在开始负载测试之前。
现在是否正在测量和比较反应时间?-定量分析
响应时间是否与业务流程相关-
响应时间是否合理——现实
是否可以满足响应时间-是的,可以满足。
无论是使用工具还是使用秒表来测量响应时间——它都必须是可测量的。
在开始负载测试之前,您必须首先创建以下环境-
ServerMachines
Processors
Memory
操作系统
DiskStorage
服务器机器
LoadMachinesconfiguration
Networkconfiguration
负载测试策略
负载测试可以通过多种方法完成。下面列出了一些负载测试方法-
手动负载测试-这是负载测试方法之一,但是,它不能提供可重复的结果,不能提供应用程序的测量压力水平,并且难以组织。
内部创建的负载测试工具-认识到负载测试价值的组织可以开发自己的负载测试技术。
开源且免费的负载测试工具-有各种开源且免费的负载测试程序。它们可能不像付费的等价物那么复杂,但如果您有预算,它们是最好的选择。
企业级负载测试软件-它们通常具有捕获/回放功能。它们能够支持多种协议。他们有能力模仿大量用户。
负载测试:分步指南
负载测试程序可以总结如下-
建立专门的负载测试环境。
弄清楚以下几点:
负载测试场景
确定应用程序的负载测试事务。
准备每笔交易的数据。
必须估计将使用该系统的用户数量。
了解您的连接速度。一些用户可能拥有租用线路,而其他用户可能拥有拨号访问权限。
确定用户的首选浏览器和操作系统。
已配置所有服务器,例如Web、应用程序和数据库服务器。
测试场景的执行和监控。正在收集各种指标。
检查结果。请提供建议。
系统微调后重新测试。
负载测试指南
一旦应用程序功能稳定,就应该安排负载测试。
在数据池中,应该有相当数量的独特数据可用。
对于每个场景或脚本,应确定用户数量。
为了节省磁盘空间,请避免创建大量日志。输入输出内存
尽量不要从网站下载照片。
应记录反应时间加班的一致性,并将结果与其他测试运行进行比较。
最佳实践指南
下面描述了一些负载测试的最佳技术-
在开始负载测试之前,请确保程序稳定。在构建移动到负载测试环境之前,功能测试团队应该将应用程序签名为功能稳定,并且所有主要缺陷都应该得到解决和测试。
检查负载测试环境,包括服务器数量、负载均衡器、服务器配置和防火墙,是否是生产环境的副本或接近于生产环境
在运行负载测试之前,请仔细检查测试数据是否唯一以及所有测试数据是否已移至负载环境。
创建与生产环境中的实时用户行为非常相似的测试场景。
根据制造的用户负载和业务流生成工作负载;如果是旧应用程序,检查它是否是新应用程序,并就业务流程和用户负载与业务团队交谈。
收集所有相关信息,例如响应时间、每秒点击次数、吞吐量、CPU、内存、网络和正在运行的Vuser。
负载和压力测试:有什么区别?
负载测试-负载测试发现各种工作负载下的系统瓶颈,并评估系统在负载逐渐增加时的响应方式
负载测试-压力测试:压力测试确定系统的断点或将失败的最大点。
功能测试和负载测试的区别
功能测试和负载测试之间的区别如下-
功能测试
因为我们已经定义了正确的阶段和前提条件,所以很容易预测功能测试的结果。
功能测试的结果略有不同。
功能测试将定期进行。
测试数据决定了功能测试的结果。
负载测试
负载测试结果是不可预测的。
负载测试的结果差异很大。
进行负载测试的频率将适中。
用户数量影响负载测试。
用于测试的工具
LoadNinja-LoadNinja正在改变人们加载测试的方式。这种基于云的负载测试工具使团队能够在真实浏览器中大规模记录和回放完整的负载测试,而无需复杂的动态关联。团队已经能够提高测试覆盖率并将负载测试时间减少60%以上。
茄子-包括Gartner和Forrester在内的所有顶级分析师都承认茄子(现在是是德科技的一部分)是负载测试解决方案的领导者。不要用昨天的技术来打今天的测试战。
LoadRunner-HP的LoadRunner工具用于在常规和峰值负载情况下测试应用程序。负载运行器创建模拟网络活动以产生负载的虚拟用户。它在模拟生产环境中的实时使用的同时生成图形结果。
负载测试的优点和缺点
以下是负载测试的一些好处-
在生产之前识别性能限制
通过提高系统的可扩展性来降低系统停机的危险。
故障成本较低。
客户满意度应该上升。
负载测试的缺点包括-
要使用负载测试工具,您需要知道如何编程。
由于价格基于支持的虚拟用户数量,因此工具可能很昂贵。
总结
负载测试是一种软件测试,它检查系统在真实负载条件下的执行情况。
负载测试通常会在应用程序投入生产之前改善应用程序的性能瓶颈、可扩展性和稳定性。
此测试有助于确定应用程序的最大工作容量以及系统瓶颈。
加载测试至关重要,因为不这样做可能会导致经济损失。