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)
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
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)
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)
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)
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()
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)
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")
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)
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
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)