From 25539414a2fed8565b56b69edbd743e6153b1884 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Tue, 16 Jan 2018 16:30:24 +0800 Subject: [PATCH] bugfix: start locust slave on other machines --- httprunner/locusts.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/httprunner/locusts.py b/httprunner/locusts.py index 73de4e89..53c02add 100644 --- a/httprunner/locusts.py +++ b/httprunner/locusts.py @@ -54,12 +54,16 @@ def start_master(sys_argv): main() def start_slave(sys_argv): - sys_argv.extend(["--slave"]) + if "--slave" not in sys_argv: + sys_argv.extend(["--slave"]) + sys.argv = sys_argv main() def run_locusts_on_cpu_cores(sys_argv, cpu_cores_num_value): processes = [] + manager = multiprocessing.Manager() + for _ in range(cpu_cores_num_value): p_slave = multiprocessing.Process(target=start_slave, args=(sys_argv,)) p_slave.daemon = True @@ -67,6 +71,9 @@ def run_locusts_on_cpu_cores(sys_argv, cpu_cores_num_value): processes.append(p_slave) try: - start_master(sys_argv) + if "--slave" in sys_argv: + [process.join() for process in processes] + else: + start_master(sys_argv) except KeyboardInterrupt: - sys.exit(0) + manager.shutdown()