学习

如何选择负载测试工具?

什么是负载测试工具?

负载测试是一种确保软件在真实场景下工作良好的方法。188金宝搏官网登录app

负载测试工具用于使用虚拟用户(vu)在各种软件应用程序上重新创建真实用户的行为。188金宝搏官网登录app根据负载测试的性质和要求,它可以模拟一个到几百万个vu。这种复制如此多用户的能力使其成为不可或缺的工具——因为人类不可能在如此大规模上进行这种测试。

该工具可以在内部部署或云中使用。对于需要大量vu的极端测试,需要许多服务器。在这种情况下,在云中测试是更好的选择,因为它比内部部署解决方案更容易扩展。负载测试工具用于:

  • 创建负载测试脚本:
    • 在测试过程中模拟每个VU的活动
  • 配置测试参数:
    • 需要多长时间的测试,测试多少个vu ?
    • 测试中将包含多少不同类型的用户?
    • 桌面用户和移动用户的比例是多少?
    • 负载将来自哪里,内部部署还是云基础设施?
  • 执行测试:
    • 使用脚本和配置好的参数执行测试
    • 确定何时进行
    • 考虑从持续集成服务器(例如,Jenkins)上运行它。
  • 分析结果:
    • 当测试运行并且应用程序开启时,性能工程师必须分析软件行为188金宝搏官网登录app
    • 可以使用负载测试工具或其他特定的监控手段(例如APM或应用程序监控)在运行期间进行此类监控。

要了解如何选择正确的负载测试工具,需要考虑以下因素:

  • 为什么要使用负载测试工具?
  • 谁使用负载测试工具?
  • 如何选择最适合自己需求的工具?
  • 是否有不同类型的负载测试工具?
  • 负载测试的主要工具是什么?

为什么要使用负载测试工具?

使用负载测试工具可以识别和解决系统在不同场景中可能遇到的瓶颈。这有助于防止在实时生产环境中出现问题——这可能会对业务产生负面影响。

通过在实际场景中进行测试,负载测试工具有助于防止软件性能不佳——包括令人讨厌的响应时间。188金宝搏官网登录app它还可以用于帮助管理和监控实时生产环境中的性能水平。

谁使用负载测试工具?

负载测试工具由许多不同的专业人员使用:

  • 在性能测试中心工作的性能工程师这些工程师需要最先进的工具来为有效的测试创建适当的脚本和场景。
  • 在敏捷/DevOps团队中工作的开发人员开发人员越来越多地参与到性能测试中。当在持续监控过程中工作时,他们在开发第一个api时就开始测试第一行代码——甚至在图形用户界面可用之前。这些开发人员需要一个简单的工具,不需要性能测试专家,而且可以用于API测试。作为开发人员,他们通常喜欢在代码中工作——因此理想情况下,该工具应该允许他们使用代码创建测试。

测试脚本设计

功能描述
创建真实的测试脚本。
快速设计测试,包括复杂的测试。

特点和优点
对于性能工程师:创建复杂的测试脚本,模拟真实世界用例的多样性。
对于开发人员:用代码快速生成API测试。

技术支持

功能描述
支持多种Web协议——HTTP、Java等;旧的协议,如SAP GUI和Oracle Forms。

特点和优点
提供扩展协议支持,以便测试人员可以测试所有当前的应用程序。
模拟复杂的协议行为来创建真实的测试。
为新出现的协议提供早期支持。

手机测试

功能描述
模拟移动用户。

特点和优点
移动设备的行为与桌面设备不同。考虑到移动网络条件和不同设备的具体情况,它们必须被隔离和真实地模拟。

内部部署/云负载基础设施

功能描述
生成本地和云负载——或者两者的组合。

特点和优点
易于安装的内部部署测试工具,但需要在加载基础设施上进行投资
云更适合生成极端负载测试(具有数千个vu的测试)。它可以在防火墙之外创建负载来模拟现实情况
根据正在测试的应用程序,采用使用内部部署和云基础设施的vu组合可能是合适的。

