Locust-分布式执行
前言
使用Locust进行性能测试时,当一台单机不足以模拟所需的用户数量的时候,可以在多台机器上分布式的执行性能测试。
locust分布式启动场景有2种,一种是单机设置master和slave模式,另外一种是有多个机器,其中一个机器设置master,其它机器设置slave节点。
单机主从模式
Locust 中如需使用 master-slave 模式启动多个进程(使用多核处理器的能力),先启动 master,然后再逐一启动若干个 slave。
其中 slave 的节点数要小于等于本机的处理器数,那么问题来了,如何看自己的电脑是及核的,以win10为例。
打开设备管理器-处理器,数下有几个,比如我下面有四个,那就是四核的
先启动一个master节点,mater节点不执行任务
locust -f locustfile.py --master
开多个窗口,启动多个slave节点,比如我开四个窗口,依次执行以下命令
locust -f locustfile.py --slave
此时在浏览器输入:http://localhost:8089/
slave节点数为4
多机主从模式
当一台机器的并发数无法满足你的业务需求时,可以在多台机器上分布式的执行性能测试。
选择其中一台电脑,启动master节点,因为主节点无法操作别的节点,所以必须在其它机器上启动从属Locust节点,后面跟上--slave参数,以及 --master-host(指定主节点的IP /主机名)。
locust -f locustfile.py --master
接着在其它机器上(环境和主节点环境一致,都需要有locust的运行环境和脚本),启动 slave 节点,设置 --master-host
locust -f locustfile.py --slave --master-host=192.168.x.xx
参数介绍:
- --master 以主服务模式启动Locust,web界面打开也是以此机IP为地址。
- --slave 以从属服务模式启动Locust
- master-host=192.168.x.xx 用于从属服务指定主服务的地址
- --master-port=8089 用于从属服务指定主服务的端口
无网页模式启动, -c是设置并发用户数,-r是设置每秒进入用户数,-t设置运行时长
locust -f locust_files/my_locust_file.py --no-web -c 100 -r 10