多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 负载测试教程:什么是? 如何? (带有示例) > 原文: [https://www.guru99.com/load-testing-tutorial.html](https://www.guru99.com/load-testing-tutorial.html) ## 什么是负载测试? **负载测试**确定特定预期负载下的系统性能。 负载测试的目的是确定当多个用户同时访问该应用程序时该应用程序的行为。 负载测试的目的是确保在实际负载条件下软件的平稳运行。 负载测试是非功能测试类型,是性能测试的子集 ![Load Testing image](https://img.kancloud.cn/27/f7/27f7afbaa304c21711b31880b02e19ee_256x165.png) 此测试通常确定- * 应用程序的最大运行容量 * 确定当前基础结构是否足以运行应用程序 * 关于峰值用户负载的应用程序可持续性 * 应用程序可以支持的并发用户数,以及允许更多用户访问它的可伸缩性。 这是一种非功能测试。 在软件工程中,负载测试通常用于基于 Web 的客户端/服务器应用程序-Intranet 和 Internet。 在本教程中,您将学习- * [需要进行负载测试:](#2) * [为什么要进行负载测试?](#3) * [负载测试的目标:](#4) * [负载测试策略:](#7) * [负载测试的先决条件:](#6) * [如何进行负载测试](#8) * [负载测试准则](#9) * [负载测试工具:](#12) * [负载测试的优缺点:](#13) ## 需要负载测试: 当一些非常受欢迎的网站获得大量流量时,它们遭受了严重的宕机。 当营销带来流量时,电子商务网站在广告活动上进行了大量投资,但没有在负载测试上进行投资,以确保最佳的系统性能。 考虑以下示例 * 流行的玩具商店 Toysrus.com 无法应对其广告活动带来的流量增加,从而导致营销费用和潜在的玩具销售损失。 * 节日期间,航空公司网站无法处理 10000 多个用户。 * 大英百科全书宣布免费访问其在线数据库作为促销优惠。 他们连续数周无法跟上交通的冲击。 许多站点在遇到繁忙流量时会延迟加载时间。 事实- * 大多数用户在延迟 8 秒钟后无法点击页面 * 由于业绩不佳,每年损失 44 亿美元 ## 为什么要进行负载测试? * 负载测试使人们对系统&的可靠性和性能充满信心。 * 负载测试有助于在用户压力很大的情况下确定系统中的瓶颈,以防它们在生产环境中发生。 * 负载测试可提供出色的保护,防止性能下降,并提供用于性能管理和监视生产环境的补充策略。 ## 负载测试的目标: 加载测试在将应用程序推向市场或生产之前确定了以下问题: * 每笔交易的响应时间 * 各种负载下系统组件的性能 * 不同负载下数据库组件的性能 * 客户端和服务器之间的网络延迟 * 软件设计问题 * 服务器配置问题,例如 Web 服务器,应用程序服务器,数据库服务器等。 * 硬件限制问题,例如 CPU 最大化,内存限制,网络瓶颈等。 负载测试将确定是否需要对系统进行微调,或者需要对硬件和软件进行修改以提高性能。 ## 负载测试的先决条件: 负载测试的主要指标是响应时间。 在开始负载测试之前,您必须确定- * 响应时间是否已被测量和比较-定量 * 响应时间是否适用于业务流程-相关 * 响应时间是否合理-现实 * 响应时间是否可实现-可实现 * 使用工具还是秒表可测量响应时间-可测量 ### 需要在开始负载测试之前设置环境: | 硬件平台 | 软件配置 | | * 服务器计算机 * 处理器 * 内存 * 磁盘存储 * 加载计算机配置 * 网络配置 | * 操作系统 * 服务器软件 | ## 负载测试策略: 有许多执行负载测试的方法。 以下是一些负载测试策略- ![Load Testing Tutorial: Tools, Process & Examples](https://img.kancloud.cn/49/e3/49e3eaead5508cb76321ddd5d34de62c_125x162.png) * **手动负载测试**:这是执行负载测试的策略之一,但它不会产生可重复的结果,无法在应用程序上提供可测量的压力水平,并且是无法协调的过程。 * **内部开发的负载测试工具**:意识到负载测试的重要性的组织可以构建自己的工具来执行负载测试。 * **开源负载测试工具**:有几种免费的开源负载测试工具。 他们可能不如付费同行那么老练,但是如果您的预算有限,那么它们是最佳选择。 * **企业级负载测试工具**:它们通常带有捕获/回放功能。 它们支持大量协议。 他们可以模拟大量用户。 ## 如何进行负载测试 负载测试过程可以简要描述如下- 1. 创建专用的[测试环境](/test-environment-software-testing.html)进行负载测试 2. 确定以下 3. 负载测试方案 4. 确定应用程序的负载测试事务 * 为每笔交易准备数据 * 需要预测访问系统的用户数量 * 确定连接速度。 一些用户可能通过租用线路连接,而另一些用户可能使用拨号上网 * 确定用户使用的不同浏览器和操作系统 * 所有服务器(如 Web,应用程序和数据库服务器)的配置 5. 测试方案执行和监视。 收集各种指标 6. 分析结果。 提出建议 7. 微调系统 8. 重新测试 ## 负载测试准则 ![Load Testing Tutorial: Tools, Process & Examples](https://img.kancloud.cn/70/4a/704a237221adea5f5788b8edbd6e91d4_138x219.png) 1. 一旦应用程序功能稳定,就应计划进行负载测试。 2. 数据池中应准备好大量唯一数据 3. 应为每种方案或脚本确定用户数 4. 避免创建详细的日志以节省磁盘 IO 空间 5. 尽量避免在网站上下载图片 6. 应记录经过时间段内响应时间的一致性&,应将其与各种测试运行进行比较 ## 负载和压力测试之间的区别: | **负载测试** | **压力测试** | | 负载测试可确定各种工作负载下系统中的瓶颈,并检查负载逐渐增加时系统如何做出反应 | [压力测试](/stress-testing-tutorial.html)确定系统的断裂点以显示其断裂之后的最大点。 | ## 功能测试和负载测试之间的区别: | **功能测试** | **负载测试** | | 功能测试的结果很容易预测,因为我们已经定义了适当的步骤和前提条件 | 负载测试的结果不可预测 | | 功能测试的结果略有不同 | 负载测试结果差异很大 | | 执行[功能测试](/functional-testing.html)的频率很高 | 执行负载测试的频率会很低 | | 功能测试的结果取决于测试数据 | 负载测试取决于用户数量。 | ## 负载测试工具: #### 忍者 [LoadNinja](https://bit.ly/2u713Ul) –正在彻底改变我们的负载测试方式。 这个基于云的负载测试工具使团队能够记录&,即时回放全面的负载测试,而无需复杂的动态关联&,即可在实际的浏览器中大规模运行这些负载测试。 团队能够增加测试范围。 &将负载测试时间缩短了 60%以上。 #### NeoLoad: [NeoLoad](https://bit.ly/2O5t3kf) 是为敏捷和 DevOps 设计的企业级负载测试平台。 NeoLoad 与您的持续交付管道集成在一起,以支持整个软件生命周期中的性能测试-从组件到整个系统范围的负载测试。 #### 负载运行器: LoadRunner 是用于在正常和峰值负载条件下测试应用程序的 HP 工具。 LoadRunner 通过创建模拟网络流量的虚拟用户来生成负载。 它可以像生产环境一样模拟实时使用情况并给出图形结果。 在此处阅读有关 Loadrunner [的更多信息。](/loadrunner-v12-tutorials.html) ## 负载测试的优缺点: 以下是负载测试的优点: * 生产前确定性能瓶颈 * 改善系统的可扩展性 * 最小化与系统停机有关的风险 * 降低故障成本 * 提高客户满意度 负载测试的缺点: * 需要编程知识才能使用负载测试工具。 * 由于定价取决于所支持的虚拟用户数量,因此工具可能很昂贵。 ## 摘要: * 负载测试定义为一种软件测试,可以确定实际负载条件下的系统性能。 * 负载测试通常会在应用程序投入生产之前,改善其性能瓶颈,可扩展性和稳定性。 * 该测试有助于确定应用程序的最大运行能力以及系统瓶颈。 * 负载测试很重要,因为如果忽略它,则会导致财务损失。