locust 2.32.3.dev1__py3-none-any.whl → 2.32.3.dev4__py3-none-any.whl
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/_version.py +2 -2
- locust/env.py +1 -2
- locust/log.py +1 -1
- locust/main.py +1 -1
- locust/runners.py +9 -11
- locust/util/deprecation.py +1 -1
- {locust-2.32.3.dev1.dist-info → locust-2.32.3.dev4.dist-info}/METADATA +1 -1
- {locust-2.32.3.dev1.dist-info → locust-2.32.3.dev4.dist-info}/RECORD +11 -11
- {locust-2.32.3.dev1.dist-info → locust-2.32.3.dev4.dist-info}/LICENSE +0 -0
- {locust-2.32.3.dev1.dist-info → locust-2.32.3.dev4.dist-info}/WHEEL +0 -0
- {locust-2.32.3.dev1.dist-info → locust-2.32.3.dev4.dist-info}/entry_points.txt +0 -0
locust/_version.py
CHANGED
@@ -14,7 +14,7 @@ __version_tuple__: VERSION_TUPLE
|
|
14
14
|
version_tuple: VERSION_TUPLE
|
15
15
|
|
16
16
|
|
17
|
-
__version__ = "2.32.3.
|
17
|
+
__version__ = "2.32.3.dev4"
|
18
18
|
version = __version__
|
19
|
-
__version_tuple__ = (2, 32, 3, "
|
19
|
+
__version_tuple__ = (2, 32, 3, "dev4")
|
20
20
|
version_tuple = __version_tuple__
|
locust/env.py
CHANGED
@@ -295,8 +295,7 @@ class Environment:
|
|
295
295
|
def _validate_shape_class_instance(self):
|
296
296
|
if self.shape_class is not None and not isinstance(self.shape_class, LoadTestShape):
|
297
297
|
raise ValueError(
|
298
|
-
"shape_class should be instance of LoadTestShape or subclass LoadTestShape, but got:
|
299
|
-
% self.shape_class
|
298
|
+
f"shape_class should be instance of LoadTestShape or subclass LoadTestShape, but got: {self.shape_class}"
|
300
299
|
)
|
301
300
|
|
302
301
|
@property
|
locust/log.py
CHANGED
@@ -95,7 +95,7 @@ def greenlet_exception_logger(logger, level=logging.CRITICAL):
|
|
95
95
|
if greenlet.exc_info[0] == SystemExit:
|
96
96
|
logger.log(
|
97
97
|
min(logging.INFO, level), # dont use higher than INFO for this, because it sounds way to urgent
|
98
|
-
"sys.exit(
|
98
|
+
f"sys.exit({greenlet.exc_info[1]}) called (use log level DEBUG for callstack)",
|
99
99
|
)
|
100
100
|
logger.log(logging.DEBUG, "Unhandled exception in greenlet: %s", greenlet, exc_info=greenlet.exc_info)
|
101
101
|
else:
|
locust/main.py
CHANGED
@@ -554,7 +554,7 @@ See https://github.com/locustio/locust/wiki/Installation#increasing-maximum-numb
|
|
554
554
|
logger.info("--run-time limit reached, stopping test")
|
555
555
|
runner.stop()
|
556
556
|
if options.autoquit != -1:
|
557
|
-
logger.debug("Autoquit time limit set to
|
557
|
+
logger.debug(f"Autoquit time limit set to {options.autoquit} seconds")
|
558
558
|
time.sleep(options.autoquit)
|
559
559
|
logger.info("--autoquit time reached, shutting down")
|
560
560
|
runner.quit()
|
locust/runners.py
CHANGED
@@ -217,7 +217,7 @@ class Runner:
|
|
217
217
|
n += 1
|
218
218
|
if n % 10 == 0 or n == spawn_count:
|
219
219
|
logger.debug("%i users spawned" % self.user_count)
|
220
|
-
logger.debug("All users of class
|
220
|
+
logger.debug(f"All users of class {user_class} spawned")
|
221
221
|
return new_users
|
222
222
|
|
223
223
|
new_users: list[User] = []
|
@@ -256,7 +256,7 @@ class Runner:
|
|
256
256
|
|
257
257
|
while True:
|
258
258
|
user_to_stop: User = to_stop.pop()
|
259
|
-
logger.debug("Stopping
|
259
|
+
logger.debug(f"Stopping {user_to_stop.greenlet.name}")
|
260
260
|
if user_to_stop.greenlet is greenlet.getcurrent():
|
261
261
|
# User called runner.quit(), so don't block waiting for killing to finish
|
262
262
|
user_to_stop.group.killone(user_to_stop.greenlet, block=False)
|
@@ -272,8 +272,7 @@ class Runner:
|
|
272
272
|
|
273
273
|
if not stop_group.join(timeout=self.environment.stop_timeout):
|
274
274
|
logger.info(
|
275
|
-
"Not all users finished their tasks & terminated in
|
276
|
-
% self.environment.stop_timeout
|
275
|
+
f"Not all users finished their tasks & terminated in {self.environment.stop_timeout} seconds. Stopping them..."
|
277
276
|
)
|
278
277
|
stop_group.kill(block=True)
|
279
278
|
|
@@ -495,7 +494,7 @@ class LocalRunner(Runner):
|
|
495
494
|
user_classes_spawn_count: dict[str, int] = {}
|
496
495
|
user_classes_stop_count: dict[str, int] = {}
|
497
496
|
user_classes_count = dispatched_users[self._local_worker_node.id]
|
498
|
-
logger.debug("Ramping to
|
497
|
+
logger.debug(f"Ramping to {_format_user_classes_count_for_log(user_classes_count)}")
|
499
498
|
for user_class_name, user_class_count in user_classes_count.items():
|
500
499
|
if self.user_classes_count[user_class_name] > user_class_count:
|
501
500
|
user_classes_stop_count[user_class_name] = (
|
@@ -558,7 +557,7 @@ class LocalRunner(Runner):
|
|
558
557
|
:param msg_type: The type of the message to emulate sending
|
559
558
|
:param data: Optional data to include
|
560
559
|
"""
|
561
|
-
logger.debug("Running locally: sending
|
560
|
+
logger.debug(f"Running locally: sending {msg_type} message to self")
|
562
561
|
if msg_type in self.custom_messages:
|
563
562
|
listener, concurrent = self.custom_messages[msg_type]
|
564
563
|
msg = Message(msg_type, data, "local")
|
@@ -877,7 +876,7 @@ class MasterRunner(DistributedRunner):
|
|
877
876
|
|
878
877
|
if send_stop_to_client:
|
879
878
|
for client in self.clients.all:
|
880
|
-
logger.debug("Sending stop message to worker
|
879
|
+
logger.debug(f"Sending stop message to worker {client.id}")
|
881
880
|
self.server.send_to_client(Message("stop", None, client.id))
|
882
881
|
|
883
882
|
# Give an additional 60s for all workers to stop
|
@@ -987,8 +986,7 @@ class MasterRunner(DistributedRunner):
|
|
987
986
|
logger.error(f"RPCError: {e}. Will reset RPC server.")
|
988
987
|
else:
|
989
988
|
logger.debug(
|
990
|
-
"RPCError when receiving from worker:
|
991
|
-
% (e)
|
989
|
+
f"RPCError when receiving from worker: {e} (but no workers were expected to be connected anyway)"
|
992
990
|
)
|
993
991
|
self.connection_broken = True
|
994
992
|
gevent.sleep(FALLBACK_INTERVAL)
|
@@ -1410,7 +1408,7 @@ class WorkerRunner(DistributedRunner):
|
|
1410
1408
|
# master says we have finished spawning (happens only once during a normal rampup)
|
1411
1409
|
self.environment.events.spawning_complete.fire(user_count=msg.data["user_count"])
|
1412
1410
|
elif msg.type in self.custom_messages:
|
1413
|
-
logger.debug("Received
|
1411
|
+
logger.debug(f"Received {msg.type} message from master")
|
1414
1412
|
listener, concurrent = self.custom_messages[msg.type]
|
1415
1413
|
if not concurrent:
|
1416
1414
|
listener(environment=self.environment, msg=msg)
|
@@ -1454,7 +1452,7 @@ class WorkerRunner(DistributedRunner):
|
|
1454
1452
|
:param data: Optional data to send
|
1455
1453
|
:param client_id: (unused)
|
1456
1454
|
"""
|
1457
|
-
logger.debug("Sending
|
1455
|
+
logger.debug(f"Sending {msg_type} message to master")
|
1458
1456
|
self.client.send(Message(msg_type, data, self.client_id))
|
1459
1457
|
|
1460
1458
|
def _send_stats(self) -> None:
|
locust/util/deprecation.py
CHANGED
@@ -12,7 +12,7 @@ def check_for_deprecated_task_set_attribute(class_dict):
|
|
12
12
|
if issubclass(task_set, TaskSet) and not hasattr(task_set, "locust_task_weight"):
|
13
13
|
warnings.warn(
|
14
14
|
"Usage of User.task_set is deprecated since version 1.0. Set the tasks attribute instead "
|
15
|
-
"(tasks = [
|
15
|
+
f"(tasks = [{task_set.__name__}])",
|
16
16
|
DeprecationWarning,
|
17
17
|
)
|
18
18
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
locust/__init__.py,sha256=Jit8eNUrwuMLqavyFvMZr69e61DILq_KB4yT4MciScw,1681
|
2
2
|
locust/__main__.py,sha256=vBQ82334kX06ImDbFlPFgiBRiLIinwNk3z8Khs6hd74,31
|
3
|
-
locust/_version.py,sha256=
|
3
|
+
locust/_version.py,sha256=5Zt98omYsUnBiFJvkesVXvi5Fbncl4ip6U5ioLx3IPE,458
|
4
4
|
locust/argument_parser.py,sha256=LuGP0vppUIYzbXI3PTIbB1USajbwwTGC_FqagkyG3Dg,29424
|
5
5
|
locust/clients.py,sha256=XK-xabq2_5GZKMEjebDobvEjeBTtCs8h2EelL7s68Qs,19346
|
6
6
|
locust/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -9,18 +9,18 @@ locust/contrib/mongodb.py,sha256=1seUYgJOaNKwybYOP9PUEVhgl8hGy-G33f8lFj3R8W8,124
|
|
9
9
|
locust/contrib/postgres.py,sha256=OuMWnGYN10K65Tq2axVESEW25Y0g5gJb0rK90jkcCJg,1230
|
10
10
|
locust/debug.py,sha256=7CCm8bIg44uGH2wqBlo1rXBzV2VzwPicLxLewz8r5CQ,5099
|
11
11
|
locust/dispatch.py,sha256=prdwtb9EoN4A9klgiKgWuwQmvFB8hEuFHOK6ot62AJI,16202
|
12
|
-
locust/env.py,sha256=
|
12
|
+
locust/env.py,sha256=UgR85CbbMXjhsbrMO8cx--ubdzEwuM2WZtY8DFMHHho,13065
|
13
13
|
locust/event.py,sha256=AWoeG2q11Vpupv1eW9Rf2N0EI4dDDAldKe6zY1ajC7I,8717
|
14
14
|
locust/exception.py,sha256=jGgJ32ubuf4pWdlaVOkbh2Y0LlG0_DHi-lv3ib8ppOE,1791
|
15
15
|
locust/html.py,sha256=X9N8u42aHptcQdRZ5cLrBmDuXqRW0yXH_TaWPsWfweY,3691
|
16
16
|
locust/input_events.py,sha256=ZIyePyAMuA_YFYWg18g_pE4kwuQV3RbEB250MzXRwjY,3314
|
17
|
-
locust/log.py,sha256=
|
18
|
-
locust/main.py,sha256=
|
17
|
+
locust/log.py,sha256=50sj-aIyiE4NyZenXZV4SKl-VimiD5IVZRsARTR0b5M,3455
|
18
|
+
locust/main.py,sha256=x12ZG69nxkB17xQo7zSEu2s5t9ZPLLqksKwvp_hzcDY,29931
|
19
19
|
locust/py.typed,sha256=gkWLl8yD4mIZnNYYAIRM8g9VarLvWmTAFeUfEbxJLBw,65
|
20
20
|
locust/rpc/__init__.py,sha256=nVGoHWFQxZjnhCDWjbgXIbmFbN9sizAjkhvSs9_642c,58
|
21
21
|
locust/rpc/protocol.py,sha256=n-rb3GZQcAlldYDj4E4GuFGylYj_26GSS5U29meft5Y,1282
|
22
22
|
locust/rpc/zmqrpc.py,sha256=_zl0DKazQLD2YyqxvyuskVApsDCaUnhloHvV8SkJxjw,3157
|
23
|
-
locust/runners.py,sha256=
|
23
|
+
locust/runners.py,sha256=NS7lRfzg6VC22YslgkFMvlKDWmcVCdLQAxor-4edQcU,70454
|
24
24
|
locust/shape.py,sha256=t-lwBS8LOjWcKXNL7j2U3zroIXJ1b0fazUwpRYQOKXw,1973
|
25
25
|
locust/stats.py,sha256=Ylw-uyt3cpeqy0Oi5kvcloVWgjJm62lu9lbWJfq2lHU,46061
|
26
26
|
locust/user/__init__.py,sha256=S2yvmI_AU9kXirtTIVqiV_Hs7yXzqXvaSgkNo9ig-fk,71
|
@@ -32,7 +32,7 @@ locust/user/wait_time.py,sha256=bGRKMVx4lom75sX3POYJUa1CPeME2bEAXG6CEgxSO5U,2675
|
|
32
32
|
locust/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
33
|
locust/util/cache.py,sha256=IxbpGawl0-hoWKvCrtksxjSLf2GbBBTVns06F7mFBkM,1062
|
34
34
|
locust/util/date.py,sha256=2uZAY-fkJq7llUcVywTDTbe-_2IYumCv18n3Vrc75gw,833
|
35
|
-
locust/util/deprecation.py,sha256=
|
35
|
+
locust/util/deprecation.py,sha256=4my4IcFpbM6yEKr569GMUKMsS0ywp0N4JPhhwm3J1-w,2026
|
36
36
|
locust/util/directory.py,sha256=2EeuVIIFEErm0OpNXdsEgQLx49jAXq-PvMj2uY0Mr8o,326
|
37
37
|
locust/util/exception_handler.py,sha256=jTMyBq2a0O07fRjmqGkheyaPj58tUgnbbcjoesKGPws,797
|
38
38
|
locust/util/load_locustfile.py,sha256=hn70KcIG8jHmZyuKv2pcEmwgWtOEu24Efeji1KRYNUE,2964
|
@@ -47,8 +47,8 @@ locust/webui/dist/auth.html,sha256=0fvb3-Y4J93meBMkvrOAMRt4hkF9lislJ2Tmc93urN4,6
|
|
47
47
|
locust/webui/dist/index.html,sha256=VawZBgQnz65gCIE8lCvhsvuXKc9kDc9DNiVrn9PV-08,654
|
48
48
|
locust/webui/dist/report.html,sha256=KUmkufa4Ob8GTqBmVtFnueZL8h76eEUMVnoL069cAcg,1471006
|
49
49
|
poetry.lock,sha256=NUOC8hV7YCL5kHXj3GF2Kb16DLRCXoZUjiWXPghYEyg,213450
|
50
|
-
locust-2.32.3.
|
51
|
-
locust-2.32.3.
|
52
|
-
locust-2.32.3.
|
53
|
-
locust-2.32.3.
|
54
|
-
locust-2.32.3.
|
50
|
+
locust-2.32.3.dev4.dist-info/LICENSE,sha256=78XGpIn3fHVBfaxlPNUfjVufSN7QsdhpJMRJHv2AFpo,1095
|
51
|
+
locust-2.32.3.dev4.dist-info/METADATA,sha256=vx_37DobJZQWvjJc3AR_bWS7EQJOC5DlLVqcFichT-k,7876
|
52
|
+
locust-2.32.3.dev4.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
53
|
+
locust-2.32.3.dev4.dist-info/entry_points.txt,sha256=RhIxlLwU_Ae_WjimS5COUDLagdCh6IOMyLtgaQxNmlM,43
|
54
|
+
locust-2.32.3.dev4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|