Locust工具在市场上不如Loadrunner / JMeter流行,使用的范围也没有那么广,但不可否认其是一款很不错的工具。我个人觉得Locust使用不是那么广泛,主要是因为一下方式:

  • Locust需要一定的Python编程基础,有一定的学习成本。

  • Locust既有的协议支持有,主要有HTTP等。很多协议只要Python支持即可。

  • UI操作界面,很多时候,用户在使用的时候,会考虑上手容易度,Loadrunner/JMeter都有很强的用户交互设计,在客户端强大的功能下面,用户不需要太强的编程能力,也可以完成场景的模拟和脚本的编写。

但是未来压测工具的趋势,一定是可编程性占据主流。主要原因主要如下:

  • 可编程性可以和开发团队有更好的贴合度,很多传统压测工具不好/不能模拟的场景,都可以通过编码的方式去实现,让测试更加灵活,覆盖度有保证。并且开发人员也可以去实现压测场景脚本。而性能测试人员可以更加注重去分析问题

  • 省钱。这个理由会让人无法抗拒。不过可能有人要反驳了,JMeter等开源工具不也是免费的吗?是的,软件本身是免费的,但是使用起来不一定是免费的。现在比较流行云平台,所有的环境(开发/测试/UAT/线上)基本都部署在上面。而云平台的一个特性就是按需申请和按需收费。那么在使用诸如Loadrunner/JMeter 这类采用进程和线程的工具,是比较耗费内存的。这也就决定了,在单机上很难模拟出高并发,而Locust这类工具在这方面的表现就要好的多。为啥?归根结底就是资源多使用效率,Locust采用了gevent开发框架,底层利用greenlet微线程机制,其中采用了epoll事件监听机制,监听什么?比如我们利用多线程去模拟多用户,线程1执行到了服务器传输内容,而CPU也正在等待网络IO,而epoll机制就开始起作用了,它会将线程资源转向执行其他线程任务。而当耗时的网络IO或者磁盘IO结束时,greenlet会适时将CPU资源转回去继续执行线程1的任务。综上,单机并发,Locust就可以占据优势,并且Locust也能实现分布式测试,所以从经济性上考虑,它是省钱的。

  • 平台性。很多事情如果平台级的产品都支持,那么推广或者优势是可以得到保证的。其他的云平台不是很清楚,我知道GCP平台是支持Locust的,也给出了一些解决方案。

转自公众号【TimTest】,https://mp.weixin.qq.com/s?__biz=MzI2OTYwMDc0MQ==&mid=2247483730&idx=1&sn=b42a5ce9d92fab040c5d83da7d021195&chksm=eadc93d8ddab1acec4c53a41a6a7b4b003bbb13b7aff1e85c179a08f321015b65a1ae2b5eb0c&token=2021082705&lang=zh_CN#rd

【转】Locust-工具核心原理分析的更多相关文章

  1. Java Reference核心原理分析

    本文转载自Java Reference核心原理分析 导语 带着问题,看源码针对性会更强一点.印象会更深刻.并且效果也会更好.所以我先卖个关子,提两个问题(没准下次跳槽时就被问到). 我们可以用Byte ...

  2. web压测工具http_load原理分析

    一.前言 http_load是一款测试web服务器性能的开源工具,从下面的网址可以下载到最新版本的http_load: http://www.acme.com/software/http_load/ ...

  3. Spring核心原理分析之MVC九大组件(1)

    本文节选自<Spring 5核心原理> 1 什么是Spring MVC Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 S ...

  4. Redis cluster的核心原理分析

    一.节点间的内部通信机制 1.基础通信原理 (1)redis cluster节点间采取gossip协议进行通信 跟集中式不同,不是将集群元数据(节点信息,故障,等等)集中存储在某个节点上,而是互相之间 ...

  5. 开源配置中心xxl-conf的核心原理分析

    XXL-CONF是一款轻量级的开源配置中心项目,由国内大牛许雪里开发.下面是官方对其优点作出的描述: 一个轻量级分布式配置管理平台,拥有"轻量级.秒级动态推送.多环境.跨语言.跨机房.配置监 ...

  6. drizzleDumper的原理分析和使用说明

    https://blog.csdn.net/qq1084283172/article/details/53561622 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...

  7. 深入解析Koa之核心原理

    这篇文章主要介绍了玩转Koa之核心原理分析,本文从封装创建应用程序函数.扩展res和req.中间件实现原理.异常处理的等这几个方面来介绍,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参 ...

  8. DexHunter在Dalvik虚拟机模式下的脱壳原理分析

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78494671 在前面的博客<DexHunter的原理分析和使用说明(一)&g ...

  9. Redis核心原理与实践--Redis启动过程源码分析

    Redis服务器负责接收处理用户请求,为用户提供服务. Redis服务器的启动命令格式如下: redis-server [ configfile ] [ options ] configfile参数指 ...

随机推荐

  1. Hitool打开出现failed to create the java virtual machine

    今天在安装Hitool后,打开hitool后出现了错误:failed to create the java virtual machine. 解决方法如下: 记事本打开HiTool.ini -star ...

  2. Eclipse中构建maven项目的两种方式

    Eclipse中构建maven项目的两种方式 方式一: 1.构建maven项目 1.1 新建meven项目,可在Other中找到maven文件夹 1.2 进入maven项目后,点击next 1.3 在 ...

  3. 算法-图(2)Bellman-Ford算法求最短路径

    template <class T,class E> void Bellman-Ford(Graph<T,E>&G, int v, E dist[], int path ...

  4. First-Spike-Based Visual Categorization Using Reward-Modulated STDP

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 强化学习(RL)最近以击败欧洲围棋冠军等重大成就重新受到欢迎.在这里,我们第一次表明,RL可以有效地用于训练一个脉冲神经 ...

  5. Linux bpytop工具介绍

    一.工具简介: Easy to use, with a game inspired menu system. Full mouse support, all buttons with a highli ...

  6. cmd 和powershell 用git 显示乱码

    错误: 解决: 只需在环境变量中加入 LESSCHARSET=utf-8

  7. soso官方:搜索引擎的对检索结果常用的评测方法

    http://www.wocaoseo.com/thread-188-1-1.html       很久很久以前,搜索引擎还不象今天的百花齐放,人们对它的要求较低,只要它能把互连网上相关的网站搜出来, ...

  8. WebApi之DOM的基本介绍

    1.1.1 什么是DOM ​ 文档对象模型(Document Object Model,简称DOM),是 W3C 组织推荐的处理可扩展标记语言(html或者xhtml)的标准编程接口. ​ W3C 已 ...

  9. 服务发现Eureka、zookeeper、consul

    Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态). ...

  10. Java/后端学习路线

    点赞再看,养成习惯,微信搜一搜[三太子敖丙]关注这个喜欢写情怀的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系 ...