예제 #1
0
파일: test_stats.py 프로젝트: jijotj/locust
 def test_user_count_in_csv_history_stats(self):
     start_time = int(time.time())
     class TestUser(Locust):
         wait_time = constant(10)
         @task
         def t(self):
             self.environment.runner.stats.log_request("GET", "/", 10, 10)
     runner = LocalLocustRunner(self.environment, [TestUser])
     runner.start(3, 5) # spawn a user every 0.2 second
     gevent.sleep(0.1)
     
     greenlet = gevent.spawn(stats_writer, self.environment, self.STATS_BASE_NAME, full_history=True)
     gevent.sleep(0.6)
     gevent.kill(greenlet)
     
     runner.stop()
     
     with open(self.STATS_HISTORY_FILENAME) as f:
         reader = csv.DictReader(f)
         rows = [r for r in reader]
     
     self.assertEqual(6, len(rows))
     for i in range(3):
         row = rows.pop(0)
         self.assertEqual("%i" % (i + 1), row["User count"])
         self.assertEqual("/", row["Name"])
         self.assertEqual("%i" % (i + 1), row["# requests"])
         self.assertGreaterEqual(int(row["Timestamp"]), start_time)
         row = rows.pop(0)
         self.assertEqual("%i" % (i + 1), row["User count"])
         self.assertEqual("Aggregated", row["Name"])
         self.assertEqual("%i" % (i + 1), row["# requests"])
         self.assertGreaterEqual(int(row["Timestamp"]), start_time)
예제 #2
0
    def test_stop_event(self):
        class User(Locust):
            wait_time = constant(1)
            @task
            def my_task(self):
                pass

        test_stop_run = [0]
        environment = Environment(options=mocked_options())
        def on_test_stop(*args, **kwargs):
            test_stop_run[0] += 1
        environment.events.test_stop.add_listener(on_test_stop)

        runner = LocalLocustRunner(environment, locust_classes=[User])
        runner.start(locust_count=3, hatch_rate=3, wait=False)
        self.assertEqual(0, test_stop_run[0])
        runner.stop()
        self.assertEqual(1, test_stop_run[0])