性能测试工具Locust和JMeter比较

2024-06-23 15:58

本文主要是介绍性能测试工具Locust和JMeter比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

pache JMeter™和Locust都是是最受欢迎的性能测试工具。

JMeter和Locust - 简介

JMeter是久经考验的性能框架之一,其第一个版本大约在20年前发布。 它是用纯Java语言编写的,。 最初,JMeter开发用于执行Web和FTP应用程序的负载测试。 但是,现在它允许测试几乎所有应用程序和协议,使用户能够使用与任何OS平台兼容的桌面应用程序来创建测试。

https://github.com/apache/jmeter 3000+星

Locust是Python编写的相对新颖的性能框架,在过去的五年中广为人知。 该框架的主要特点是它允许您使用纯Python编写性能脚本。具有高度可扩展性,因为它基于事件的完全实现。 由于这些事实,Locust拥有一个广泛且快速发展的社区,他们比JMeter更喜欢这个框架。

https://github.com/locustio/locust 10000+星

开源许可证

工具许可范围的问题是最重要的问题之一,因为您可能想知道是否需要支付额外的第三方工具来完成负载测试。 如果某个工具是开源的,那么您几乎可以实现为性能测试设置的任何目标,而无需任何额外付款。 开源JMeter和Locust也不例外。

JMeter和Locust都提供了许可软件许可证,该许可证支持免费软件,对软件的分发方式提出最低要求。 JMeter是由Apache开发的,它基于Apache License 2.0,而Locust是由一个由社区驱动的开发人员组成的小团队开发的 ,基于MIT许可证。 在这两种情况下,这些工具都是开源的,允许您自由使用它们,而不受任何使用限制。

负载测试创建和维护

性能测试工作流程有三个主要步骤:创建,运行和分析。 一般第一步是最耗时的。

编写JMeter性能测试的最常用方法是使用其GUI模式。 JMeter GUI模式提供了一个桌面客户端,允许您轻松创建测试,而无需编写单行代码(直到您需要创建棘手的测试)。 所以最简单的场景可能如下所示:

JMeter非常简单,通常,即使是没有经验的工程师也可以毫无困难地上手。但是如果需要,您可以使用Java在GUI和非GUI模式下使用代码。 但是,由于脚本实现的复杂性(因为JMeter旨在与GUI模式一起使用)以及缺乏如何制作此类脚本的文档,因此这种方式在JMeter社区中并不流行。

Locust则需要python编程基础。

支持的协议

理想情况下,您应该能够使用尽可能少的工具测试所有工具,只要它不会影响测试质量。

使用JMeter,您可以使用完整的内置函数和第三方插件,在一个地方创建所有内容的性能测试。 您无需编码即可测试不同的协议甚至数据库。 这些包括JDBC,FTP,LDAP,SMTP等。JMeter还可以通过jar包扩展,比如加载python,可以使用python脚本。

根据文档,Locust主要用于基于HTTP Web的测试。但可以扩展其默认功能并创建自定义Python函数来测试可以使用Python编程语言进行测试的任何内容。

并发用户数

JMeter和Locust有完全不同的方式来处理机器资源。 JMeter有一个基于线程的模型,它为每个用户分配一个单独的线程。 每个步骤的线程分配和基准测试需要大量资源,这就是为什么JMeter对于您可以在一台机器上模拟的用户数量非常有限的原因。 您可以在一台计算机上运行的用户数取决于许多因素,如脚本复杂性,硬件,响应大小等。 如果您的脚本很简单,JMeter允许您在一台机器上运行多达数千个,但脚本执行逐渐变得不可靠。

image.png

image.png

Locust有完全不同的用户模拟模型,它基于事件和异步方法,以gevent coroutine作为整个过程的基石。 这种实现允许Locust框架在一台机器上轻松模拟数千个并发用户,即使是在非常规的笔记本电脑上,也可同时运行内部有许多步骤的复杂测试。

image.png

增强灵活性

这两个工具提供相对相同的生成负载的方式 - 您可以指定在性能测试期间要使用的用户数以及它们应该加速的速度。

