locust 2.47.1.dev33__tar.gz → 2.47.1.dev35__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.dev35}/PKG-INFO +1 -1
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/_version.py +2 -2
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/stats.py +13 -18
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/.gitignore +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/LICENSE +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/README.md +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/hatch_build.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/__init__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/__main__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/argument_parser.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/clients.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/__init__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/csv_request_logger.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/dns.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/fasthttp.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/milvus.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/mongodb.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/mqtt.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/oai.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/postgres.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/qdrant.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/contrib/socketio.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/debug.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/dispatch.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/env.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/event.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/exception.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/html.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/input_events.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/log.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/main.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/opentelemetry.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/py.typed +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/rpc/__init__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/rpc/protocol.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/runners.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/shape.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/user/__init__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/user/inspectuser.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/user/markov_taskset.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/user/sequential_taskset.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/user/task.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/user/users.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/user/wait_time.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/util/__init__.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/util/cache.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/util/date.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/util/deprecation.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/util/directory.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/util/exception_handler.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/util/load_locustfile.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/util/rounding.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/util/timespan.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/util/url.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/web.py +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/assets/favicon-dark.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/assets/favicon-light.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/assets/graphs-dark.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/assets/graphs-light.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/assets/src-Cl6CiemE.js +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/assets/terminal.gif +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/assets/testruns-dark.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/assets/testruns-light.png +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/auth.html +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/index.html +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/locust/webui/dist/report.html +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/pyproject.toml +0 -0
- {locust-2.47.1.dev33 → locust-2.47.1.dev35}/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.dev35'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 47, 1, 'dev35')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -433,23 +433,7 @@ class StatsEntry:
|
|
|
433
433
|
|
|
434
434
|
@property
|
|
435
435
|
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
|
|
436
|
+
return self.get_response_time_percentile(0.5)
|
|
453
437
|
|
|
454
438
|
@property
|
|
455
439
|
def current_rps(self) -> float:
|
|
@@ -609,10 +593,21 @@ class StatsEntry:
|
|
|
609
593
|
"""
|
|
610
594
|
# response_times only holds non-None samples, so None (async) requests
|
|
611
595
|
# must be excluded from the denominator, just like in avg/median
|
|
612
|
-
|
|
596
|
+
percentile = calculate_response_time_percentile(
|
|
613
597
|
self.response_times, self.num_requests - self.num_none_requests, percent
|
|
614
598
|
)
|
|
615
599
|
|
|
600
|
+
# Since we only use two digits of precision when calculating percentiles while still
|
|
601
|
+
# using the exact values for min and max response times, the following checks make sure
|
|
602
|
+
# that we don't report a percentile > max or percentile < min, e.g. a 95th percentile of
|
|
603
|
+
# 1500 when the slowest request took 1460
|
|
604
|
+
if percentile > self.max_response_time:
|
|
605
|
+
percentile = self.max_response_time
|
|
606
|
+
elif self.min_response_time is not None and percentile < self.min_response_time:
|
|
607
|
+
percentile = self.min_response_time
|
|
608
|
+
|
|
609
|
+
return percentile
|
|
610
|
+
|
|
616
611
|
def get_current_response_time_percentile(self, percent: float) -> int | None:
|
|
617
612
|
"""
|
|
618
613
|
Calculate the *current* response time for a certain percentile. We use a sliding
|
|
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
|
|
File without changes
|
|
File without changes
|