Exemplo n.º 1
0
    def test_client_basic_auth(self):
        auth_options = config.LocustConfig()
        auth_options.update_config({
            'host': 'locust:[email protected]',
            'port': self.port
        })

        class MyAuthorizedLocust(WebLocust):
            pass

        unauth_options = config.LocustConfig()
        unauth_options.update_config({
            'host': 'locust:[email protected]',
            'port': self.port
        })

        class MyUnauthorizedLocust(WebLocust):
            pass

        unauthorized = MyUnauthorizedLocust(unauth_options)
        authorized = MyAuthorizedLocust(auth_options)
        response = authorized.client.http.get("/basic_auth")
        self.assertEqual(200, response.status_code)
        self.assertEqual("Authorized", response.text)
        with self.locust.client.http.get("/basic_auth",
                                         catch_response=True) as response:
            response.success()
            self.assertEqual(401, response.status_code)
        with unauthorized.client.http.get("/basic_auth",
                                          catch_response=True) as response:
            response.success()
            self.assertEqual(401, response.status_code)
Exemplo n.º 2
0
    def test_max_requests(self):
        options = config.LocustConfig()
        options.update_config({'host': '127.0.0.1', 'port': self.port})

        class MyTaskSet(TaskSet):
            @task
            def my_task(self):
                self.client.http.get("/ultra_fast")

        class MyLocust(WebLocust):
            task_set = MyTaskSet
            min_wait = 1
            max_wait = 1

        try:
            from locust.exception import StopLocust
            global_stats.clear_all()
            global_stats.max_requests = 2

            l = MyLocust(options)
            self.assertRaises(StopLocust, lambda: l.task_set(l).run())
            self.assertEqual(2, global_stats.num_requests)

            global_stats.clear_all()
            global_stats.max_requests = 2
            self.assertEqual(0, global_stats.num_requests)

            l.run()
            self.assertEqual(2, global_stats.num_requests)
        finally:
            global_stats.clear_all()
            global_stats.max_requests = None
Exemplo n.º 3
0
    def setUp(self):
        super(TestContext, self).setUp()
        options = config.LocustConfig()
        options.update_config({'host': '127.0.0.1', 'port': '1'})

        class User(WebLocust):
            pass

        self.locust = User(options)
Exemplo n.º 4
0
    def setUp(self):
        super(TestWebLocustClass, self).setUp()

        class MyLocust(WebLocust):
            pass

        options = config.LocustConfig()
        options.update_config({'host': '127.0.0.1', 'port': self.port})
        self.locust = MyLocust(options)
Exemplo n.º 5
0
    def setUp(self):
        super(TestRequestStatsWithWebserver, self).setUp()
        options = config.LocustConfig()
        options.update_config({'host': '127.0.0.1', 'port': self.port})

        class MyLocust(WebLocust):
            pass

        self.locust = MyLocust(options)
Exemplo n.º 6
0
    def setUp(self):
        super(TestLocustTaskStatistics, self).setUp()
        options = config.LocustConfig()
        options.update_config({'host': '127.0.0.1'})

        class User(WebLocust):
            pass

        self.locust = User(options)
        global_stats.clear_all()
Exemplo n.º 7
0
    def test_catch_response_connection_error_fail(self):
        options = config.LocustConfig()
        options.update_config({'host': '127.0.0.1', 'port': '1'})

        class MyLocust(WebLocust):
            pass

        l = MyLocust(options)
        with l.client.http.get("/", catch_response=True) as r:
            self.assertEqual(r.status_code, 0)
            self.assertEqual(None, r.content)
            r.success()
        self.assertEqual(1, self.num_success)
        self.assertEqual(0, self.num_failures)
Exemplo n.º 8
0
    def test_get_request(self):
        self.response = ""

        def t1(l):
            self.response = l.client.http.get("/ultra_fast")

        class MyLocust(WebLocust):
            tasks = [t1]

        options = config.LocustConfig()
        options.update_config({'host': '127.0.0.1', 'port': self.port})
        my_locust = MyLocust(options)
        t1(my_locust)
        self.assertEqual(self.response.text, "This is an ultra fast response")
Exemplo n.º 9
0
    def test_interrupt_taskset_with_catch_response(self):
        options = config.LocustConfig()
        options.update_config({'host': '127.0.0.1', 'port': '1'})

        class MyTaskSet(TaskSet):
            @task
            def interrupted_task(self):
                with self.client.http.get("/ultra_fast",
                                          catch_response=True) as r:
                    raise InterruptTaskSet()

        class MyLocust(WebLocust):
            task_set = MyTaskSet

        l = MyLocust(options)
        ts = MyTaskSet(l)
        self.assertRaises(InterruptTaskSet, lambda: ts.interrupted_task())
        self.assertEqual(0, self.num_failures)
        self.assertEqual(0, self.num_success)
Exemplo n.º 10
0
    def setUp(self):
        super(TestCatchResponse, self).setUp()
        options = config.LocustConfig()
        options.update_config({'host': '127.0.0.1', 'port': self.port})

        class MyLocust(WebLocust):
            pass

        self.locust = MyLocust(options)

        self.num_failures = 0
        self.num_success = 0

        def on_failure(request_type, name, response_time, exception, task):
            self.num_failures += 1
            self.last_failure_exception = exception

        def on_success(**kwargs):
            self.num_success += 1

        events.request_failure += on_failure
        events.request_success += on_success
Exemplo n.º 11
0
    def test_log_request_name_argument(self):
        from locust.stats import global_stats
        self.response = ""

        class MyLocust(WebLocust):
            tasks = []
            pass

            @task()
            def t1(l):
                self.response = l.client.http.get("/ultra_fast",
                                                  name="new name!")

        options = config.LocustConfig()
        options.update_config({'host': '127.0.0.1', 'port': self.port})
        my_locust = MyLocust(options)
        my_locust.t1()

        self.assertEqual(
            1,
            global_stats.get(None, "new name!", "GET").num_requests)
        self.assertEqual(
            0,
            global_stats.get(None, "/ultra_fast", "GET").num_requests)