超实用:14种性能监控与负载测试工具

脚本之家

你与百万开发者在一起

来源:51CTO技术栈

作者:Andrei Guchin,陈峻编译

编辑:陶家龙、孙淑娟

本文列出了 14 种针对应用程序性能监控与负载测试的工具,以帮助您构建和维护具有高性能和高可靠性的系统。

图片来自 Unsplash

众所周知,性能测试可以揭示一个系统在各种情况下的行为与响应方式。某个系统在 1,000 个并发用户下能够运行稳健,并不等于它在面对 100,000 个并发用户时,仍能运行正常。

因此我们在系统性能方面,主要着眼于三个主要目标:

速度

可扩展性

稳定性

在此,我们列出了 14 种针对应用程序性能监控与负载测试的工具,以帮助您构建和维护具有高性能和高可靠性的系统。

注意,虽然它们中的一些是开源的,但是绝大多数会在提供免费试用的基础上,有着对应的付费版本。

AgileLoad

AgileLoad 是一个企业级的性能测试解决方案,可用于优化 Web 应用的性能。

AgileLoad 号称能够提高您的投资回报率和生产力,使您能够更快地执行测试,并且能够提供对于测试结果的深入分析,以及对于所有新技术的全面支持。

目前,从使用了最新 Web 2.0 技术的应用程序、到经典的客户端/服务器(C/S)模式、以及重客户端的应用,它都能够成功地提供深入的性能诊断。

主要特点:

直观的图形界面使您可以捕获和设计复杂的业务场景。

能自动检测和分析性能问题。

提供高度定制化的脚本和报告引擎。

支持对整个应用程序生命周期的性能测试。

能够针对广泛的应用程序和协议开展测试。

可以使用各种 Web 2.0 技术,来记录和重放 RIA(Rich Internet Application,富网络应用)。

通过对系统和最终用户的监控,生成可测量且可重复的负载。

能够自动记录测试场景。

可使用 Agileload 的负载注入引擎,来模拟真实的用户负载。

能够在 Windows(2003 及更高版本)下运行,并与所有的 Web 浏览器兼容。

售价:

免费版:通过 10 个虚拟用户,来构建所有的测试场景。

按需付费版:通过租用 50 到 10000 个虚拟用户,来给 Agileload“赋能”。

与众不同之处:

其免费版或“入门级套件”允许用户快速上手该工具。

通过自动建模,来大幅减少针对同一应用的后续测试用例的脚本编写时间。

提供端到端的诊断功能:该工具不仅能够监控前端,还能监控后端,并检测其性能下降的原因。

其异常检测和建议功能,有助于快速识别并解决性能瓶颈。

具备可配置的报告选项,可适用于不同的受众群体。

Apache JMeter

作为负载测试工具界的实际标准与“王者”,Apache JMeter 是一款开源且全面基于 Java 的应用。

通过自带的图形界面,它能够分析并衡量 Web 应用及各种服务的性能与负载行为。

JMeter 能够让您开展诸如:性能、负载、压力、回归和功能性测试等活动,以便针对 Web 服务器获得准确的性能指标。

该工具支持变量参数化、各种断言(响应验证)、基于线程的 Cookie、配置变量、以及各种报告。

不过,JMeter 的用户会严重依赖于各种插件,毕竟它的大多数“开箱即用”的功能都是通过插件来实现的。

主要特点:

提供友好的 GUI:JMeter 带有一个简单的交互式 GUI。

独立于平台:JMeter 是使用 Java 编写和开发的,因此它可以在诸如:Windows、Linux、Mac 等任何支持 Java 虚拟机的环境内或工作站上运行。

支持多种服务器类型,包括:Web(HTTP、HTTPS、SOAP),数据库(JDBC、LDAP、JMS)和电子邮件(POP3)。

支持多种协议,包括:HTTP、JDBC、LDAP、SOAP、JMS 和 FTP。

通过虚拟用户或模拟多个用户,来对正在测试的 Web 应用产生大量的负载。

其多线程框架允许一到多个线程组,同时对不同函数进行采样。

支持远程分布式测试:JMeter 使用主/从的概念进行分布式测试,其中主服务器会在所有从服务器之间分配测试任务,而从服务器会针对目标服务器执行各种测试脚本。

可以使用诸如:图形、表格、树和报告等格式,来查看测试结果。

售价:

免费/开源。

与众不同之处:

JMeter 拥有一个非常庞大的社区和无穷的资源,能够与市场上几乎所有的性能测试工具相集成。

易于安装:可以安装在 Windows、Mac 或 Linux 等任何桌面系统上。

