【转】Locust-工具核心原理分析
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的,也给出了一些解决方案。
【转】Locust-工具核心原理分析的更多相关文章
- Java Reference核心原理分析
本文转载自Java Reference核心原理分析 导语 带着问题,看源码针对性会更强一点.印象会更深刻.并且效果也会更好.所以我先卖个关子,提两个问题(没准下次跳槽时就被问到). 我们可以用Byte ...
- web压测工具http_load原理分析
一.前言 http_load是一款测试web服务器性能的开源工具,从下面的网址可以下载到最新版本的http_load: http://www.acme.com/software/http_load/ ...
- Spring核心原理分析之MVC九大组件(1)
本文节选自<Spring 5核心原理> 1 什么是Spring MVC Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 S ...
- Redis cluster的核心原理分析
一.节点间的内部通信机制 1.基础通信原理 (1)redis cluster节点间采取gossip协议进行通信 跟集中式不同,不是将集群元数据(节点信息,故障,等等)集中存储在某个节点上,而是互相之间 ...
- 开源配置中心xxl-conf的核心原理分析
XXL-CONF是一款轻量级的开源配置中心项目,由国内大牛许雪里开发.下面是官方对其优点作出的描述: 一个轻量级分布式配置管理平台,拥有"轻量级.秒级动态推送.多环境.跨语言.跨机房.配置监 ...
- drizzleDumper的原理分析和使用说明
https://blog.csdn.net/qq1084283172/article/details/53561622 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...
- 深入解析Koa之核心原理
这篇文章主要介绍了玩转Koa之核心原理分析,本文从封装创建应用程序函数.扩展res和req.中间件实现原理.异常处理的等这几个方面来介绍,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参 ...
- DexHunter在Dalvik虚拟机模式下的脱壳原理分析
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78494671 在前面的博客<DexHunter的原理分析和使用说明(一)&g ...
- Redis核心原理与实践--Redis启动过程源码分析
Redis服务器负责接收处理用户请求,为用户提供服务. Redis服务器的启动命令格式如下: redis-server [ configfile ] [ options ] configfile参数指 ...
随机推荐
- 寻找猴王小游戏php代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【转】Camera 简介
一.摄像头(CAMERA)又称为电脑相机.电脑眼等,它作为一种视频输入设备,在过去被广泛的运用于视频会议.远程医疗及实时监控等方面. 近年以来,随着互联网技术的发展,网络速度的不断提高,再加上感光成像 ...
- latex:数学式中的省略符号
数学式中有很多省略符号,具体命令符号和用法如下 数学式中的省略符号 \cdots 水平位置与减号等高,例如$-\cdots +$,得到- … + \ddots 对角省略号,例如$A\ddots M$, ...
- CF1270B Interesting Subarray 题解
22:20下晚自习所以只打了10+min,然而这并不能成为我脑抽没一眼看出B题的借口,所以又掉回绿名了qwq.所以我还是太菜了. 题意分析 给出一个数列,要求找出一段连续的子数列满足这个子数列的最大值 ...
- C#-接口(Interface)详解
定义 在 C# 语言中,类之间的继承关系仅支持单重继承,而接口是为了实现多重继承关系设计的.一个类能同时实现多个接口,还能在实现接口的同时再继承其他类,并且接口之间也可以继承.无论是表示类之间的继承还 ...
- 利用GetPrivateProfileString读取配置文件(.ini)
利用GetPrivateProfileString读取配置文件(.ini) 配置文件中经常用到ini文件,在VC中其函数分别为: 写入.ini文件:bool WritePrivateProfileSt ...
- IOS 提审
关于上架AppStore最后一步的“出口合规信息”.“内容版权”.“广告标识符”的选择 https://blog.csdn.net/ashimar_a/article/details/51745675
- Gama Space 和 Linear Space 学习
可以参考: 1.http://blog.csdn.net/ngrandmarch/article/details/46407017 2.http://blog.csdn.net/candycat199 ...
- 使用Telnet服务测试端口时,提示没有Telnet服务
1.win7系统是默认不开启Telnet服务的,所以我们第一次使用时要手动开启Telnet服务 1)打开 控制面板 > 程序 > 程序功能 > 打开或关闭Windows功能,勾选上T ...
- Dos简易基础及常用Dos命令
Dos简易基础及常用Dos命令 什么是cmd? cmd是command的缩写,意指操作系统中的命令行程序,一般说的都是Windows中的Dos系统. 如何打开cmd? 键盘操作:Win + R 输入c ...