什么是负载测试?(示例)

负载测试

什么是负载测试?

负载测试 是一种非功能性软件测试过程,其中在特定的预期负载下测试软件应用程序的性能。它确定软件应用程序在被多个用户同时访问时的行为方式。负载测试的目标是改善性能瓶颈并确保软件应用程序在部署之前的稳定性和平稳运行。

这种测试通常识别 –

  • 应用程序的最大运行容量
  • 确定当前基础架构是否足以运行该应用程序
  • 针对峰值用户负载的应用可持续性
  • 应用程序可以支持的并发用户数,以及允许更多用户访问的可扩展性。

它是一种非功能性测试。在软件工程中,负载测试通常用于客户端/服务器、基于 Web 的应用程序(包括 Intranet 和 Internet)。

负载测试的必要性

一些非常受欢迎的网站在获得大量流量时会遭遇严重的宕机。电子商务网站在广告活动上投入巨资,但当营销活动带来流量时,却不会进行负载测试以确保最佳系统性能。

考虑以下负载测试示例

  • 流行玩具商店 Toysrus.com 无法处理其广告活动产生的流量增加,导致营销费用和潜在玩具销售额的损失。
  • 在节日期间,一家航空公司的网站无法处理 10000 多名用户。
  • 大英百科全书将免费访问其在线数据库作为促销优惠。他们无法应对数周的流量冲击。

许多网站在遇到大流量时都会出现加载延迟的情况。一些事实——

  • 大多数用户在页面加载延迟 8 秒后离开
  • 易武 Bill由于绩效不佳,每年都会损失

为什么要进行负载测试?

  • 负载测试使人们对系统及其可靠性和性能充满信心。
  • 负载测试有助于在生产环境中出现高用户压力情况下识别系统瓶颈,避免其发生。
  • 负载测试可以很好地防止性能不佳,并适应生产环境性能管理和监控的补充策略。

负载测试的目标

在将应用程序推向市场或生产之前,加载测试可以识别以下问题:

  • 每笔交易的响应时间
  • 系统组件在不同负载下的性能
  • 不同负载下数据库组件的性能
  • 客户端与服务器之间的网络延迟
  • 软件设计问题
  • 服务器配置问题,如 Web 服务器、应用程序服务器、数据库服务器等。
  • 硬件限制问题,如 CPU 最大化、内存限制、网络瓶颈等。

负载测试将确定系统是否需要微调或修改硬件和软件以提高性能。为了有效地进行负载测试,您可以利用各种 性能测试工具 可以帮助您确定需要改进的领域。

负载测试的先决条件

负载测试的主要指标是响应时间。在开始负载测试之前,您必须确定 –

  • 是否已经测量并比较了响应时间 – 定量
  • 响应时间是否适用于业务流程 – 相关
  • 响应时间是否合理——现实
  • 响应时间是否可以实现 – 可以实现
  • 是否可以使用工具或秒表测量响应时间 – 可测量

开始负载测试之前需要设置环境:

硬件平台 软件配置
  • 服务器
  • 加工厂
  • 内存
  • 磁盘存储
  • 加载机器配置
  • 网络配置
  • 运行系统
  • 服务器软件

负载测试策略

执行负载测试的方法有很多种。以下是一些负载测试策略:

负载测试策略

  • 手动负载测试:这是执行负载测试的策略之一,但它不会产生可重复的结果,无法提供应用程序可测量的压力水平,并且是一个无法协调的过程。
  • 内部开发的负载测试工具:认识到负载测试重要性的组织可能会构建自己的工具来执行负载测试。
  • 开源负载测试工具:有几种免费的开源负载测试工具。它们可能不如付费工具那么复杂,但如果您预算有限,它们就是最佳选择。
  • 企业级负载测试工具:它们通常带有捕获/播放功能。它们支持大量协议。它们可以模拟大量用户。

如何进行负载测试

负载测试过程可简要描述如下 -

  1. 创建一个专门的 测试环境 用于负载测试
  2. 确定以下内容
  3. 负载测试场景
  4. 确定应用程序的负载测试事务
    • 为每笔交易准备数据
    • 需要预测访问系统的用户数量
    • 确定连接速度。有些用户可能通过专线连接,而其他用户可能使用拨号连接
    • 确定用户使用的不同浏览器和操作系统 
    • 所有服务器(如 Web、应用程序和数据库服务器)的配置
  5. 测试场景执行和监控。收集各种指标
  6. 分析结果。提出建议
  7. 微调系统
  8. 重新测试

负载测试指南

负载测试指南

  1. 一旦应用程序功能稳定,就应该计划进行负载测试。
  2. 数据池中应准备大量唯一数据
  3. 应根据每个场景或脚本确定用户数量
  4. 避免创建详细日志以节省磁盘 IO 空间
  5. 尽量避免下载网站内的图片
  6. 在执行负载测试用例的过程中,应记录经过一段时间内的响应时间的一致性,并将其与各种测试运行进行比较。

负载测试和压力测试之间的区别

负载测试 压力测试
负载测试识别各种工作负载下系统的瓶颈,并检查负载逐渐增加时系统如何反应 压力测试 确定系统的临界点,以揭示系统临界的最大点。
要了解系统的上限,请设置应用程序的 SLA 并检查系统如何处理重负载。 检查系统在极端负载下的行为以及如何从故障中恢复。
在 Web 应用程序上产生增加的负载是负载测试的主要目的。 压力测试旨在确保服务器在相当长的时间内突然承受高负载的情况下不会崩溃。
负载测试中检查的属性是峰值性能、服务器数量和响应时间。 这种测试检查稳定性响应时间等。
在负载测试中,负载极限是中断的阈值。 在压力测试中,负载限制高于中断的阈值。

功能测试和负载测试之间的区别

功能测试 负载测试
由于我们定义了适当的步骤和先决条件,因此功能测试的结果很容易预测 负载测试的结果不可预测
功能测试结果略有不同 负载测试结果差异很大
执行频率 功能测试 会很高 执行负载测试的频率较低
功能测试的结果取决于测试数据 负载测试取决于用户数量。

负载测试工具

负载运行器:

Load runner 是 HP 的工具,用于在正常和峰值负载条件下测试应用程序。Load runner 通过创建模拟网络流量的虚拟用户来生成负载。它模拟生产环境中的实时使用情况并提供图形结果。

阅读有关 Loadrunner 的更多信息 点击这里.

负载测试的优点和缺点

以下是负载测试的优点:

  • 生产前识别性能瓶颈
  • 提高系统的可扩展性
  • 最大限度地降低与系统停机相关的风险
  • 降低失败成本
  • 提高客户满意度

负载测试的缺点:

  • 在软件测试中,需要编程知识才能使用工具进行负载测试。
  • 工具可能很昂贵,因为定价取决于所支持的虚拟用户数量。

总结

  • 负载测试被定义​​为一种软件测试,用于确定系统在实际负载条件下的性能。
  • 负载测试通常在应用程序投入生产之前改善其性能瓶颈、可扩展性和稳定性。
  • 该测试有助于确定应用程序的最大运行能力以及系统瓶颈。
  • 负载测试 软件测试 很重要,因为如果忽视它,可能会给组织造成财务损失。