其 IDE 允许用户从浏览器或本机应用上记录测试数据。

拥有随时可用的插件,例如:用于数据分析的可视化插件。

Appdynamics

作为一款领先的测试工具,AppDynamics 可以帮助用户分析、优化和预测复杂系统中的瓶颈。用户可以将其用在本地、测试环境、产品部署期间、以及云端。

它拥有针对 .Net、Node JS、PHP、Java、C ++、Python、Apache Web Server 和 GoLang 的代理。用户可以用它来实时监控各种应用程序、业务、以及最终用户。

AppDynamics 号称其平台可帮助您通过更加智能的绩效管理方法,将应用性能、客户体验与业务成果联系起来。

主要特点:

具有代码级的可视性。

提供动态基线和强大的警报服务。

提供应用性能管理的代理。

能够保存数据。

可以监控多个平台。

能够解决生产环境中的性能问题。

提供随时间推移的数据库性能趋势。

可在大容量的环境中提供持续监控。

即装即用。

提供数据库代理。

具有服务器可视性。

提供综合监控。

能对移动端的真实用户提供监控。

能对浏览器的真实用户监控。

售价:

分为三个层次:APM Pro、APM Advanced 和 APM Peak,供应商提供不同售价。

与众不同之处:

通过统一的分析功能,确保企业获得实用的信息。

AppDynamics 采用称为统一监控的创新方法,将各种 AppDynamics 应用程序整合到一个强大的解决方案中,以帮助用户确定导致性能问题的确切来源。

BlazeMeter

BlazeMeter 是一家提供“性能和负载测试即服务”的供应商。它提供了一个全新且完整的持续测试平台,可以帮助企业实现向左移动(shift-left)。

BlazeMeter 的 Web 界面,可用于创建静态负载测试,以及通过运行 JMeter 脚本来进行的动态负载测试。

BlazeMeter 的主要优势之一是它的“企业”功能(即,顶级的开源负载测试应用),其中包括:分布式测试、实时报告、与开发人员工具的集成、对持续集成(CI)和应用性能的监控(APM)。

主要特点:

能与 Apache JMeter 完全兼容。

可创建多可达 100 万并发用户的测试。

能在数分钟内完成测试。

可运行无脚本的测试、或上传 URL 列表。

可在云端或本地运行。

可在多个地理位置运行测试。

可在真实设备上模拟移动端测试。

可通过脚本和报告共享的方式,来促进团队协作。

提供多种工具支持。

能与领先的 CI 和 APM 工具相集成。

支持专业的服务。

提供负载测试结果的实时详细报告。

可为已测试的应用行为设置 KPI。

提供桌面和移动端的用户体验监控。

售价:

免费版:50 个并发用户

基本版:99 美元每月(1000 个并发用户)*

专业版:499美元每月(5000 个并发用户)*

无限版:需向供应商索取售价*(*为年度定价)

与众不同之处:

BlazeMeter 通过简单易用的界面和直观的图表,让用户实时查看到测试的结果,并能轻松地比较多种测试。

它具有灵活的定价,可适应以小时、月或年为单位的使用量。无需支付设置或维护的费用。

BlazeMeter 的专业服务团队可以帮助用户设置、甚至运行性能测试。

Dynatrace

Dynatrace 是一种被广泛使用的应用程序性能管理工具。它具有可用于监控 Java 和 .net 应用程序的高级功能,可协助用户轻松地识别出应用程序中的瓶颈与错误。

通过使用 PurePath 技术,Dynatrace 能够在浏览器中,提供横跨所有层次、以及数据库端到端事务级的详细信息。

特别是在代码级别、以及调用外部服务的事务中,它能够通过详细信息,来协助发现性能问题。

该工具可以检测响应时间、事务速率、吞吐量、以及在系统使用中出现的异常情况。

主要特点:

支持全栈发现。

具有全栈性能管理功能。

具有可视化的应用架构。

提供人工智能分析。

具有大规模的自我修复能力。

能够检测 vMotion 事件。

提供数字体验管理。

提供容器、云和基础架构的管理。

售价:

Dynatrace 提供免费试用,具体售价需联系供应商。

与众不同之处:

Dynatrace 能够提供大数据分析。

DevOps 团队可以优化人工智能相关技术,以寻找可操作性的分析与答案。

可对多达 100,000 台主机进行自动监控。

Flood

由 Tricentis 推出的负载测试平台 Flood,可让您使用自己喜欢的开源工具(包括 JMeter、Gatling 和 Selenium),来进行全局化分布式性能测试。

