什么是负载测试?
负载测试是性能测试的一个特定子系列,其中包括许多同时运行相同程序的并发用户。这样做是为了查看系统基础结构是否能够在不影响功能或性能的情况下处理负载。
负载测试用于帮助确定是否:
一般来说,性能测试对客户满意度至关重要。如果您的应用程序性能不能满足客户的期望,那么他们就会转向您的竞争对手。
事实上,负载测试是性能测试中最容易被误解的部分之一,在使用下面列出的工具之前,您应该了解许多负载测试的最佳实践。
下面是我们的顶级开源和免费性能负载测试工具的综合列表,您可以使用这个2022进行负载和压力测试性能工程工作。
2022年顶级负载测试工具列表
JMeter
Taurus
Locust
Fiddler with BlackWidow and Watcher
nGrinder
The Grinder
Gatling
k6
Tsung
Siege
Bees with Machine Guns
Fortio
puppeteer-webperf
Flood Element
Artillery.io
最佳性能测试工具
负载测试工具 FAQ? ?
下面是一些包含工具比较的选项,可以帮助您决定在2022年使用什么工具来提高应用程序的性能。
2022顶级负载测试工具列表
这个列表只包含了自动性能测试和 API 负载测试的顶级负载测试工具的开源和免费选项,所以你可以直接下载并立即开始,而不用花一毛钱。
Taurus
Locust
Fiddler with BlackWidow and Watcher
nGrinder
The Grinder
Gatling
k6
Tsung
Siege
Bees with Machine Guns
Fortio
puppeteer-webperf
Flood Element
Artillery.io
JMeter
JMeter 是性能领域中最流行的开放源码工具,用于帮助度量加载时间。
Apache JMeter 将自己描述为一个专门为负载测试设计的 Java 应用程序,具有度量应用程序性能和响应时间的能力。
JMeter 基本上是作为 LoadRunner 的开源替代品而构建的,因此您会发现它有许多复杂的特性。这是一个很大程度上由右键点击驱动的厚客户端 Java 应用程序。虽然有点奇怪,但是它有很强的动力。另外,专业负载测试人员需要的所有特性都可以在 JMeter 上获得。
以下是一些特性:
目前在 GitHub 上有5.1 k 星。
尽管 JMeter 是比较流行的测试工具之一,但它也有一些缺点。
例如,JMeter 对于大型分布式测试来说可能有点难以伸缩; 特别是如果您必须设置一组机器,因为您必须配置它们以便彼此通信。在执行大型 JMeter 测试时,还存在大量编排问题。
这就是 blazemeter ー taurus 开源工具可以帮助你解决所有的问题。
Taurus
虽然从技术上讲,Taurus 不是负载测试工具,但它的作用更像是在其他解决方案之上的包装器,这些解决方案隐藏了运行性能测试的复杂性。
Taurus的力量在于它允许你用 YAML 写测试。
与过去不得不提供大量特定于供应商的记录和脚本工具来度量加载时间的情况相比,这是一个巨大的飞跃。
功能
目前在 GitHub 上有14000颗star。
Locust
Locust 是一个简单易用的分布式用户负载测试工具,可以帮助您捕获响应时间。
它使用什么脚本语言? 最好的一种ー Python! :)
它可以用于帮助性能测试 站或其他应用程序。
Locust 还可以帮助您计算出一个系统可以处理多少并发用户。
像 jMeter 这样的工具所基于的是基于线程的体系结构,这种体系结构会消耗大量资源。Locust 使用一种基于事件的方法,这种方法使用的资源更少。
BlueConch 科技公司的技术领导人 Rahul Solanki 向我提到,当他将 Locust 与 JMeter 进行比较时,Locust 占用的资源数量减少了约70% 。
如果你熟悉术语“加载生成器”,Locust使用的术语“群”-因为你可以指向一个Locust群放在你的 站加载。
您可以为每个 Locust 实例定义所需的行为。它还使您能够从 web UI 实时监视蜂群的过程。
Locust的一些很酷的关键特性是:
缺点
因为它是一个新的工具,所以它的插件比 JMeter 少得多
目前在 GitHub 上有157000颗star。
Fiddler with BlackWidow and Watcher
这在性能工具列表上看起来似乎是一个奇怪的组合。
但是性能工程专家 Todd DeCapua 在之前的 PerfGuild 会议上建议使用 Fiddler 和 Watcher 以及 BlackWidow 来创建一个快速启动的自动化性能测试解决方案。
Fiddler 可以让你做很多事情,但是最好把它描述成一个数据包捕获工具。
虽然 Fiddler 可能不被认为是一个负载测试解决方案,但它可以做很多事情来调试 站问题,并且通过它的许多扩展之一,您可以完成更多的工作。
一些你可能想用 Fiddler 做的事情:
“观察者”是 Fiddler 的一个安全外接程序,它将使您能够快速得到一些安全结果。黑寡妇是一个 络爬虫,让你的功能指向一个 址,然后能够钻取的结果。
对于刚刚开始做性能工程的人来说,这三个工具一起工作可以提供一个很好的方式来获得免费的外观和感觉,以及一个人可能无法快速获得的结果。
Todd 实际上在过去的一次 PerfGuild 在线会议上有一次会议,他在会上演示了这种方法。
nGrinder
nGrinder 的 GitHub 页面将其描述为被设计为企业级性能工程解决方案。它的开发是为了简化压力测试,并提供一个允许您创建、执行和监视测试的平台。
特点:
The Grinder
Grinder 是一个基于 java 的框架。它为您提供了易于运行和创建的分布式测试解决方案,使用许多负载生成器机器来捕获最终用户的响应时间。所以你不必担心任何虚拟用户的限制。
Gatling
Gatling 是一个基于 Scala、 Akka 和 Netty 的压力工具。
这种现代体系结构方法允许您测试和度量应用程序的端到端性能,并轻松地扩展虚拟用户。
目前在 GitHub 上有5.1 k 星。
要了解更多关于Gatling的信息,请查看Gatling的创始人,Stephane Landelle 的关于正确使用Gatling进行负载测试的会议。
k6
K6是一个以开发人员为中心的开源负载测试工具,用于测试后端基础设施的性能。
您还可以使用 k6开始将性能测试包含到持续集成管道中。
6也是一个使用 Go 和 JavaScript 构建的现代负载测试工具,因此它很好地集成到了大多数开发人员的工作流程中。
目前在 GitHub 上有117000颗星。
Tsung
Tsung 是一个开源的、多协议的分布式负载测试工具。
目前在 GitHub 上有2.1 k 星。
Siege
siege是一个命令行 HTTP 负载测试和基准测试工具。它被设计用来帮助开发人员在压力下度量他们的代码。
目前在 GitHub 上有4000颗星。
Bees with Machine Guns
由芝加哥论坛 开发,这可能是这个列表中听起来最酷的性能测试工具。
机枪蜜蜂将自己描述为一个用来武装(创建)许多蜜蜂(aws EC2 instances)攻击(负载测试)目标(web 应用程序)的工具。
这个工具可以很容易地帮助您加载测试 站,需要处理高流量。
利用亚马逊 EC2
目前 GitHub 上有6000颗星。
对于企业范围的性能测试工具,LoadRunner 通常是最常见的工具之一,但是这些开源工具中的许多都可以满足您的大部分需求。此外,大多数这些工具协议可以用于性能测试 web 应用程序和性能测试 web 服务。
Fortio
Foratio 是一个很酷的负载测试库、命令行工具、高级 echo 服务器和 go (golang)中的 web UI。
这个工具允许指定一个设置的每秒查询负载和记录延迟直方图和其他有用的统计数据。
优点
目前在 GitHub 上有18000颗星。
puppeteer-webperf
随着大多数现代应用程序使用大量的 javascript 前端,客户端性能测量的需求从未像现在这样迫切。
不要忽视前端性能。
你可以使用 Puppeteer WebPerf 来收集 web 性能统计数据,比如页面加载的跟踪信息,截图获取开发工具的跟踪信息,获取运行时性能指标等等。
此外,检查我的完整前端性能测试指南的更多信息。
目前在 GitHub 上有14000颗星。
Flood Element
想要测试真正的浏览器负载吗?
Flood 创建了这个开源解决方案,以帮助使用真正的浏览器负载测试模拟用户行为。
元素是使用基于浏览器的负载测试工具的开放源码剧作家。
脚本是用打字稿创建的。
您可以像客户那样使用它来对付 Web 应用程序,打开浏览器并与页面元素进行交互。
这种方法可以帮助找到面向用户的性能问题。
它的编写方式类似于功能测试脚本,但是在 Flood 的帮助下,您可以在云中任意多个节点上快速运行负载测试脚本。
这是为数不多的开源工具之一,它允许您使用真实的浏览器创建性能测试,以更接近地模拟真实用户与应用程序的交互方式。
请阅读我的文章,浏览器级性能测试使用元素。
目前 GitHub 上有204颗星。
Artillery.io
I/o 是一个开源应用程序,它可以选择加入优质服务,以创建负载测试来模拟成千上万的用户。
它有详细的性能指标,包括:
峰值性能测试,以处理最大流量为您的后端应用程序的稳定性和可靠性。
它能够使用 JavaScript 编写自定义逻辑、发布和预测试场景,这些场景有各种各样的 NPM 模块供您使用。
它支持多种协议,包括 HTTP、 Web Socket、 Socket.IO、 Kinesis 和 HLS。
目前 GitHub 上有4397颗星。
最佳性能测试工具
在我看来,这些是用于无负载测试的十大性能负载测试工具。
和往常一样,为您的团队的压力和负载测试需求选择正确的性能测试工具取决于您需要测试什么。
使用这些压力测试和负载测试工具进行快乐的性能测试!
本人抖音账 :里面有最新最流行的automation devops等技术的介绍,欢迎大家一键三连。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!