性能测试工具locust和jmeter比较-及相关书籍下载

pythontesting pythontesting     2023-04-23     379

关键词:

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

JMeter和Locust - 简介

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

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

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

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

开源许可证

工具许可范围的问题是最重要的问题之一,因为您可能想知道是否需要支付额外的第三方工具来完成负载测试。 如果某个工具是开源的,那么您几乎可以实现为性能测试设置的任何目标,而无需任何额外付款。 开源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包扩展,比如加载jython,可以使用python脚本。

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

并发用户数

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

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

增强灵活性

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

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

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

脚本录制

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

参考资料

测试监控

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

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

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

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

结论

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

轻松使用locust&与jmeter对比

参考技术A在做接口性能测试的时候也使用过几个工具:AB、Jmeter、Locust、Vegeta。这几个工具中,应该当属Jmeter的功能最强大,使用的人也最多,但使用上也比较繁琐,如果测的接口比较单一,需要得到的值也就是并发量、每秒请... 查看详情

不会吧,都2020年了,还有人不知道jmeter和locust的区别?(代码片段)

...他们之前的区别。ApacheJMeter和Locust都是是最受欢迎的性能测试工具。当你想做性能测试的时候,你会选择什么样的测试工具呢?是会选择jmeter?locust?今天将根据自己使用经验,针对jmeter、locust常用的性能测... 查看详情

不会吧,都2020年了,还有人不知道jmeter和locust的区别?(代码片段)

...他们之前的区别。ApacheJMeter和Locust都是是最受欢迎的性能测试工具。当你想做性能测试的时候,你会选择什么样的测试工具呢?是会选择jmeter?locust?今天将根据自己使用经验,针对jmeter、locust常用的性能测... 查看详情

性能测试之locust(代码片段)

最近接触了性能压测的一款工具Locust,分享下:一、首先说下压测工具对比:Jmeter:开源免费:JMeter是一款免费的开源软件,使用它不需要支付任何费用跨平台:java开发的开源软件小巧:相比LR的庞大(LoadRunner4GB左右),它非常小... 查看详情

性能测试工具:jmeter简介及安装

一、Jmeter简介1.Jmeter:ApacheJmeter是由Apache组织的开发源代码项目,是一个纯Java桌面应用,用于压力测试和性能测量。它最初被设计用于web应用测试但后面扩展到其他测试领域。2.Jmeter作用:ApacheJmeter可以用于对静态的和动态的资... 查看详情

性能测试利器-locust框架解析

...试码同学抖音号:小码哥聊软件测试1认识Locust说起性能测试工具,大家肯定想到的都是Jmeter,是的,由于其简单易用、功能强大,已经变成主流的压测工具之一。当需要实现一些高级功能的时候,可以使用Java语言对Jmeter进行扩... 查看详情

基于locust的性能测试平台搭建

前段时间加入性能测试组,并参与搭建基于locust的性能测试平台,我分到的任务相对独立,开发locust的启动接口和停止运行接口,以下是locust运行的相关内容  查看详情

性能测试利器-locust框架解析

01认识Locust说起性能测试工具,大家肯定想到的都是Jmeter,是的,由于其简单易用、功能强大,已经变成主流的压测工具之一。当需要实现一些高级功能的时候,可以使用Java语言对Jmeter进行扩展。但是很多小... 查看详情

性能监控平台搭建--集成locust性能数据(代码片段)

...家。点这里可以跳转到教程。文章目录问题概述获取Locust性能数据接口定时采集性能数据性能数据采集一致性no-web模式下获取性能数据slave模式下不进行数据采集封装原文链接之前的几篇关于性能监控平台搭建的文章,分别... 查看详情

jmeter性能测试基本过程及示例

jmeter为性能测试提供了一下特色:jmeter可以对测试静态资源(例如js、html等)以及动态资源(例如php、jsp、ajax等等)进行性能测试jmeter可以挖掘出系统最大能处理的并发用户数jmeter提供了一系列各种形式的性能分析报告使用jmete... 查看详情

locust参数化(代码片段)

使用LoadRunner和JMeter的同学都知道,性能测试工具设置参数化颇为麻烦,但对于Python来说,生成点数据再简单不过了。参数化系统登录这里以某系统登录为例,简单介绍登录用户名密码的参数化实现fromlocustimportHttpLocust,TaskSet,taskfr... 查看详情

locust性能测试入门案例及分布式压测

前言大家好,我是洋子。性能测试已经成为作为测试工程师/测试开发工程师一项重要的专项能力,在抢红包,活动秒杀这种短时间内流量突增的场景,已或者是健康宝这种使用用户超级多的场景,我们均需要进行压力测试,确... 查看详情

locust性能评测及优化详解(代码片段)

...;看看它到底好不好用,能不能用。性能评测在《性能测试工具Locust源码浅析》中,我们进行了一个主流程的分析。本次我们将对Locust进行实际的评测,在具体的评测之前,为了评测结果尽量的准确,我们需要... 查看详情

locust性能-零基础入门系列(代码片段)

...功能点越来越多时,更需要考虑测试管理相关的内容。让性能测试更有条理和高效。以如下官方例子来讲解TaskSet的用法以及在测试运行中的一些细节。fromlocustimportUser,TaskSet,between,task,constantclassForumSection(TaskSet):wait_time=cons 查看详情

jmeter笔记16|性能参数配置及测试监听(代码片段)

16|性能参数配置及测试监听1性能参数配置1.1为何要进行性能参数配置?1.2调整分析1.3调整策略2测试监听2.1JMeter监听器2.1.1SummaryReport2.1.2AggregateReport2.2开源监听插件1性能参数配置1.1为何要进行性能参数配置?运行场景时&#x... 查看详情

locust参数化(代码片段)

...parameterization/ 使用LoadRunner和JMeter的同学都知道,性能测试工具设置参数化颇为麻烦,但对于Python来说,生成点数据再简单不过了。参数化系统登录这里以某系统登录为例,简单介绍登录用户名密码的参数化实现fromlocustimportHt... 查看详情

locust接口压测

...言:locust是完全基于python,是一个简单易用的分布式负载测试工具Locust特性使用Python编写模拟用户行为的代码,无需繁琐的配置分布式可扩展,能够支持上百万用户自带Web界面不仅能测试web系统,也可以测试其它Locust思想在测试... 查看详情

jmeter性能测试基本过程及示例

jmeter为性能测试提供了一下特色:jmeter可以对测试静态资源(例如js、html等)以及动态资源(例如php、jsp、ajax等等)进行性能测试jmeter可以挖掘出系统最大能处理的并发用户数jmeter提供了一系列各种形式的性能分析报告使用jmete... 查看详情