负载基础设施管理

功能描述
管理/储备负载基础设施。

特点和优点
在大型组织中,管理负载基础设施可能具有挑战性
使团队能够协作并共享测试资源(例如负载生成器和VU许可)。

工具的可伸缩性

功能描述
扩展到数千甚至数百万个vu。

特点和优点
并不是所有的负载测试工具都可以进行扩展,以适应具有数千甚至数百万个虚拟单元的重要测试
生成数以百万计的虚拟用户——无论是在本地还是在云端
同步数十或数百个控制器,以确保负载生成器同步
创建测试报告和分析,为多个控制器和负载生成器聚合这些数据。

负载测试分析

功能描述
分析已测试的应用程序并确定瓶颈

特点和优点
必须有自己的监控能力或至少能够导入监控数据进行分析
必须能够提供可操作的决策信息,以识别和帮助解决瓶颈

与CI管道集成

功能描述
与持续集成服务器集成以自动执行性能测试

特点和优点
它是否提供了与最流行的CI/CD服务器的标准集成?
它是否提供了支持与第三方集成的API ?
它是否允许基于代码的测试将性能测试集成到一个完全自动化的过程中?
它是否提供自动化的成功/失败SLA结果,以便测试结果可以完全自动化?

与其他测试工具的集成

功能描述
与其他功能测试设备(如Selenium)集成

特点和优点
通过与其他工具的集成,该设备允许您重用现有的功能测试脚本进行负载测试,从而加快了设计阶段。
为终端用户体验使用“基于浏览器”的性能指标

协作

功能描述
使不同的团队能够在性能测试过程和结果分析上进行协作

特点和优点
必须允许您共享测试资源(脚本、结果等)以及测试基础结构本身,包括负载生成器和VU许可。
必须支持团队一起工作。

安全

功能描述
确保所创建数据(用户登录和个人信息等)的安全性。

特点和优点
必须加密它处理的数据。
必须是完全安全的,绝对没有可能危及数据安全的后门。

技术支持

功能描述
在各种情况下支持其客户(不同的协议和自定义应用程序等)。

特点和优点
测试人员必须能够根据vu定制协议,以创建真实的测试
将性能测试集成到CI/CD管道中以实现自动化
必须为测试人员提供最佳实践指导。

是否有不同类型的负载测试工具?

有几种类型的负载测试工具,具有不同但互补的方法:

  • 协议为基础的工具:在应用程序级别生成协议事务。例如,web和移动应用程序对HTTP协议的请求
  • 基于浏览器的工具:模拟真实浏览器的活动,但针对许多不同的数百甚至数千个虚拟用户

负载测试工具也有不同的类别:

  • 基于开源技术的工具(JMeter):不需要高级测试功能的简单用例
  • 先进的工具能够提供解决方案,以满足最复杂的需求: NeoLoad是领导者之一,也是LoadRunner和Performance Center等长期解决方案的主要替代方案,这些解决方案已经存在了几十年

NeoLoad

描述
领先的负载测试工具。

满足了什么需要?
适用于所有测试要求-从API测试到单个应用程序测试。专为企业市场和卓越测试中心,以及敏捷/DevOps团队设计。

LoadRunner /性能中心

描述
广泛应用于大型组织。

满足了什么需要?
满足大型组织的需求。支持复杂的用例,但专用于专家使用,因为它们使用起来同样复杂。
两者的实现/维护成本都很高。

JMeter

描述
开源负载测试工具

满足了什么需要?
非常适合负载测试的基本需求,但不支持诸如SAP GUI之类的遗留协议。需要第三方业务工具进行云和移动测试。

Blazemeter

描述
基于JMeter

满足了什么需要?
除了JMeter的开源功能之外,还提供报告和云计算功能。
对复杂测试条件下JMeter功能的有限支持。

Baidu
map