diff --git a/locust/stats.py b/locust/stats.py index 4ba2064402..3feacc0512 100644 --- a/locust/stats.py +++ b/locust/stats.py @@ -276,7 +276,7 @@ def log_error(self, error): @property def fail_ratio(self): try: - return float(self.num_failures) / (self.num_requests + self.num_failures) + return float(self.num_failures) / self.num_requests except ZeroDivisionError: if self.num_failures > 0: return 1.0 diff --git a/locust/test/test_stats.py b/locust/test/test_stats.py index 4b45aeedb1..fcfee1cc3a 100644 --- a/locust/test/test_stats.py +++ b/locust/test/test_stats.py @@ -252,6 +252,18 @@ def test_diff_response_times_dicts(self): )) +class TestStatsEntry(unittest.TestCase): + def setUp(self, *args, **kwargs): + super(TestStatsEntry, self).setUp(*args, **kwargs) + self.stats = RequestStats() + + def test_fail_ratio_with_failures(self): + s = StatsEntry(self.stats, "/", "GET") + s.num_requests = 10 + s.num_failures = 5 + self.assertAlmostEqual(s.fail_ratio, 0.5) + + class TestRequestStatsWithWebserver(WebserverTestCase): def test_request_stats_content_length(self): class MyLocust(HttpLocust):