locust 2.47.1.dev33__tar.gz → 2.47.1.dev37__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/PKG-INFO +1 -1
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/_version.py +2 -2
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/event.py +0 -10
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/stats.py +13 -22
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/user/task.py +1 -1
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/.gitignore +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/LICENSE +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/README.md +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/hatch_build.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/__init__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/__main__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/argument_parser.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/clients.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/__init__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/csv_request_logger.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/dns.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/fasthttp.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/milvus.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/mongodb.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/mqtt.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/oai.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/postgres.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/qdrant.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/contrib/socketio.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/debug.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/dispatch.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/env.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/exception.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/html.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/input_events.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/log.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/main.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/opentelemetry.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/py.typed +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/rpc/__init__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/rpc/protocol.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/runners.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/shape.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/user/__init__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/user/inspectuser.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/user/markov_taskset.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/user/sequential_taskset.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/user/users.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/user/wait_time.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/util/__init__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/util/cache.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/util/date.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/util/deprecation.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/util/directory.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/util/exception_handler.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/util/load_locustfile.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/util/rounding.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/util/timespan.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/util/url.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/web.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/assets/favicon-dark.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/assets/favicon-light.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/assets/graphs-dark.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/assets/graphs-light.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/assets/src-Cl6CiemE.js +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/assets/terminal.gif +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/assets/testruns-dark.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/assets/testruns-light.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/auth.html +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/index.html +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/locust/webui/dist/report.html +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/pyproject.toml +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev37}/pytest_locust/plugin.py +0 -0
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '2.47.1.
|
|
22
|
-
__version_tuple__ = version_tuple = (2, 47, 1, '
|
|
21
|
+
__version__ = version = '2.47.1.dev37'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 47, 1, 'dev37')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -89,16 +89,6 @@ class EventHook:
|
|
|
89
89
|
self.fire(**request_meta)
|
|
90
90
|
|
|
91
91
|
|
|
92
|
-
class DeprecatedEventHook(EventHook):
|
|
93
|
-
def __init__(self, message):
|
|
94
|
-
self.message = message
|
|
95
|
-
super().__init__()
|
|
96
|
-
|
|
97
|
-
def add_listener(self, handler):
|
|
98
|
-
logging.warning(self.message)
|
|
99
|
-
return super().add_listener(handler)
|
|
100
|
-
|
|
101
|
-
|
|
102
92
|
class Events:
|
|
103
93
|
request: EventHook
|
|
104
94
|
"""
|
|
@@ -142,10 +142,6 @@ def bucket_response_time(response_time: int | float) -> int:
|
|
|
142
142
|
return int(round(response_time, -3))
|
|
143
143
|
|
|
144
144
|
|
|
145
|
-
class RequestStatsAdditionError(Exception):
|
|
146
|
-
pass
|
|
147
|
-
|
|
148
|
-
|
|
149
145
|
def get_readable_percentiles(percentile_list: list[float]) -> list[str]:
|
|
150
146
|
"""
|
|
151
147
|
Converts a list of percentiles from 0-1 fraction to 0%-100% view for using in console & csv reporting
|
|
@@ -433,23 +429,7 @@ class StatsEntry:
|
|
|
433
429
|
|
|
434
430
|
@property
|
|
435
431
|
def median_response_time(self) -> int:
|
|
436
|
-
|
|
437
|
-
return 0
|
|
438
|
-
median = (
|
|
439
|
-
calculate_response_time_percentile(self.response_times, self.num_requests - self.num_none_requests, 0.5)
|
|
440
|
-
or 0
|
|
441
|
-
)
|
|
442
|
-
|
|
443
|
-
# Since we only use two digits of precision when calculating the median response time
|
|
444
|
-
# while still using the exact values for min and max response times, the following checks
|
|
445
|
-
# makes sure that we don't report a median > max or median < min when a StatsEntry only
|
|
446
|
-
# have one (or very few) really slow requests
|
|
447
|
-
if median > self.max_response_time:
|
|
448
|
-
median = self.max_response_time
|
|
449
|
-
elif self.min_response_time is not None and median < self.min_response_time:
|
|
450
|
-
median = self.min_response_time
|
|
451
|
-
|
|
452
|
-
return median
|
|
432
|
+
return self.get_response_time_percentile(0.5)
|
|
453
433
|
|
|
454
434
|
@property
|
|
455
435
|
def current_rps(self) -> float:
|
|
@@ -609,10 +589,21 @@ class StatsEntry:
|
|
|
609
589
|
"""
|
|
610
590
|
# response_times only holds non-None samples, so None (async) requests
|
|
611
591
|
# must be excluded from the denominator, just like in avg/median
|
|
612
|
-
|
|
592
|
+
percentile = calculate_response_time_percentile(
|
|
613
593
|
self.response_times, self.num_requests - self.num_none_requests, percent
|
|
614
594
|
)
|
|
615
595
|
|
|
596
|
+
# Since we only use two digits of precision when calculating percentiles while still
|
|
597
|
+
# using the exact values for min and max response times, the following checks make sure
|
|
598
|
+
# that we don't report a percentile > max or percentile < min, e.g. a 95th percentile of
|
|
599
|
+
# 1500 when the slowest request took 1460
|
|
600
|
+
if percentile > self.max_response_time:
|
|
601
|
+
percentile = self.max_response_time
|
|
602
|
+
elif self.min_response_time is not None and percentile < self.min_response_time:
|
|
603
|
+
percentile = self.min_response_time
|
|
604
|
+
|
|
605
|
+
return percentile
|
|
606
|
+
|
|
616
607
|
def get_current_response_time_percentile(self, percent: float) -> int | None:
|
|
617
608
|
"""
|
|
618
609
|
Calculate the *current* response time for a certain percentile. We use a sliding
|
|
@@ -166,7 +166,7 @@ def get_tasks_from_base_classes(bases, class_dict):
|
|
|
166
166
|
|
|
167
167
|
for item in class_dict.values():
|
|
168
168
|
if "locust_task_weight" in dir(item):
|
|
169
|
-
for
|
|
169
|
+
for _ in range(item.locust_task_weight):
|
|
170
170
|
new_tasks.append(item)
|
|
171
171
|
|
|
172
172
|
return new_tasks
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|