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比较相关推荐

  1. Python性能测试工具Locust入门

    一.性能测试基础 1.性能测试该怎么做? 利用工具模拟真实用户操作. 2.性能测试基础: 性能:事物的性质和能效 -->效率性能 (时间/资源/容量) 思考:如何评价软件系统的性能? 快慢:衡量 ...

  2. 深入浅出开源性能测试工具 Locust (使用篇 1)

    在<[LocustPlus序]漫谈服务端性能测试>中,我对服务端性能测试的基础概念和性能测试工具的基本原理进行了介绍,并且重点推荐了Locust这一款开源性能测试工具.然而,当前在网络上针 ...

  3. 基于python的性能测试工具–locust

    基于python的性能测试工具–locust  https://www.cnblogs.com/chunyanxu/p/8732720.html 性能测试工具Locust https://www.cn ...

  4. 性能测试工具--locust

    在了解性能测试的过程中,了解到了一种性能测试工具locust,整理以下内容(安装及简单实例)仅供参考.更多知识可参考locust.io官网进行查看 locust:有web界面,且支持常见协议.开源免费 ...

  5. 性能测试工具locust压测介绍

    官方文档:https://docs.locust.io/en/stable/index.html 1.初识locust Locust 完全基于Python 编程语言,采用python 编写压测脚本,且 ...

  6. python服务器性能测试工具locust使用指南

    文章目录 前言 安装 基本使用 User类 @task装饰器 任务间隔 @tag装饰器 前置与后置 HttpUser类 常用参数 命令行配置 配置文件配置 常用压测场景实战 高用户高并发场景压测 每个 ...

  7. 【软件测试】性能测试工具基础-loadrunner12+jmeter

    上期文章,我们讲了基于python的selenium,用于做自动化测试.今天就简单说一下性能测试方面的一些知识点. 文章目录 一.性能测试相关概念 二.loadrunner基本使用 1.创建工程 2. ...

  8. python locust api_性能测试工具--Locust官方文档(API)解读(全)

    文章略长Locust学习笔记汇总 若有错误,请指正 内容以官网为准https://locust.io/ Locust简介 Locust是什么? Locust是一个简单易用的分布式用户负载测试工具.它用 ...

  9. 基于python的性能测试工具_基于 Python 的性能测试工具 locust 与 LR 的简单对比[转发]...

    背景 最近自己开发了一个小的接口,功能测完了,突然想测下性能,原来做性能测试,我一直用的是HP的LoadRunner,前一段时间正好看过locust,想想就用这个来测测性能吧. 由于对LR比较熟,正好 ...

最新文章

  1. Spring Mybatis实例SqlSessionDaoSupport混用xml配置和注解
  2. Effective C++ 11 在operator=中处理“自我赋值” 笔记
  3. php5 函数,2017PHP5函数大全
  4. kdj超卖_kdj超买超卖是什么意思?kdj指标里说的“超买区,超卖区”什么意思?...
  5. LeetCode 数据库 182. 查找重复的电子邮箱
  6. WCF中的ServiceHost初始化两种方式(宿主)
  7. Restlet框架– Hello World示例
  8. 主机消息服务器在哪找,怎么找电脑服务器主机地址吗
  9. python做自动化控制postman_Python自动化学习笔记(1)认识接口测试以及postman、Charles工具简单应用...
  10. 7-7Hadoop学习之常用Linux命令与集群配置
  11. python简单查询用户
  12. 基于孪生网络的单目标跟踪持续汇总
  13. 爬取mzi.com妹子图片网站(requests库)
  14. Matlab中单元数组和结构数组
  15. 蓝桥杯学习03-共阳数码管的静态显示
  16. CentOS7防火墙配置,重启
  17. 005 偶数分频,奇数分频,倍频
  18. C语言经典例题-将输入的两位数转成英文
  19. 从传统营销到网络销售的四个特点
  20. 《linux命令行与shell脚本编程大全》第三版 - 核心笔记(3/4):函数与图形化脚本

热门文章

  1. 【无聊之作】①CSS测试三基色融合测试是否能得到新颜色(白、黄、橙等);②CSS赋值英文red、green、blue与三基色RGB对应测试
  2. webstom的eslint中的fix eslint problems 如何对.vue文件生效
  3. Android图表控件MPAndroidChart——LineChart实现 XY轴、原点线的直尺刻度样式
  4. Vue.js从入门到“卸载” Vue教程
  5. 在Excel中快速输入时间精确到秒
  6. docker开放端口
  7. Joplin利用TeraCLOUD进行WebDAV同步完美替代坚果云同步
  8. python 操作csv将符合条件的多行数据合并为一行
  9. iOS_隐藏系统音量(MPVolumeView初探)
  10. 夜间(低光照)目标检测数据集整理:人脸检测,行人检测