通过扩展 Flood 的负载,用户可以在任何给定时间获得最大数量的并发性和吞吐量,进而获得汇总的实时报告。

主要特点:

能够以自主的方式模拟数千个用户,并按需向数十万的用户级别进行扩展。

在与 JMeter 或 Gatling 完全兼容的前提下,可执行简单的 URL 测试或更高级的测试计划。

能够提供功能强大且简单的 ruby-JMeter DSL(特定域的语言)。

可自建网格:用户可按需使用 Dynatrace 网格节点、或托管自己的网格节点。

能使用 JSON 或 CSV 格式的原始数据,准确地报告单事务级别的描述性统计信息。

仅为使用的测试负载架构付费,无需按照测试或模拟的用户数付费

可使用自定义的颜色和图标进行标记,用户可以在自己的域中共享测试结果。

可将测试结果与 New Relic、以及 Flowdock 等其他云服务集成。

售价:

团队版:50 个节点小时,299 美元每月。

企业版:需向供应商获取定价信息。

与众不同之处:

由于独立于工具平台,因此可与新的工具相集成。

无群集、无共享架构,可扩展为大型测试。突破了传统设置中的典型瓶颈。

实时的报告和交互式的仪表板,更直观、更易于共享。

能长期存储测试结果,以便用户不断地评估性能。

Gatling Frontline

Gatling 是一个基于 Scala、Akka 和 Netty 的开源负载和性能测试框架。该工具可用于分析和测量各种服务的性能,并能重点关注 Web 应用。

为了促进连续性测试,它可以通过与其他构建工具的集成,以提供更多的网络记录器和报告类型。其付费企业版 Gatling Front Line,能够提供更高级的分析与集成。

主要特点:

具有独立的 HTTP 代理记录器。

提供基于 Scala 的脚本。

可用于测试开发用户友好的自解释性 DSL。

其异步非阻塞引擎(Asynchronous non-blocking engine),可实现优良性能。

支持 HTTP(S)协议,也可用于对 JDBC 和 JMS 的负载测试。

提供验证和断言。

能够提供全面的 HTML 报告。

售价:

其开源版本是免费的。

Frontline On-premises:不限制测试,起价 400€ 每月。

Frontline Cloud/based:不限制测试,起价为 3 欧元每小时。

与众不同之处:

由于是用 Scala 编写的,因此 Gatling 可以在任何系统上运行,它既可以在本地计算机上,也可以在云服务器上运行和创建各种测试。

其自带的仪表板可直观地反映测试结果,而无需添加任何插件。同时,它产生的报告采用易于事后分析的 HTML 文件格式。

它通过一个集成的断言 API,提供执行功能性断言的完整工具库。该 API 允许用户运行不同类型的功能性检查、以及性能测试。

由于 Gatling 定义了一种特定域的语言,因此用户可以编写非常清晰且易读的测试用例。

Load Impact

Load Impact 是一种云服务。它能够通过本地测试、回归测试、云端测试和 A/B 测试等方式,来测试网站、应用程序和 API 的性能。

您只需要在 ES6 JavaScript 中编写测试代码,或使用 Load Impact GUI 生成测试所需的 JavaScript,便可转换为现有的 Postman 集合、并进行 JMeter 测试。

当然,您也可以使用 CLI 在本地计算机、或云端测试分布在多个地理位置的应用。

主要特点:

可触发多达 120 万个并发用户的大规模负载测试。

无需安装许可证或其他软件,便可实现按需访问。

支持任何基于 HTTP 的应用程序或服务。

通过客户端和网络仿真,来实现移动测试。

支持多地域的分布式负载测试。

提供 API 测试。

附带自动化的高级脚本。

提供服务器监控。

提供易用的场景记录器。

能够模拟浏览器。

可添加额外的 IP。

提供 Jenkins 和 TeamCity 插件。

支持测试档案。

提供 REST API。

提供 Java 和 Python SDK。

具有实时的数据和仪表板。

提供专业的服务和支持。

能够按照每日、每周、每月来安排测试。

具有交互式图表。

能够加载脚本 API(例如 JSON 和 XML 解析等)。

售价:

免费试用。

可根据云端或本地的执行方式来改变计划。

与众不同之处:

真实负载测试:Load Impact 能够运行反映现实情况的负载测试。

全局负载:在单个测试中,Load Impact 可以同时从世界上多达 10 个不同的地理位置生成负载。

重度测量:Load Impact 在计算每个传输资源的响应率方面做足了“功课”。客户可以籍此获得高质量的分析,进而定位并解决问题。此外,Load Impact 还可以检测 CPU 与内存的使用率、磁盘与网络的 I/O。

