图片来自 Unsplash
众所周知,性能测试可以揭示一个别系在各种情形下的行为与相应办法。某个别系在 1,000 个并发用户下能够运行稳健,并不即是它在面对 100,000 个并发用户时,仍能运行正常。
因此我们在系统性能方面,紧张着眼于三个紧张目标:

在此,我们列出了 14 种针对运用程序性能监控与负载测试的工具,以帮助您构建和掩护具有高性能和高可靠性的系统。
把稳,虽然它们中的一些是开源的,但是绝大多数会在供应免费试用的根本上,有着对应的付费版本。
AgileLoad
http://www.agileload.com/
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
https://jmeter.apache.org/
作为负载测试工具界的实际标准与“王者”,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
https://www.appdynamics.com/
作为一款领先的测试工具,AppDynamics 可以帮助用户剖析、优化和预测繁芜系统中的瓶颈。用户可以将其用在本地、测试环境、产品支配期间、以及云端。
它拥有针对 .Net、Node JS、PHP、Java、C ++、Python、Apache Web Server 和 GoLang 的代理。用户可以用它来实时监控各种运用程序、业务、以及终极用户。
AppDynamics 号称其平台可帮助您通过更加智能的绩效管理方法,将运用性能、客户体验与业务成果联系起来。
紧张特点:
具有代码级的可视性。供应动态基线和强大的警报做事。供应运用性能管理的代理。能够保存数据。可以监控多个平台。能够办理生产环境中的性能问题。供应随韶光推移的数据库性能趋势。可在大容量的环境中供应持续监控。即装即用。供应数据库代理。具有做事器可视性。供应综合监控。能对移动真个真实用户供应监控。能对浏览器的真实用户监控。售价:
分为三个层次:APM Pro、APM Advanced 和 APM Peak,供应商供应不同售价。分歧凡响之处:
通过统一的剖析功能,确保企业得到实用的信息。AppDynamics 采取称为统一监控的创新方法,将各种 AppDynamics 运用程序整合到一个强大的办理方案中,以帮助用户确定导致性能问题的确切来源。BlazeMeter
https://www.blazemeter.com/
BlazeMeter 是一家供应“性能和负载测试即做事”的供应商。它供应了一个全新且完全的持续测试平台,可以帮助企业实现向左移动(shift-left)。
BlazeMeter 的 Web 界面,可用于创建静态负载测试,以及通过运行 JMeter 脚本来进行的动态负载测试。
BlazeMeter 的紧张上风之一是它的“企业”功能(即,顶级的开源负载测试运用),个中包括:分布式测试、实时报告、与开拓职员工具的集成、对持续集成(CI)和运用性能的监控(APM)。
紧张特点:
能与 Apache JMeter 完备兼容。可创建多可达 100 万并发用户的测试。能在数分钟内完成测试。可运行无脚本的测试、或上传 URL 列表。可在云端或本地运行。可在多个地理位置运行测试。可在真实设备上仿照移动端测试。可通过脚本和报告共享的办法,来促进团队协作。供应多种工具支持。能与领先的 CI 和 APM 工具相集成。支持专业的做事。供应负载测试结果的实时详细报告。可为已测试的运用行为设置 KPI。供应桌面和移动真个用户体验监控。售价:
免费版:50 个并发用户基本版:99 美元每月(1000 个并发用户)专业版:499美元每月(5000 个并发用户)无限版:需向供应商索取售价(为年度定价)分歧凡响之处:
BlazeMeter 通过大略易用的界面和直不雅观的图表,让用户实时查看到测试的结果,并能轻松地比较多种测试。它具有灵巧的定价,可适应以小时、月或年为单位的利用量。无需支付设置或掩护的用度。BlazeMeter 的专业做事团队可以帮助用户设置、乃至运行性能测试。Dynatrace
https://www.dynatrace.com/
Dynatrace 是一种被广泛利用的运用程序性能管理工具。它具有可用于监控 Java 和 .net 运用程序的高等功能,可帮忙用户轻松地识别出运用程序中的瓶颈与缺点。
通过利用 PurePath 技能,Dynatrace 能够在浏览器中,供应横跨所有层次、以及数据库端到端事务级的详细信息。
特殊是在代码级别、以及调用外部做事的事务中,它能够通过详细信息,来帮忙创造性能问题。
该工具可以检测相应韶光、事务速率、吞吐量、以及在系统利用中涌现的非常情形。
紧张特点:
支持全栈创造。具有全栈性能管理功能。具有可视化的运用架构。供应人工智能剖析。具有大规模的自我修复能力。能够检测 vMotion 事宜。供应数字体验管理。供应容器、云和根本架构的管理。售价:
Dynatrace 供应免费试用,详细售价需联系供应商。分歧凡响之处:
Dynatrace 能够供应大数据剖析。DevOps 团队可以优化人工智能干系技能,以探求可操作性的剖析与答案。可对多达 100,000 台主机进行自动监控。Flood
https://flood.io/load-performance-testing-tool/
由 Tricentis 推出的负载测试平台 Flood,可让您利用自己喜好的开源工具(包括 JMeter、Gatling 和 Selenium),来进行全局化分布式性能测试。
通过扩展 Flood 的负载,用户可以在任何给定时间得到最大数量的并发性和吞吐量,进而得到汇总的实时报告。
紧张特点:
能够以自主的办法仿照数千个用户,并按需向数十万的用户级别进行扩展。在与 JMeter 或 Gatling 完备兼容的条件下,可实行大略的 URL 测试或更高等的测试操持。能够供应功能强大且大略的 ruby-JMeter DSL(特定域的措辞)。可自建网格:用户可按需利用 Dynatrace 网格节点、或托管自己的网格节点。能利用 JSON 或 CSV 格式的原始数据,准确地报告单事务级别的描述性统计信息。仅为利用的测试负载架构付费,无需按照测试或仿照的用户数付费可利用自定义的颜色和图标进行标记,用户可以在自己的域中共享测试结果。可将测试结果与 New Relic、以及 Flowdock 等其他云做事集成。售价:
团队版:50 个节点小时,299 美元每月。企业版:需向供应商获取定价信息。分歧凡响之处:
由于独立于工具平台,因此可与新的工具相集成。无群集、无共享架构,可扩展为大型测试。打破了传统设置中的范例瓶颈。实时的报告和交互式的仪表板,更直不雅观、更易于共享。能长期存储测试结果,以便用户不断地评估性能。Gatling Frontline
https://gatling.io/
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
https://loadimpact.com/
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
https://www.soapui.org/professional/loadui-pro.html
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
https://www.neotys.com/neoload/overview
专为 Web 和移动运用程序而设计的 NeoLoad,是一款功能强大的负载与性能测试软件办理方案,它可以仿照大量用户,并剖析目标做事器的行为。
NeoLoad 通过监控模块来识别性能的瓶颈,进而在生产环境涌现严重问题之前予以纠正。
它可以帮忙用户支配各种利用到 Flex、Silverlight、GWT、Ajax Push、WebSocket 和 GoogleSPDY 等最新技能的外网、内网、以及移动运用。
紧张特点:
能够支持广泛的技能。供应无脚本的设计和可视化的编程。支持实时调试和监控。支持高负载。支持网络虚拟化。带有设备与浏览器的仿照器。支持云平台。广泛地支持对付根本举动步伐的监控。供应详细的报告和深入的结果剖析。用户可以共享测试结果、设计和虚拟用户池,以实现轻松的协作。供应多种集成和 API。售价:
免费版:适用于运行少量负载、以及性能测试的开拓与测试职员。标准版:一个测试职员单次只能测试一个运用程序。专业版:适用于一次仅测试一个运用程序的团队。企业版:适用于同时测试多个运用程序的组织。VUH 版:适用于须要测试具有灵巧容许证的大规模组织。(请联系供应商理解详细价格信息)分歧凡响之处:
支持桌面和移动设备的所有标准,供应针对 RIA 的性能测试。能够监控市情上的所有主流做事器。企业级供应高效、且可无扩展限定的根本架构监控功能,能与 APM 工具集成。作为一款易用的负载测试工具,它支持:无脚本测试的创建、GUI 驱动的设计、以及自动化的参数。供应灵巧、且低本钱容许证与掩护选项。New Relic
https://newrelic.com/
New Relic 是一种 Web 运用性能做事,它旨在与用户的 Web 运用开展实时协作。
无论是物理数据中央,还是数千个 Amazon Elastic Compute Cloud(Amazon EC2)或 Microsoft Azure 的实例,New Relic Infrastructure 都能够通过灵巧、动态的做事器监控,让运营团队针对繁芜系统做出明智的决策。
您可以在 New Relic 中查看运用程序的主要性能数据,例如:按照地理位置和浏览器类型,来获悉相应韶光和实时的 Web 事务。
紧张特点:
易于设置实时的指标和剖析。具有灵巧的仪表板。能够将运用程序的性能与终极用户的体验干系联。能够连接运用程序与根本架构。可供应丰富、详细的交易数据。通过按需诊断的工具,来进行实时的缺点剖析。能够与 DevOps 工具相集成。供应各种云做事工具。能够按需扩容。售价:
价格取决于实例的大小、数量和运行的总韶光。分歧凡响之处:
适用于所有不同的 Web 开拓措辞,无兼容性问题作为一种云做事,您可以随时随地访问到。通过直不雅观的性能指标仪表板,您可以基于“浏览器页面加载韶光”,来深入理解各种实例在实行 Web 运用、网络、处理 DOM、呈现页面时所需的韶光。OctoPerf
https://octoperf.com/
作为负载测试工具,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
https://www.redline13.com/blog/
RedLine 13 专注于将连续的负载测试带入云端。它供应了一种命令和掌握式的架构,可通过利用 Amazon Web Services(AWS)云技能,来大规模地存储、方案、启动、监控和报告各种性能测试。
紧张特点:
可构建打包,自定义与重复测试,轻松地交付 QA,来简化测试流程。通过云端和本地配置的干系掌握,来完备管控 AWS 环境中各项测试。为方便起见,所有 RedLine 13 用户的负载测试都会得到备份与保存。当您须要再次运行相同的测试时,只需点击“克隆测试”按钮即可。只要您乐意,完备可以在无限量的做事器上运行无限量的测试。可以从 1,000 个用户扩展到 1,000,000 个用户。用户可以访问自己的开源负载测试插件、自己制作插件、以及通过UBIK中的插件来简化测试过程。通过与 Jenkins 集成,来完成负载测试的持续集成过程。从实时图表到天生可下载的报告,它能够持续监控负载测试的全程。售价:
自带免费操持。单个用户的基本操持:每月 75 美元,每年 500 美元。测试团队的高等操持:每月 299 美元,每年 2,500 美元。自定义企业操持:请与供应商联系以获取定价信息。分歧凡响之处:
开放式架构可用于构建和运行负载测试。许可用户构建打包、自定义与重复测试。通过云端和本地配置的干系掌握,来完备管控 AWS 环境中各项测试。Taurus
https://gettaurus.org/
由 BlazeMeter 创建的开源框架 Taurus,供应了一种创建和运行性能测试的大略方法。
它能够与 Selenium、Gatling 或 JMeter 等其他开源功能及性能测试软件轻松地集成。同时,Taurus 利用到了易于理解的 YAML 文件。
紧张特点:
易于阅读、且具有友好的版本掌握,通过统一的 DSL,来定义不同的负载测试场景。可实行现有的 JMeter(或是 Grinder、Gatling、Selenium)测试。可根据 DSL 创建新的测试。能够将多个现有的测试脚本、或是 DSL 驱动的测试,合并到同一场景中。供应实时的报告。供应与 JUnit 兼容的测试结果。可灵巧地自定义测试成功与失落败的标准。如果测试结果超过了某个阈值,可自动将其标记为失落败。独立于平台,可运行在任何支持 Python 和 Java 的环境中。售价:
免费/开源。分歧凡响之处:
易于设置与升级。能够与 BlazeMeter 报告做事相集成。在实行测试期间,能够在掌握台上显示统计信息和图表。原文标题:14 Best Performance Testing Tools and APM Solutions,作者:Andrei Guchin
【51CTO原创稿件,互助站点转载请注明原文作者和出处为51CTO.com】