locust 2.46.7.dev13__tar.gz → 2.46.7.dev19__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.46.7.dev13 → locust-2.46.7.dev19}/PKG-INFO +1 -1
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/_version.py +2 -2
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/dispatch.py +3 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/user/wait_time.py +2 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/util/date.py +1 -1
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/.gitignore +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/LICENSE +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/README.md +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/hatch_build.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/__init__.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/__main__.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/argument_parser.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/clients.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/__init__.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/csv_request_logger.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/dns.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/fasthttp.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/milvus.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/mongodb.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/mqtt.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/oai.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/postgres.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/qdrant.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/contrib/socketio.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/debug.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/env.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/event.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/exception.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/html.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/input_events.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/log.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/main.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/opentelemetry.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/py.typed +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/rpc/__init__.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/rpc/protocol.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/runners.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/shape.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/stats.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/user/__init__.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/user/inspectuser.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/user/markov_taskset.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/user/sequential_taskset.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/user/task.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/user/users.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/util/__init__.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/util/cache.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/util/deprecation.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/util/directory.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/util/exception_handler.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/util/load_locustfile.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/util/rounding.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/util/timespan.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/util/url.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/web.py +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/assets/favicon-dark.png +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/assets/favicon-light.png +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/assets/graphs-dark.png +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/assets/graphs-light.png +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/assets/src-pSlzKFX1.js +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/assets/terminal.gif +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/assets/testruns-dark.png +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/assets/testruns-light.png +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/auth.html +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/index.html +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/locust/webui/dist/report.html +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/pyproject.toml +0 -0
- {locust-2.46.7.dev13 → locust-2.46.7.dev19}/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.46.7.
|
|
22
|
-
__version_tuple__ = version_tuple = (2, 46, 7, '
|
|
21
|
+
__version__ = version = '2.46.7.dev19'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 46, 7, 'dev19')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -195,6 +195,9 @@ class UsersDispatcher(Iterator):
|
|
|
195
195
|
if target_user_count < 0:
|
|
196
196
|
raise ValueError(f"target_user_count must be >= 0, got {target_user_count}")
|
|
197
197
|
|
|
198
|
+
if spawn_rate <= 0:
|
|
199
|
+
raise ValueError(f"spawn_rate must be > 0, got {spawn_rate}")
|
|
200
|
+
|
|
198
201
|
if user_classes is not None and self._user_classes != sorted(user_classes, key=attrgetter("__name__")):
|
|
199
202
|
self._user_classes = sorted(user_classes, key=attrgetter("__name__"))
|
|
200
203
|
self._user_generator = self._user_gen()
|
|
@@ -83,6 +83,8 @@ def constant_throughput(task_runs_per_second: float) -> Callable[["User"], float
|
|
|
83
83
|
If a task execution exceeds the specified wait_time, the wait will be 0 before starting
|
|
84
84
|
the next task.
|
|
85
85
|
"""
|
|
86
|
+
if task_runs_per_second <= 0:
|
|
87
|
+
raise ValueError(f"constant_throughput() requires a positive rate, got: {task_runs_per_second}")
|
|
86
88
|
return constant_pacing(1 / task_runs_per_second)
|
|
87
89
|
|
|
88
90
|
|
|
@@ -10,7 +10,7 @@ def format_safe_timestamp(unix_timestamp):
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def format_duration(start_time, end_time):
|
|
13
|
-
seconds = int(end_time
|
|
13
|
+
seconds = int(end_time - start_time)
|
|
14
14
|
days = seconds // 86400
|
|
15
15
|
hours = (seconds % 86400) // 3600
|
|
16
16
|
minutes = (seconds % 3600) // 60
|
|
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
|