locust介绍
locust是一款完全基于事件的负载测试工具,做性能测试使用的‘协程’方式,有webui图形界面、无图形界面、分布式等多种运行方式。
locust安装
首先,系统中安装python3.6及以上版本,确认安装好了pip
然后,安装locust,在终端中执行:pip install locust
【注意:】
- Ⅰ 这种方式安装的是最新的 locust 版本,最新的版本已经是 locust 1.*
- Ⅱ 如果想安装低于 1.*的版本, 请使用 pip install locustio=版本号 低于 1 的版本,包名称不一样。
- Ⅲ 本文内容 locust的版本为 0.14.6, 所以请使用 pip install locustio==0.14.6
验证系统是否正常安装了locust,可以在终端中执行:

如果执行结果能够正常返回信息,说明当前系统已经安装好了locust工具。
locust脚本模板
对于一个初学者来说,是不是就期望能提供一个快速上手模板,套用模板就好呢?考虑到这点,我就在开篇,给大家一个模板:


有了这个模板,以后用locust,基本上就是可以为所欲为啦。
如果你还不满足,可以继续往下看,我们来增强一下。
增强
脚本增强,那就要看你对python的运用能力。
我们经常拿locust来做性能测试,所以增强就是增强性能测试方面的使用,我们可以在终端中,执行locust --help看下它的帮助信息




图形界面相关:

无图形界面相关:


分布式相关:

修改csv写入频率

看了这个表格,这么多参数,是不是有些楞,不知道怎么用?
下面,我们就写三种,大家用的比较多的模式:
模式一:web图形界面模式
Ⅰ.在终端中执行

py文件没有问题的话,将可以通过浏览器访问 http://localhost:8089 访问locust服务.

第1个"Number of total users to simulate" 填写的是 总共将运行的用户数;
第2个 "Hatch rate"每秒加载的用户数;
第3个 "Host",被测接口的域名或ip端口地址(带http://),
Start swarming , 启动
案例如图:


用5秒钟时间,启动30个用户,然后持续运行。
Ⅱ.当这个命令,再扩展一下,增加step-load,就可以增加步长压力,实现负载测试.

这样,访问 http://localhost:8089 时,就会出现步长的参数,如图:

"Number of users to increase by step" 逐步增加用户数;"Step duration"步长持续运行时间


Ⅲ. 指定locust运行时的ip和端口

此时,浏览器的访问locust界面的地址和端口为 http://127.0.0.1:8389 ,这样,就手动修改了web界面的访问地址。
当然,web-host的值,可以是(localhost, 127.0.0.1, 当前机器的ip地址)中任意一种。
【注意:】web-host的值,不能带http://
Ⅳ. 指定被测接口域名或ip端口地址

此时,浏览器访问 http://localhost:8089 时,页面中,已经自动带入了 Host值

模式二:无图形界面(无头模式)模式
无头模式,即无图形界面模式,不能通过浏览器访问页面来设置性能测试场景,只能通过命令中带参数来设置。参考命令如下:

模式三:分布式运行
locust 除了上面两种常用的模式外,还有一种叫分布式,就是用主控机器,控制助攻机,一起执行测试。
Ⅰ.主控机器master和助攻机器slave,同一台机器
启动主控进程,在终端中执行:

启动助攻进程,在终端中执行:

【注意:
- 助攻进程可以启动多个,在多个终端中执行启动助攻进程,就能启动多个。
- 主控机master和助攻机slave,启动顺序没有要求,
- 启动主控机master后,检测到有助攻机进程,就会显示 'Client ** reported as ready. Currently Nclients ready to swarm.' N指代数量
- 分布式支持图形界面、无图形界面,相比而言,图形界面用的较多,因为能轻松控制所有助攻机slave一起执行;
- 分布式执行无图像界面命令,建议先启动助攻机slave,然后再在启动主控机master时,指定命令,不然,助攻机器将可能不同时执行。
- 分布式在执行时,设置的total users、Hatch rate,将平均分配到各个助攻机slave中执行
- 建议一台机器slave个数,不要超过cpu核数数量。
II.主控机器master和助攻机器slave,不是同一台机器
启动主控机器主进程master,在终端中执行:

启动助攻机器进程slave,在终端中执行:

【注意:】
启动助攻机器进程时,--master-host指定主控机器master的ip地址,如果不带master-port则用默认的5557端口,如果主控机器指定了端口,则这个要对应修改
其他,与在同一台机器上一样。
推荐一个软件测试学习交流群:785128166,群里有分享的视频,面试指导,测试资料,还有思维导图、群里有视频,都是干货的,你可以下载来看。主要分享测试基础、接口测试、性能测试、自动化测试、TestOps架构、Jmeter、LoadRunner、Fiddler、MySql、Linux、简历优化、面试技巧以及大型测试项目实战视频资料。合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
公众号:程序员二黑, 关注后免费领取海量学习资料。
好东西要和朋友一起分享哦
Locust性能测试工具入门与实战指南
937

被折叠的 条评论
为什么被折叠?