LoadUI Pro

LoadUI 是一款主要针对在 Windows、Linux 和 Mac OS 上运行的 Web 服务,进行负载测试的软件。

为了测试 API 的速度和可扩展性,它允许用户在发布到生产环境之前,预览 API 的性能行为,并将性能分析进行“左移”(shift left)。

由 SoapUI 提供的 LoadUI Pro 只需单击,便可将 SoapUI 的测试重用为负载测试。

主要特点:

提供基于云端 API 的负载测试。

可重用现有的功能性测试:在不同的负载测试场景下,可使用现有的 SoapUI Pro 测试。

对于全面的 API 负载测试,LoadUI Pro 提供了预构建的加载策略,您可以按需进行配置。

提供并行的 API 负载测试:通过同时运行多个负载测试场景,以了解在各种条件下,目标 API 的性能。

提供隔离负载测试:通过 ServiceV Pro 或 VirtServerto,LoadUI Pro 可以针对虚拟化资产采取复杂的加载方案,以便最终测试结果不会受到第三方 API 的影响。

其服务器监控服务可以帮助用户,诊断出那些导致延迟和瓶颈的资源。

售价:

LoadUI Pro Small,固定式许可证:每年 4,999 美元。

LoadUI Pro Medium,固定式许可证:每年 9,999 美元。

ReadyAPI,固定式或灵活式许可证:需联系供应商询价。

与众不同之处:

使用 6 种内置的策略,来模拟各种类型的负载。

支持自动生成数据,和从数据库或 CSV 中捕获数据,并将这些数据链接到用户的测试中。

能够兼容 SoapUI 测试。

NeoLoad

专为 Web 和移动应用程序而设计的 NeoLoad,是一款功能强大的负载与性能测试软件解决方案,它可以模拟大量用户,并分析目标服务器的行为。

NeoLoad 通过监控模块来识别性能的瓶颈,进而在生产环境出现严重问题之前予以纠正。

它可以协助用户部署各种使用到 Flex、Silverlight、GWT、Ajax Push、WebSocket 和 GoogleSPDY 等最新技术的外网、内网、以及移动应用。

主要特点:

能够支持广泛的技术。

提供无脚本的设计和可视化的编程。

支持实时调试和监控。

支持高负载。

支持网络虚拟化。

带有设备与浏览器的模拟器。

支持云平台。

广泛地支持对于基础设施的监控。

提供详细的报告和深入的结果分析。

用户可以共享测试结果、设计和虚拟用户池,以实现轻松的协作。

提供多种集成和 API。

售价:

免费版:适用于运行少量负载、以及性能测试的开发与测试人员。

标准版:一个测试人员单次只能测试一个应用程序。*

专业版:适用于一次仅测试一个应用程序的团队。*

企业版:适用于同时测试多个应用程序的组织。*

VUH 版:适用于需要测试具有灵活许可证的大规模组织。*(*请联系供应商了解具体价格信息)

与众不同之处:

支持桌面和移动设备的所有标准,提供针对 RIA 的性能测试。

能够监控市面上的所有主流服务器。

企业级提供高效、且可无扩展限制的基础架构监控功能,能与 APM 工具集成。

作为一款易用的负载测试工具,它支持:无脚本测试的创建、GUI 驱动的设计、以及自动化的参数。

提供灵活、且低成本许可证与维护选项。

New Relic

New Relic 是一种 Web 应用性能服务,它旨在与用户的 Web 应用开展实时协作。

无论是物理数据中心,还是数千个 Amazon Elastic Compute Cloud(Amazon EC2)或 Microsoft Azure 的实例,New Relic Infrastructure 都能够通过灵活、动态的服务器监控,让运营团队针对复杂系统做出明智的决策。

您可以在 New Relic 中查看应用程序的重要性能数据,例如:按照地理位置和浏览器类型,来获悉响应时间和实时的 Web 事务。

主要特点:

易于设置实时的指标和分析。

具有灵活的仪表板。

能够将应用程序的性能与最终用户的体验相关联。

能够连接应用程序与基础架构。

可提供丰富、详细的交易数据。

通过按需诊断的工具,来进行实时的错误分析。

能够与 DevOps 工具相集成。

提供各种云服务工具。

能够按需扩容。

售价:

价格取决于实例的大小、数量和运行的总时间。

与众不同之处:

适用于所有不同的 Web 开发语言,无兼容性问题

作为一种云服务,您可以随时随地访问到。

