Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add response_length to request_failure event #1144

Merged
merged 3 commits into from
Nov 13, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions locust/clients.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ def request(self, method, url, name=None, catch_response=False, **kwargs):
request_type=request_meta["method"],
name=request_meta["name"],
response_time=request_meta["response_time"],
response_length=request_meta["content_size"],
exception=e,
)
else:
Expand Down Expand Up @@ -251,6 +252,7 @@ def failure(self, exc):
request_type=self.locust_request_meta["method"],
name=self.locust_request_meta["name"],
response_time=self.locust_request_meta["response_time"],
response_length=self.locust_request_meta["content_size"],
exception=exc,
)
self._is_reported = True
2 changes: 2 additions & 0 deletions locust/contrib/fasthttp.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ def request(self, method, path, name=None, data=None, catch_response=False, stre
request_type=request_meta["method"],
name=request_meta["name"],
response_time=request_meta["response_time"],
response_length=request_meta["content_size"],
exception=e,
)
else:
Expand Down Expand Up @@ -387,6 +388,7 @@ def failure(self, exc):
request_type=self.locust_request_meta["method"],
name=self.locust_request_meta["name"],
response_time=self.locust_request_meta["response_time"],
response_length=self.locust_request_meta["content_size"],
exception=exc,
)
self._is_reported = True
1 change: 1 addition & 0 deletions locust/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ def fire(self, reverse=False, **kwargs):
* *request_type*: Request type method used
* *name*: Path to the URL that was called (or override name if it was used in the call to the client)
* *response_time*: Time in milliseconds until exception was thrown
* *response_length*: Content-length of the response
* *exception*: Exception instance that was thrown
"""

Expand Down
4 changes: 2 additions & 2 deletions locust/stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -610,8 +610,8 @@ def median_from_dict(total, count):
def on_request_success(request_type, name, response_time, response_length, **kwargs):
global_stats.log_request(request_type, name, response_time, response_length)

def on_request_failure(request_type, name, response_time, exception, **kwargs):
global_stats.log_request(request_type, name, response_time, 0)
def on_request_failure(request_type, name, response_time, response_length, exception, **kwargs):
global_stats.log_request(request_type, name, response_time, response_length)
global_stats.log_error(request_type, name, exception)

def on_report_to_master(client_id, data):
Expand Down
2 changes: 1 addition & 1 deletion locust/test/test_fasthttp.py
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ class MyLocust(FastHttpLocust):

self.num_failures = 0
self.num_success = 0
def on_failure(request_type, name, response_time, exception):
def on_failure(request_type, name, response_time, response_length, exception):
self.num_failures += 1
self.last_failure_exception = exception
def on_success(**kwargs):
Expand Down
2 changes: 1 addition & 1 deletion locust/test/test_locust_class.py
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ class MyLocust(HttpLocust):

self.num_failures = 0
self.num_success = 0
def on_failure(request_type, name, response_time, exception):
def on_failure(request_type, name, response_time, response_length, exception):
self.num_failures += 1
self.last_failure_exception = exception
def on_success(**kwargs):
Expand Down
21 changes: 12 additions & 9 deletions locust/test/test_stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@ def log(response_time, size):
self.stats.log_request("GET", "test_entry", response_time, size)
def log_error(exc):
self.stats.log_error("GET", "test_entry", exc)
log(45, 0)
log(135, 0)
log(44, 0)
log(None, 0)
log(45, 1)
log(135, 1)
log(44, 1)
log(None, 1)
log_error(Exception("dummy fail"))
log_error(Exception("dummy fail"))
log(375, 0)
log(601, 0)
log(35, 0)
log(79, 0)
log(None, 0)
log(375, 1)
log(601, 1)
log(35, 1)
log(79, 1)
log(None, 1)
log_error(Exception("dummy fail"))
self.s = self.stats.get("test_entry", "GET")

Expand Down Expand Up @@ -80,6 +80,9 @@ def test_num_reqs_fails(self):
def test_avg(self):
self.assertEqual(self.s.avg_response_time, 187.71428571428572)

def test_total_content_length(self):
self.assertEqual(self.s.total_content_length, 9)

def test_reset(self):
self.s.reset()
self.s.log(756, 0)
Expand Down