From 2b5b881a3315ca2163f5e84569aeadac7558aa0b Mon Sep 17 00:00:00 2001 From: AJ Tuquero Date: Sun, 14 Apr 2019 14:15:56 -0400 Subject: [PATCH] Reset exceptions and failures when stats are reset --- locust/stats.py | 1 + locust/test/test_web.py | 23 +++++++++++++++++++++++ locust/web.py | 1 + 3 files changed, 25 insertions(+) diff --git a/locust/stats.py b/locust/stats.py index 3feacc0512..eefd423260 100644 --- a/locust/stats.py +++ b/locust/stats.py @@ -121,6 +121,7 @@ def reset_all(self): """ self.start_time = time.time() self.total.reset() + self.errors = {} for r in six.itervalues(self.entries): r.reset() diff --git a/locust/test/test_web.py b/locust/test/test_web.py index ed3f07ebd0..e0532b2990 100644 --- a/locust/test/test_web.py +++ b/locust/test/test_web.py @@ -101,6 +101,29 @@ def test_request_stats_with_errors(self): response = requests.get("http://127.0.0.1:%i/stats/requests" % self.web_port) self.assertEqual(200, response.status_code) self.assertIn("Error1337", response.text) + + def test_reset_stats(self): + try: + raise Exception(u"A cool test exception") + except Exception as e: + tb = sys.exc_info()[2] + runners.locust_runner.log_exception("local", str(e), "".join(traceback.format_tb(tb))) + runners.locust_runner.log_exception("local", str(e), "".join(traceback.format_tb(tb))) + + stats.global_stats.log_request("GET", "/test", 120, 5612) + stats.global_stats.log_error("GET", "/", Exception("Error1337")) + + response = requests.get("http://127.0.0.1:%i/stats/reset" % self.web_port) + + self.assertEqual(200, response.status_code) + + self.assertEqual({}, stats.global_stats.errors) + self.assertEqual({}, runners.locust_runner.exceptions) + + self.assertEqual(0, stats.global_stats.get("/", "GET").num_requests) + self.assertEqual(0, stats.global_stats.get("/", "GET").num_failures) + self.assertEqual(0, stats.global_stats.get("/test", "GET").num_requests) + self.assertEqual(0, stats.global_stats.get("/test", "GET").num_failures) def test_exceptions(self): try: diff --git a/locust/web.py b/locust/web.py index aa31599ec4..4c7f4211e5 100644 --- a/locust/web.py +++ b/locust/web.py @@ -69,6 +69,7 @@ def stop(): @app.route("/stats/reset") def reset_stats(): runners.locust_runner.stats.reset_all() + runners.locust_runner.exceptions = {} return "ok" @app.route("/stats/requests/csv")