locust 2.47.1.dev31__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.
Files changed (69) hide show
  1. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/PKG-INFO +1 -1
  2. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/_version.py +2 -2
  3. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/stats.py +13 -18
  4. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/user/users.py +10 -1
  5. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/.gitignore +0 -0
  6. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/LICENSE +0 -0
  7. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/README.md +0 -0
  8. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/hatch_build.py +0 -0
  9. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/__init__.py +0 -0
  10. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/__main__.py +0 -0
  11. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/argument_parser.py +0 -0
  12. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/clients.py +0 -0
  13. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/__init__.py +0 -0
  14. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/csv_request_logger.py +0 -0
  15. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/dns.py +0 -0
  16. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/fasthttp.py +0 -0
  17. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/milvus.py +0 -0
  18. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/mongodb.py +0 -0
  19. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/mqtt.py +0 -0
  20. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/oai.py +0 -0
  21. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/postgres.py +0 -0
  22. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/qdrant.py +0 -0
  23. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/contrib/socketio.py +0 -0
  24. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/debug.py +0 -0
  25. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/dispatch.py +0 -0
  26. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/env.py +0 -0
  27. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/event.py +0 -0
  28. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/exception.py +0 -0
  29. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/html.py +0 -0
  30. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/input_events.py +0 -0
  31. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/log.py +0 -0
  32. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/main.py +0 -0
  33. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/opentelemetry.py +0 -0
  34. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/py.typed +0 -0
  35. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/rpc/__init__.py +0 -0
  36. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/rpc/protocol.py +0 -0
  37. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/rpc/zmqrpc.py +0 -0
  38. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/runners.py +0 -0
  39. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/shape.py +0 -0
  40. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/user/__init__.py +0 -0
  41. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/user/inspectuser.py +0 -0
  42. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/user/markov_taskset.py +0 -0
  43. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/user/sequential_taskset.py +0 -0
  44. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/user/task.py +0 -0
  45. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/user/wait_time.py +0 -0
  46. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/util/__init__.py +0 -0
  47. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/util/cache.py +0 -0
  48. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/util/date.py +0 -0
  49. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/util/deprecation.py +0 -0
  50. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/util/directory.py +0 -0
  51. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/util/exception_handler.py +0 -0
  52. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/util/load_locustfile.py +0 -0
  53. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/util/rounding.py +0 -0
  54. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/util/timespan.py +0 -0
  55. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/util/url.py +0 -0
  56. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/web.py +0 -0
  57. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/assets/favicon-dark.png +0 -0
  58. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/assets/favicon-light.png +0 -0
  59. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/assets/graphs-dark.png +0 -0
  60. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/assets/graphs-light.png +0 -0
  61. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/assets/src-Cl6CiemE.js +0 -0
  62. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/assets/terminal.gif +0 -0
  63. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/assets/testruns-dark.png +0 -0
  64. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/assets/testruns-light.png +0 -0
  65. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/auth.html +0 -0
  66. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/index.html +0 -0
  67. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/locust/webui/dist/report.html +0 -0
  68. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/pyproject.toml +0 -0
  69. {locust-2.47.1.dev31 → locust-2.47.1.dev35}/pytest_locust/plugin.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: locust
3
- Version: 2.47.1.dev31
3
+ Version: 2.47.1.dev35
4
4
  Summary: Developer-friendly load testing framework
5
5
  Project-URL: Homepage, https://locust.cloud/
6
6
  Project-URL: Repository, https://github.com/locustio/locust
@@ -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.dev31'
22
- __version_tuple__ = version_tuple = (2, 47, 1, 'dev31')
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
- if not self.response_times:
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
- return calculate_response_time_percentile(
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
@@ -1,7 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from locust.clients import HttpSession, RestResponseContextManager
4
- from locust.exception import CatchResponseError, StopTest, StopUser
4
+ from locust.exception import (
5
+ CatchResponseError,
6
+ InterruptTaskSet,
7
+ RescheduleTask,
8
+ RescheduleTaskImmediately,
9
+ StopTest,
10
+ StopUser,
11
+ )
5
12
  from locust.user.task import (
6
13
  LOCUST_STATE_RUNNING,
7
14
  LOCUST_STATE_STOPPING,
@@ -308,6 +315,8 @@ class RestMixin(Generic[RestResponseT]):
308
315
  else:
309
316
  resp.failure("Assertion failed")
310
317
 
318
+ except (StopUser, StopTest, RescheduleTask, RescheduleTaskImmediately, InterruptTaskSet):
319
+ raise
311
320
  except Exception as e:
312
321
  error_lines = []
313
322
  for l in traceback.format_exc().split("\n"):
File without changes
File without changes
File without changes