run locusts at full speed with master and several slaves, make the most use of all cpus

This commit is contained in:
httprunner
2017-08-26 23:29:18 +08:00
parent f43fcfe6c2
commit 6bf3daae11
3 changed files with 40 additions and 4 deletions

31
ate/locusts.py Normal file
View File

@@ -0,0 +1,31 @@
import multiprocessing
import sys
from locust.main import main
def start_master(sys_argv):
sys_argv.append("--master")
sys.argv = sys_argv
main()
def start_slave(sys_argv):
sys_argv.extend(["--slave"])
sys.argv = sys_argv
main()
def run_locusts_at_full_speed(sys_argv):
sys_argv.pop(sys_argv.index("--full-speed"))
slaves_num = multiprocessing.cpu_count()
processes = []
for _ in range(slaves_num):
p_slave = multiprocessing.Process(target=start_slave, args=(sys_argv,))
p_slave.daemon = True
p_slave.start()
processes.append(p_slave)
try:
start_master(sys_argv)
except KeyboardInterrupt:
sys.exit(0)