一文让 locust 小白,变成性能测试老司机

Locust性能测试工具入门与实战指南

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脚本模板

 

对于一个初学者来说,是不是就期望能提供一个快速上手模板,套用模板就好呢?考虑到这点,我就在开篇,给大家一个模板:

一文让 locust 小白,变成性能测试老司机

 

一文让 locust 小白,变成性能测试老司机

 

有了这个模板,以后用locust,基本上就是可以为所欲为啦。

 

如果你还不满足,可以继续往下看,我们来增强一下。

 

增强

 

脚本增强,那就要看你对python的运用能力。

 

我们经常拿locust来做性能测试,所以增强就是增强性能测试方面的使用,我们可以在终端中,执行locust --help看下它的帮助信息

一文让 locust 小白,变成性能测试老司机

 

一文让 locust 小白,变成性能测试老司机

 

一文让 locust 小白,变成性能测试老司机

 

一文让 locust 小白,变成性能测试老司机

 

图形界面相关:

一文让 locust 小白,变成性能测试老司机

 

无图形界面相关:

一文让 locust 小白,变成性能测试老司机

 

一文让 locust 小白,变成性能测试老司机

 

分布式相关:

一文让 locust 小白,变成性能测试老司机

 

修改csv写入频率

一文让 locust 小白,变成性能测试老司机

 

看了这个表格,这么多参数,是不是有些楞,不知道怎么用?

 

下面,我们就写三种,大家用的比较多的模式:

 

模式一:web图形界面模式

 

Ⅰ.在终端中执行

 

一文让 locust 小白,变成性能测试老司机

 

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

一文让 locust 小白,变成性能测试老司机

 

第1个"Number of total users to simulate" 填写的是 总共将运行的用户数;

 

第2个 "Hatch rate"每秒加载的用户数;

 

第3个 "Host",被测接口的域名或ip端口地址(带http://),

 

Start swarming , 启动

 

案例如图:

一文让 locust 小白,变成性能测试老司机

 

一文让 locust 小白,变成性能测试老司机

 

用5秒钟时间,启动30个用户,然后持续运行。

 

Ⅱ.当这个命令,再扩展一下,增加step-load,就可以增加步长压力,实现负载测试.

 

一文让 locust 小白,变成性能测试老司机

 

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

一文让 locust 小白,变成性能测试老司机

 

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

一文让 locust 小白,变成性能测试老司机

 

一文让 locust 小白,变成性能测试老司机

 

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

 

一文让 locust 小白,变成性能测试老司机

 

此时,浏览器的访问locust界面的地址和端口为 http://127.0.0.1:8389 ,这样,就手动修改了web界面的访问地址。

 

当然,web-host的值,可以是(localhost, 127.0.0.1, 当前机器的ip地址)中任意一种。

 

【注意:】web-host的值,不能带http://

 

Ⅳ. 指定被测接口域名或ip端口地址

 

一文让 locust 小白,变成性能测试老司机

 

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

一文让 locust 小白,变成性能测试老司机

 

模式二:无图形界面(无头模式)模式

 

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

一文让 locust 小白,变成性能测试老司机

 

模式三:分布式运行

 

locust 除了上面两种常用的模式外,还有一种叫分布式,就是用主控机器,控制助攻机,一起执行测试。

 

Ⅰ.主控机器master和助攻机器slave,同一台机器

 

启动主控进程,在终端中执行:

一文让 locust 小白,变成性能测试老司机

 

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

一文让 locust 小白,变成性能测试老司机

 

【注意:

 

  • 助攻进程可以启动多个,在多个终端中执行启动助攻进程,就能启动多个。

 

  • 主控机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,在终端中执行:

一文让 locust 小白,变成性能测试老司机

 

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

一文让 locust 小白,变成性能测试老司机

 

【注意:】

 

启动助攻机器进程时,--master-host指定主控机器master的ip地址,如果不带master-port则用默认的5557端口,如果主控机器指定了端口,则这个要对应修改

 

其他,与在同一台机器上一样。

推荐一个软件测试学习交流群:785128166,群里有分享的视频,面试指导,测试资料,还有思维导图、群里有视频,都是干货的,你可以下载来看。主要分享测试基础、接口测试、性能测试、自动化测试、TestOps架构、Jmeter、LoadRunner、Fiddler、MySql、Linux、简历优化、面试技巧以及大型测试项目实战视频资料。合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

公众号:程序员二黑, 关注后免费领取海量学习资料。

好东西要和朋友一起分享哦
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值