From ae78ad0389c4d6e8190b3d3ed222d276415232fe Mon Sep 17 00:00:00 2001 From: Lars Holmberg Date: Sat, 7 Aug 2021 14:16:06 +0200 Subject: [PATCH] add test for custom arguments in web ui --- locust/test/test_web.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/locust/test/test_web.py b/locust/test/test_web.py index a8864377d4..cd662a07fb 100644 --- a/locust/test/test_web.py +++ b/locust/test/test_web.py @@ -242,6 +242,30 @@ def my_task(self): self.assertEqual("https://localhost", response.json()["host"]) self.assertEqual(self.environment.host, "https://localhost") + def test_swarm_custom_argument(self): + my_dict = {} + + class MyUser(User): + host = "http://example.com" + wait_time = constant(1) + + @task(1) + def my_task(self): + my_dict["val"] = self.environment.parsed_options.my_argument + + @locust.events.init_command_line_parser.add_listener + def _(parser, **kw): + parser.add_argument("--my-argument", type=int, help="Give me a number") + + self.environment.user_classes = [MyUser] + self.environment.parsed_options = parse_options(args=["--my-argument", "42"]) + response = requests.post( + "http://127.0.0.1:%i/swarm" % self.web_port, + data={"user_count": 1, "spawn_rate": 1, "host": "", "my_argument": "42"}, + ) + self.assertEqual(200, response.status_code) + self.assertEqual(my_dict["val"], 42) + def test_swarm_host_value_not_specified(self): class MyUser(User): wait_time = constant(1)