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. ucore lab2

    CPU在如下时刻会检查特权级 访问数据段 访问页 进入中断服务例程(ISR) RPL位于段寄存器 DS ES FS GS CPL位于CS SS DPL位于段描述符表/门描述符 访问门时: CPL< ...

  2. Mybatis入门(三)------日志系统

    Mybatis日志系统 简介 Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种方式: •SLF4J •Apache Commons Logging •Log4j 2 •Log4j • ...

  3. html的鼠标双击,单击,移上,离开,事件捕捉,JavaScript

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Mysql安装错误

    [问题一]在安装mysql时遇到以下错误 执行./mysqld --initialize 后 ./bin/mysqld: error while loading shared libraries: l ...

  5. Java面试题(设计模式篇+Spring/Spring MVC篇)

    设计模式 88.说一下你熟悉的设计模式? 自行熟悉. 89.简单工厂和抽象工厂有什么区别? 简单理解简单工厂:对 一个对象的创建进行封装.抽象工厂:对 一组对象的创建进行封装. 比如生产 陶瓷马 和  ...

  6. 【从零开始撸一个App】PKCE

    一个成功的App背后肯定有一堆后端服务提供支撑,认证授权服务(Authentication and Authorization Service,以下称AAS)就是其中之一,它是约束App.保障资源安全 ...

  7. python yaml文件数据按原有的数据顺序dump

    yml文件的更新后工具类: import os import yaml class YamlUtils(): def __init__(self,folder_name='config'): self ...

  8. 修改注册表修改环境变量PATH

      因公司办公电脑做了权限设置,不能通过右击“我的电脑”-属性的方式更改环境变量值 摸索找到了通过修改注册表的方式修改PATH值 Win+R 输入regedit打开册表编辑器 HKEY_LOCAL_M ...

  9. 我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。

    业务背景 首先,业务需求是这样的,从第三方电商平台拉取所有订单,然后保存到公司自己的数据库,需要判断是否有物流信息,如果有物流信息,还需要再进行上传. 而第三方接口返回的数据是 JSON 格式的,其中 ...

  10. Timeline Event

    https://forum.unity.com/threads/timeline-events.479400/