通过直观的性能指标仪表板,您可以基于“浏览器页面加载时间”,来深入了解各种实例在执行 Web 应用、网络、处理 DOM、呈现页面时所需的时间。

OctoPerf

作为负载测试工具,OctoPerf 能够带来完整的 Web 用户体验。它的 SaaS 负载测试解决方案、和本地部署的企业版都带有 Web UI。

您可以通过设置加载策略,执行负载测试,来获取 Web 浏览器的相应分析。OctoPerf 拥有一个硬核的敏捷开发团队。

他们提供了各种文档、视频教程、方法培训、以及实时聊天式的用户支持。

主要特点:

全面支持 Apache JMeter。

能够自动关联框架。

带有无代码的脚本引擎。

提供云端和本地的部署负载的注入。

提供免费且无限制的服务器监控引擎。

能够实时且自定义地导出分析报告。

提供结果趋势与比较。

通过工作台来支持协作。

提供细粒度的服务水平协议(SLA)。

提供与 APM 的集成。

提供 Jenkins 集成和 REST API。

售价:

免费版:50 个并发用户,无限测试,提供 2 个负载生成器。

基本版:1,000 个并发用户,每年 200 个测试,无限负载生成器,99€ 每月。*

专业版:3,000 个并发用户,每年 250 个测试,无限负载发生器,499€ 每月。*

按需版:支持尽可能多的并发用户与测试(可联系供应商了解价格信息)。(*为年度定价)

与众不同之处:

通过 OctoPerf 的监控和由 APM 集成监控的特定网络接口、数据库、甚至是操作系统的流程,让用户深入了解服务器端发生的情况。

与其他 SaaS 负载测试解决方案相比,OctoPerf 为用户提供了全面集成的解决方案。从设计到分析,用户可以在其 Web 界面中执行所有的操作。

允许用户通过图形脚本引擎,轻松地创建真实的测试。用户只需点击几下,便可处理各种动态参数,进而导入任何 JMeter JMX 文件或 Http Archive。

Redline 13

RedLine 13 专注于将连续的负载测试带入云端。它提供了一种命令和控制式的架构,可通过使用 Amazon Web Services(AWS)云技术,来大规模地存储、规划、启动、监控和报告各种性能测试。

主要特点:

可构建打包,自定义与重复测试,轻松地交付 QA,来简化测试流程。

通过云端和本地配置的相关控制,来完全管控 AWS 环境中各项测试。

为方便起见,所有 RedLine 13 用户的负载测试都会得到备份与保存。当您需要再次运行相同的测试时,只需点击“克隆测试”按钮即可。

只要您愿意,完全可以在无限量的服务器上运行无限量的测试。

可以从 1,000 个用户扩展到 1,000,000 个用户。

用户可以访问自己的开源负载测试插件、自己制作插件、以及通过UBIK中的插件来简化测试过程。

通过与 Jenkins 集成,来完成负载测试的持续集成过程。

从实时图表到生成可下载的报告,它能够持续监控负载测试的全程。

售价:

自带免费计划。

单个用户的基本计划:每月 75 美元,每年 500 美元。

测试团队的高级计划:每月 299 美元,每年 2,500 美元。

自定义企业计划:请与供应商联系以获取定价信息。

与众不同之处:

开放式架构可用于构建和运行负载测试。

允许用户构建打包、自定义与重复测试。

通过云端和本地配置的相关控制,来完全管控 AWS 环境中各项测试。

Taurus

由 BlazeMeter 创建的开源框架 Taurus,提供了一种创建和运行性能测试的简单方法。

它能够与 Selenium、Gatling 或 JMeter 等其他开源功能及性能测试软件轻松地集成。同时,Taurus 使用到了易于理解的 YAML 文件。

主要特点:

易于阅读、且具有友好的版本控制,通过统一的 DSL,来定义不同的负载测试场景。

可执行现有的 JMeter(或是 Grinder、Gatling、Selenium)测试。

可根据 DSL 创建新的测试。

能够将多个现有的测试脚本、或是 DSL 驱动的测试,合并到同一场景中。

提供实时的报告。

提供与 JUnit 兼容的测试结果。

可灵活地自定义测试成功与失败的标准。如果测试结果超过了某个阈值,可自动将其标记为失败。

独立于平台,可运行在任何支持 Python 和 Java 的环境中。

售价:

免费/开源。

与众不同之处:

易于设置与升级。

能够与 BlazeMeter 报告服务相集成。

在执行测试期间,能够在控制台上显示统计信息和图表。

更多精彩

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190905A0A6IO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券