使用Fabric在多个从站上启动Locust

时间:2016-08-25 06:20:19

标签: python fabric locust

我对Fabric很新,但我开始使用它来自动执行负载测试。

我使用Locust对我的应用程序进行负载测试,但由于我使用超过100k CCU进行测试,这需要多个从属设备。

我已经使用boto3来自动创建EC2实例并且工作正常,但不幸的是,当尝试使用fabric来部署Locust代理然后在所有机器上自动运行它时,我遇到了一个问题。

不好的一点是,由于Fabric在分布式模式下运行Locust时会从响应中等待它只连接一个Slave然后挂起(因为没有收到任何响应)。

有关这个问题的任何建议,请帮助我吗?有没有人有这个问题并设法修复它?

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

对于Locust Master:

def master_start(filename, web_port, master_port):
    with settings(warn_only=True):
        return run('nohup locust -f %s --master --port=%s --master-bind-port=%s >& /dev/null < /dev/null &'% (filename, web_port, master_port), pty=False)

对于蝗虫奴隶,但是并行运行:

def slave_start(filename, master, master_port):
    with settings(warn_only=True):
        run('nohup locust -f %s --slave --master-host=%s --master-port=%s >& /dev/null < /dev/null &'%(filename, master, master_port),pty=False)