2016-08-25 4 views
0

Я довольно новичок в Fabric, но я начал работать с ним, чтобы автоматизировать выполнение нагрузочных тестов.Использование Fabric для запуска Locust на нескольких подчиненных устройствах

Я использую Locust для тестирования нагрузок на свои приложения, но поскольку я тестирую более чем на 100 тыс. CCU, для этого требуется несколько подчиненных устройств.

Я использовал boto3 для автоматизации создания экземпляров EC2 и работает отлично, но, к сожалению, у меня возникла проблема при попытке использовать ткань для развертывания агента Locust, а затем автоматически запускать ее на всех машинах.

Плохая часть состоит в том, что, поскольку Fabric ждет от ответа при запуске Locust в распределенном режиме, он подключает только одно ведомое устройство, а затем зависает (так как никакой ответ не получен).

Не могли бы вы помочь мне с любыми предложениями по этому вопросу? У кого-нибудь была эта проблема и удалось ее исправить?

Заранее спасибо.

+0

Почему делают ткань ждет ответа? Есть ли какие-либо подсказки, которые останавливают выполнение? – roshan

ответ

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)