在JMeter中,您可以在指定字段的“线程组”控制器中配置负载:但是JMeter还有其他插件,可以让您配置非常灵活的负载。 最好的方法之一是使用Ultimate Thread Group ,它允许用户制作非常具体的加载模式:

Locust有不同的方法。 当您运行性能脚本时,Locust会自动在http://localhost:8089上启动Web界面的服务器,该界面为您提供仅指定线性负载的输入元素, 当然也可以命令行执行通过参数定制。

脚本录制

这是JMeter具有强大优势的地方,因为它具有脚本录制的内置功能,而Locust根本没有此功能。 除此之外,还有许多第三方插件可以为JMeter制作脚本录制。 记录此类脚本最方便的方法之一是使用BlazeMeter chrome扩展。

参考资料

  • Locust和JMeter比较 https://www.jianshu.com/p/dd0fcfdfa561
  • JMeter性能测试工具快速入门教程-目录 https://www.jianshu.com/p/7b1a3346dc0f
  • python测试开发项目实战-目录
  • python工具书籍下载-持续更新
  • python 3.7极速入门教程 - 目录
  • 讨论qq群630011153 144081101
  • 原文地址
  • 本文涉及的python测试开发库 谢谢点赞!
  • 本文相关海量书籍下载
  • https://github.com/Blazemeter/taurus
  • https://blazemeter.com/blog/jmeter-vs-locust-which-one-should-you-choose/

测试监控

JMeter和Locust都提供了强大的内置功能来监控性能脚本并分析您的测试结果。 JMeter有许多不同的元素叫做监听器。 每个侦听器都提供特定类型的监视,你也可以使用许多现有的自定义监听器扩展默认库。另一方面,JMeter监听器在其运行的机器上消耗大量资源。这就是为什么通常,JMeter是以非GUI模式执行的,没有任何监听器或监控过程,在这种情况下,可使用3方工具,如BlazeMeter 。

image.png

Locust的监测能力稍弱,不过几乎提供了所有可用于监控基本负载的信息。在脚本运行期间,Locust运行一个简单的Web服务器,您可以在其中找到所有可用的监视结果:

image.png

image.png

与JMeter相比,Locust监控不占用您机器的大量资源。 这就是为什么Locust比JMeter有很大的好处,因为你可以使用内置监控,即使你需要模拟很多用户。 另一方面,默认监控不提供您可以从第三方工具获得的非常详细的信息。 这就是为什么你可能想检查脚本监控的其他选项。

监控和分析测试结果的最简单方法之一是使用Taurus框架和BlazeMeter报告,它为您提供出色的实时报告,并能够保存它们以进行进一步比较。 您可以查看这篇文章以获得基本想法。

JMeter和蝗虫比较表

看看这个JMeter和Locust特征和能力的比较表:

结论

对性能或灵活性要求高的建议使用Locust。反之JMeter可能是更好的选择。



作者:python测试开发_AI命理
链接:https://www.jianshu.com/p/dd0fcfdfa561
来源:简书
著作权归作者所有。。

这篇关于性能测试工具Locust和JMeter比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087612

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

关键字synchronized、volatile的比较

关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,而synchronized可以修饰方法,以及代码块。随着JDK新版本的发布,synchronized关键字的执行效率上得到很大提升,在开发中使用synchronized关键字的比率还是比较大的。多线程访问volatile不会发生阻塞,而synchronize

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr

SQL2005 性能监视器计数器错误解决方法

【系统环境】 windows 2003 +sql2005 【问题状况】 用户在不正当删除SQL2005后会造成SQL2005 性能监视器计数器错误,如下图 【解决办法】 1、在 “开始” --> “运行”中输入 regedit,开启注册表编辑器,定位到 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVer

Linux性能分析工具合集

Linux性能分析工具合集 工具合集主要包含以下各种工具,对于了解Linux系统结构、网络结构、内核层次具有一定的帮助。 Linux Performance Observability ToolsLinux Static Performance ToolsLinux Performance Benchmark ToolsLinux Performance Tuning ToolsLinux