当一台机器已经达到Locust工具能够模拟的用户数量上限时,我们不得不在另外几台机器上部署Locust,然后拷贝一份一模一样的脚本,进行分布式Locust的使用。一般在使用的时候,有一台机器作为主机(master),其余机器作为备机(slave)。我在工作中一般将virtualenv和locustfile.py放在Git上,每次测试前以master机器的代码为基准,先push到远端,再在其他所有slave机器上pull一遍保证一致性。下面分别介绍。 在主机A(IP地址为192.168.1.2)上运行命令:
mars@mars-Ideapad-V460:~/test$locust --master
[2015-09-14 22:14:48,792] mars-Ideapad-V460/INFO/locust.main: Starting web monitor at *:8089
[2015-09-14 22:14:48,867] mars-Ideapad-V460/INFO/locust.main: Starting Locust 0.7.3
上面的命令会在主机上开启Locust的侦听服务,主机不会模拟任何Locust用户,也不会做任何测试活动,这些都是备机干的事,主机只负责侦听备机发来的统计数据和生成WEB的观察界面。也可以指定master机器监听的端口(如果指定的端口是n,则会同时监听端口n+1,–master-bind-port的默认值是5557):
mars@mars-Ideapad-V460:~/test$locust --master --master-bind-port=4445
[2015-09-14 22:19:00,972] mars-Ideapad-V460/INFO/locust.main: Starting web