蝗虫:介绍和基本用法
就我个人而言,在我的性能测试工作中,大多数负载生成工具都是jmeter。现在我们来看一看蝗虫,因为我可以使用python编写脚本并进行自定义,但是我自己更多地使用python,所以我使用这个性能工具。
官方网站:https://www.locust.io/
正式文件:https://docs.locust.io/en/stable/index.html
一、认识Locust
1、定义
蝗虫是一个易于使用的分布式负载测试工具,它完全基于事件,即一个蝗虫节点也可以在一个进程中支持数千个并发用户,并通过gevent使用轻量级进程(即在自己的进程中运行),无需回调。
蝗虫的意思是蝗虫,很有影响力。性能测试就像蝗虫攻击。
看官网的介绍:
开源负载测试工具。
用Python代码定义用户行为,让数百万用户同时涌入你的系统。
2、特点
无需编写繁琐的UI或臃肿的XML代码,基于协同学而非回调,脚本编写简单易读;
有基于we简洁HTML JS的UI用户界面,可以实时显示相关测试结果;
支持分布式测试,用户界面基于网络,具有跨平台、易扩展的特点;
所有繁琐的I/O和协作程序都委托给gevent来替代其他工具的局限性;
3、locust与jmeter的区别
工具
区分
测试工具
需要通过在UI界面中选择组件来“编写”脚本。模拟的负载是线程绑定的,这意味着每个模拟的用户需要一个单独的线程。单个装载机可以模拟的负载数量是有限的。
蝗虫
通过编写易于阅读的代码来完成测试脚本。基于事件,在相同的配置下,单个负载机可以模拟的负载数量远远超过jmeter。
PS:然而,蝗虫的局限性在于它对测试过程的监控和测试结果的显示不如jmeter全面和详细,需要二次开发来满足日益复杂的性能测试要求。
二、安装Locust
###
在mac下安装蝗虫
pip安装蝗虫
检查蝗虫是否安装成功。
蝗虫救助
####
三、一个简单的示例
准备脚本
我们来看看官网的例子:
从蝗虫导入HttpUser,任务
类HelloWorldUser(HttpUser):
@task
def hello_world(self):
self.client.get('/hello ')
self.client.get('/world ')
###
启动界面
将代码放在当前目录下名为locustfile.py的文件中,然后运行locust:
也就是说,将上面的代码放在一个名为locustfile.py的文件中,然后直接从这个文件夹下的命令行运行它:locustfile。
一旦你启动了蝗虫,打开一个浏览器,指向http://localhost:8089。你会收到这样的问候
所以访问http://0.0.0.0:8089/查看蝗虫提供的界面。
###
界面的描述和使用
要模拟的用户数:设置模拟用户总数。
衍生率(每秒衍生的用户数):每秒启动的虚拟用户数。
主机,您要测试的地址,主机
开始群集:执行蝗虫脚本
####
测试结果界面
我使用我的一个本地接口地址,http://127.0.0.133605000/
然后你可以看到刷刷开始在本地看到请求。
PS:点击停止停止蝗虫脚本:
类型:请求类型,即接口的请求方法;
名称:请求路径;
Requests:当前完成的请求数;
失败:当前失败的次数;
中值:响应时间的中间值,即50%的响应时间在此数值范围内,单位为毫秒;
Average:平均响应时间,以毫秒为单位;
Min:最小响应时间,以毫秒为单位;
Max:最大响应时间,以毫秒为单位;
内容大小:所有请求的数据量,以字节为单位;
Reqs/sec:每秒处理的请求数,即QPS;
###
各模块说明
新测试单击此按钮可编辑模拟的虚拟用户总数和每秒启动的虚拟用户数;
统计信息:类似于jmeter中的Listen的聚合报告;
图表:显示测试结果变化趋势的图表,分别是每秒完成的请求数(RPS)、响应时间和不同时间的虚拟用户数;
失败:失败请求的显示界面;
异常:异常请求的显示界面;
下载数据:测试数据下载模块,以CSV格式提供三种下载,分别是:统计、响应时间、异常;
###
这是简单的介绍和使用,需要进一步研究。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/124354.html