引言
我们知道Jmeter单机并发数并不高,一般配置也就支持1000左右。那么就引出了分布式压测的概念,Jmeter通过调度机(Master)与执行机(Slave)来实现。而Locust也支持分布式压测,类似Jmeter一样,当一台机器无法模拟所需的用户数量时候,可以通过多台Slave机器来实现,Master机器主负责分发任务和下达指令。
分布式场景
Locust分布式场景有两种:
1.单台机器设置Master和Slave
2.多台机器时,一台调度机(Master),其他机器设置执行机(Slave)
前提:
1、主机(master)装好locust环境
2、从机(slave)装好locust环境
3、主机/从机上都要有执行的Python文件(你自己写的压测脚本)
备注:环境安装可以从头看起。
单机分布式压测
启动方式:Locust中使用主从模式启动多个进程(使用多核处理器的能力),先启动 master,主处理器负责分发任务,然后再逐一启动若干个 slave(slave 的节点数要小于等于本机的处理器数),从机负责执行任务。
本篇以WIN10专业版为例,查看CPU是几核心的,可以打开任务管理器如下:
我的电脑CPU是6核的。
打开cmd,在dos下输入:
locust -f locust_batch_data.py --master
前面说过,master是不会执行任务的,只是分发任务的,如图:
现在可以启动Slave机器,我们打开多个dos窗口,输入命令:
locust -f locust_batch_data.py --slave
再打开master的dos窗口看看:
红色框框是计算机名称,如果不确定,可以打开我的电脑→系统查看:
然后打开浏览器,输入:http://localhost:8089/,我启动了6个slave,正常的话,slave数应该显示6。
多机分布式压测
前面已经说过,当一台电脑无法满足足够大的并发用户数量时,就需要多台机器来模拟请求。多机案例需要多台机器,以后有时间部署多台机器来演示,这里就讲方法。
方式:一台作为调度机(Master),其他电脑作为(执行机(Slave),启动时,需要指定主节点的IP/主机名,如:" --slave --master-host "
locust -f locust_batch_data.py --master
接着在其它机器上(环境和主节点环境一致,都需要有locust的运行环境和脚本),启动 slave 节点,设置 --master-host
locust -f locust_batch_data.py --slave --master-host=192.168.*.*
如图:
使用计算机名称:
locust -f locust_batch_data.py --slave --master-host=WIN10-804191526
参数介绍:
1、--master 以主服务模式启动Locust,web界面打开也是以此机IP为地址。
2、--slave 以从属服务模式启动Locust
3、master-host=192.168.x.xx 用于从属服务指定主服务的地址
4、--master-port=8089 用于从属服务指定主服务的端口
无网页模式启动, -c是设置并发用户数,-r是设置每秒进入用户数,-t设置运行时长
locust -f locust_batch_data.py --no-web -c 100 -r 10
总结
Locust分布式压测就介绍到这里,另外,对软件测试,自动化测试,测试开发及安全测试感兴趣的小伙伴,可以入群一起学习和讨论。