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

Posted 柠檬班软件测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一文让 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 小白,变成性能测试老司机


注意:



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


说明:本文为柠檬班Allen老师原创,转载需注明出处


一文让 locust 小白,变成性能测试老司机
获取locust相关学习视频资料
一文让 locust 小白,变成性能测试老司机

可加小米老师微信
19918944178

或者扫描下方二维码
一文让 locust 小白,变成性能测试老司机
一文让 locust 小白,变成性能测试老司机


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



觉得有用,就给老师加个“鸡腿”吧

以上是关于一文让 locust 小白,变成性能测试老司机的主要内容,如果未能解决你的问题,请参考以下文章

性能测试工具Locust源码浅析

一分钟读懂搜索引擎,让优化小白变身SEO老司机!

零基础也能看起来像是性能测试老司机

locust性能测试安装

性能测试利器-Locust框架解析

性能测试利器-Locust框架解析