locust 2.26.1.dev12__tar.gz → 2.26.1.dev26__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 (352) hide show
  1. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.vscode/settings.json +6 -0
  2. {locust-2.26.1.dev12/locust.egg-info → locust-2.26.1.dev26}/PKG-INFO +3 -3
  3. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/README.md +2 -2
  4. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/changelog.rst +11 -11
  5. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/configuration.rst +8 -10
  6. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/custom-load-shape.rst +2 -2
  7. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/extending-locust.rst +2 -8
  8. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/increase-performance.rst +5 -5
  9. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/index.rst +0 -1
  10. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/quickstart.rst +4 -8
  11. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/running-in-docker.rst +3 -18
  12. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/testing-other-systems.rst +2 -2
  13. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/what-is-locust.rst +6 -7
  14. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/writing-a-locustfile.rst +11 -14
  15. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/_version.py +2 -2
  16. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/clients.py +1 -2
  17. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/main.py +3 -4
  18. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/util/timespan.py +2 -3
  19. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/web.py +1 -1
  20. {locust-2.26.1.dev12 → locust-2.26.1.dev26/locust.egg-info}/PKG-INFO +3 -3
  21. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust.egg-info/SOURCES.txt +0 -1
  22. locust-2.26.1.dev12/docs/running-cloud-integration.rst +0 -17
  23. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.coveragerc +0 -0
  24. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.dockerignore +0 -0
  25. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.git-blame-ignore-revs +0 -0
  26. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.gitattributes +0 -0
  27. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.github/CONTRIBUTING.md +0 -0
  28. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  29. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  30. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  31. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.github/workflows/stale.yml +0 -0
  32. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.github/workflows/tests.yml +0 -0
  33. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.gitignore +0 -0
  34. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.pre-commit-config.yaml +0 -0
  35. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.readthedocs.yaml +0 -0
  36. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.vscode/extensions.json +0 -0
  37. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.vscode/launch.json +0 -0
  38. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/.vscode/launch_locust.json +0 -0
  39. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/CHANGELOG.md +0 -0
  40. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/Dockerfile +0 -0
  41. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/LICENSE +0 -0
  42. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/MANIFEST.in +0 -0
  43. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/Makefile +0 -0
  44. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/README +0 -0
  45. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/SECURITY.md +0 -0
  46. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/Vagrantfile +0 -0
  47. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/benchmarks/dispatch.py +0 -0
  48. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/_static/theme-overrides.css +0 -0
  49. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/api.rst +0 -0
  50. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/conf.py +0 -0
  51. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/developing-locust.rst +0 -0
  52. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/further-reading.rst +0 -0
  53. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/history.rst +0 -0
  54. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/images/extend_modern_web_ui_cache_stats.png +0 -0
  55. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/images/locust_workers.png +0 -0
  56. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/images/number_of_users.png +0 -0
  57. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/images/response_times.png +0 -0
  58. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/images/total_requests_per_second.png +0 -0
  59. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/images/userclass_picker_example.png +0 -0
  60. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/images/webui-running-statistics.png +0 -0
  61. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/images/webui-splash-screenshot.png +0 -0
  62. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/installation.rst +0 -0
  63. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/logging.rst +0 -0
  64. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/requirements.txt +0 -0
  65. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/retrieving-stats.rst +0 -0
  66. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/running-distributed.rst +0 -0
  67. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/running-in-debugger.rst +0 -0
  68. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/running-without-web-ui.rst +0 -0
  69. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/tasksets.rst +0 -0
  70. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/docs/use-as-lib.rst +0 -0
  71. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/add_command_line_argument.py +0 -0
  72. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/basic.py +0 -0
  73. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/browse_docs_sequence_test.py +0 -0
  74. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/browse_docs_test.py +0 -0
  75. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/custom_messages.py +0 -0
  76. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/custom_shape/double_wave.py +0 -0
  77. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/custom_shape/stages.py +0 -0
  78. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/custom_shape/staging_user_classes.py +0 -0
  79. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/custom_shape/step_load.py +0 -0
  80. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/custom_shape/wait_user_count.py +0 -0
  81. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/custom_wait_function.py +0 -0
  82. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/custom_xmlrpc_client/server.py +0 -0
  83. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/custom_xmlrpc_client/xmlrpc_locustfile.py +0 -0
  84. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/debugging.py +0 -0
  85. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/debugging_advanced.py +0 -0
  86. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/docker-compose/docker-compose.yml +0 -0
  87. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/dynamic_user_credentials.py +0 -0
  88. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/events.py +0 -0
  89. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/extend_modern_web_ui.py +0 -0
  90. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/extend_web_ui/extend.py +0 -0
  91. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/extend_web_ui/static/custom-stats-table.css +0 -0
  92. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/extend_web_ui/static/extend.js +0 -0
  93. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/extend_web_ui/templates/extend.html +0 -0
  94. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/fast_http_locust.py +0 -0
  95. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/grpc/grpc_user.py +0 -0
  96. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/grpc/hello.proto +0 -0
  97. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/grpc/hello_pb2.py +0 -0
  98. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/grpc/hello_pb2_grpc.py +0 -0
  99. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/grpc/hello_server.py +0 -0
  100. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/grpc/locustfile.py +0 -0
  101. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/locustfile.py +0 -0
  102. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/manual_stats_reporting.py +0 -0
  103. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/multiple_hosts.py +0 -0
  104. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/nested_inline_tasksets.py +0 -0
  105. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/rest.py +0 -0
  106. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/sdk_session_patching/session_patch_locustfile.py +0 -0
  107. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/semaphore_wait.py +0 -0
  108. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/stop_on_threshold.py +0 -0
  109. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/terraform/aws/README.md +0 -0
  110. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/terraform/aws/data_subnet.tf +0 -0
  111. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/terraform/aws/main.tf +0 -0
  112. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/terraform/aws/output.tf +0 -0
  113. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/terraform/aws/plan/basic.py +0 -0
  114. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/terraform/aws/provisioner.tf +0 -0
  115. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/terraform/aws/variables.tf +0 -0
  116. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/test_data_management.py +0 -0
  117. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/use_as_lib.py +0 -0
  118. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/vagrant/README.md +0 -0
  119. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/vagrant/supervisord.conf +0 -0
  120. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/web_ui_auth.py +0 -0
  121. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/web_ui_cache_stats.py +0 -0
  122. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/examples/worker_index.py +0 -0
  123. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/generate_changelog.py +0 -0
  124. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/__init__.py +0 -0
  125. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/__main__.py +0 -0
  126. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/argument_parser.py +0 -0
  127. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/contrib/__init__.py +0 -0
  128. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/contrib/fasthttp.py +0 -0
  129. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/debug.py +0 -0
  130. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/dispatch.py +0 -0
  131. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/env.py +0 -0
  132. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/event.py +0 -0
  133. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/exception.py +0 -0
  134. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/html.py +0 -0
  135. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/input_events.py +0 -0
  136. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/log.py +0 -0
  137. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/py.typed +0 -0
  138. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/rpc/__init__.py +0 -0
  139. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/rpc/protocol.py +0 -0
  140. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/rpc/zmqrpc.py +0 -0
  141. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/runners.py +0 -0
  142. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/shape.py +0 -0
  143. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/chart.js +0 -0
  144. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/css/application.css +0 -0
  145. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/css/application.css.map +0 -0
  146. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/css/tables.css +0 -0
  147. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/css/tables.css.map +0 -0
  148. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/echarts.common.min.js +0 -0
  149. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/img/favicon.ico +0 -0
  150. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/img/logo.png +0 -0
  151. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/img/ui-screenshot-charts.png +0 -0
  152. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/img/ui-screenshot-start-test.png +0 -0
  153. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/img/ui-screenshot-stats.png +0 -0
  154. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/img/ui-screenshot-workers.png +0 -0
  155. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/jquery-1.11.3.min.js +0 -0
  156. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/jquery.jqote2.min.js +0 -0
  157. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/jquery.tools.min.js +0 -0
  158. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/locust.js +0 -0
  159. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/sass/_base.sass +0 -0
  160. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/sass/_mixins.sass +0 -0
  161. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/sass/application.sass +0 -0
  162. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/sass/tables.sass +0 -0
  163. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/tasks.js +0 -0
  164. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/static/vintage.js +0 -0
  165. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/stats.py +0 -0
  166. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/templates/index.html +0 -0
  167. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/templates/report.html +0 -0
  168. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/templates/stats_data.html +0 -0
  169. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/__init__.py +0 -0
  170. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/fake_module1_for_env_test.py +0 -0
  171. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/fake_module2_for_env_test.py +0 -0
  172. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/mock_locustfile.py +0 -0
  173. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/mock_logging.py +0 -0
  174. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_debugging.py +0 -0
  175. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_dispatch.py +0 -0
  176. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_env.py +0 -0
  177. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_fasthttp.py +0 -0
  178. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_http.py +0 -0
  179. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_interruptable_task.py +0 -0
  180. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_load_locustfile.py +0 -0
  181. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_locust_class.py +0 -0
  182. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_log.py +0 -0
  183. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_main.py +0 -0
  184. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_old_wait_api.py +0 -0
  185. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_parser.py +0 -0
  186. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_runners.py +0 -0
  187. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_sequential_taskset.py +0 -0
  188. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_stats.py +0 -0
  189. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_tags.py +0 -0
  190. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_taskratio.py +0 -0
  191. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_users.py +0 -0
  192. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_util.py +0 -0
  193. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_wait_time.py +0 -0
  194. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_web.py +0 -0
  195. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/test_zmqrpc.py +0 -0
  196. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/testcases.py +0 -0
  197. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/test/util.py +0 -0
  198. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/user/__init__.py +0 -0
  199. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/user/inspectuser.py +0 -0
  200. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/user/sequential_taskset.py +0 -0
  201. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/user/task.py +0 -0
  202. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/user/users.py +0 -0
  203. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/user/wait_time.py +0 -0
  204. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/util/__init__.py +0 -0
  205. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/util/cache.py +0 -0
  206. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/util/deprecation.py +0 -0
  207. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/util/exception_handler.py +0 -0
  208. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/util/load_locustfile.py +0 -0
  209. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/util/rounding.py +0 -0
  210. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/.eslintrc +0 -0
  211. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/.gitignore +0 -0
  212. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/.prettierrc +0 -0
  213. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/auth.html +0 -0
  214. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/dev.html +0 -0
  215. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/dist/assets/favicon.ico +0 -0
  216. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/dist/assets/index-941b6e82.js +0 -0
  217. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/dist/assets/logo.png +0 -0
  218. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/dist/auth.html +0 -0
  219. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/dist/index.html +0 -0
  220. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/dist/report.html +0 -0
  221. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/index.html +0 -0
  222. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/package.json +0 -0
  223. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/public/assets/favicon.ico +0 -0
  224. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/public/assets/logo.png +0 -0
  225. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/public/report.html +0 -0
  226. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/App.test.tsx +0 -0
  227. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/App.tsx +0 -0
  228. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/DataTable/DataTable.test.tsx +0 -0
  229. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/DataTable/DataTable.tsx +0 -0
  230. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/ExceptionsTable/ExceptionsTable.tsx +0 -0
  231. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/FailuresTable/FailuresTable.tsx +0 -0
  232. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/FallbackRender/FallbackRender.test.tsx +0 -0
  233. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/FallbackRender/FallbackRender.tsx +0 -0
  234. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Form/Form.tsx +0 -0
  235. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Form/Select.tsx +0 -0
  236. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Form/tests/Form.test.tsx +0 -0
  237. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Form/tests/Select.test.tsx +0 -0
  238. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Footer/About.tsx +0 -0
  239. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Footer/Footer.tsx +0 -0
  240. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Layout.tsx +0 -0
  241. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Navbar/DarkLightToggle.tsx +0 -0
  242. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Navbar/Navbar.tsx +0 -0
  243. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Navbar/SwarmMonitor.test.tsx +0 -0
  244. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Navbar/SwarmMonitor.tsx +0 -0
  245. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/LineChart/LineChart.test.tsx +0 -0
  246. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/LineChart/LineChart.tsx +0 -0
  247. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/LogViewer/LogViewer.tsx +0 -0
  248. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/LogViewer/tests/LogViewer.test.tsx +0 -0
  249. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/LogViewer/tests/useLogViewer.test.tsx +0 -0
  250. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/LogViewer/useLogViewer.ts +0 -0
  251. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Modal/Modal.tsx +0 -0
  252. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Reports/Reports.test.tsx +0 -0
  253. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Reports/Reports.tsx +0 -0
  254. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/ResponseTimeTable/ResponseTimeTable.test.tsx +0 -0
  255. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/ResponseTimeTable/ResponseTimeTable.tsx +0 -0
  256. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/EditButton.tsx +0 -0
  257. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/NewTestButton.tsx +0 -0
  258. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/ResetButton.tsx +0 -0
  259. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/StateButtons.tsx +0 -0
  260. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/StopButton.tsx +0 -0
  261. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/tests/ResetButton.test.tsx +0 -0
  262. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/tests/StateButtons.test.tsx +0 -0
  263. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/tests/StopButton.test.tsx +0 -0
  264. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/StatsTable/StatsTable.tsx +0 -0
  265. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmCharts/SwarmCharts.tsx +0 -0
  266. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/SwarmCustomParameters.tsx +0 -0
  267. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/SwarmEditForm.tsx +0 -0
  268. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/SwarmForm.tsx +0 -0
  269. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/SwarmUserClassPicker.tsx +0 -0
  270. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/tests/SwarmCustomParameters.test.tsx +0 -0
  271. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/tests/SwarmEditForm.test.tsx +0 -0
  272. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/tests/SwarmForm.test.tsx +0 -0
  273. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/tests/SwarmUserClassPicker.test.tsx +0 -0
  274. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmRatios/SwarmRatios.test.tsx +0 -0
  275. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmRatios/SwarmRatios.tsx +0 -0
  276. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Table/Table.test.tsx +0 -0
  277. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Table/Table.tsx +0 -0
  278. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Tabs/Tabs.constants.tsx +0 -0
  279. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Tabs/Tabs.test.tsx +0 -0
  280. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/Tabs/Tabs.tsx +0 -0
  281. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/ViewColumnSelector/ViewColumnSelector.test.tsx +0 -0
  282. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/ViewColumnSelector/ViewColumnSelector.tsx +0 -0
  283. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/components/WorkersTable/WorkersTable.tsx +0 -0
  284. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/constants/auth.ts +0 -0
  285. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/constants/swarm.ts +0 -0
  286. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/constants/theme.ts +0 -0
  287. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/global.d.ts +0 -0
  288. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/hooks/tests/useNotifications.test.tsx +0 -0
  289. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/hooks/tests/useSelecteViewColumns.test.tsx +0 -0
  290. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/hooks/tests/useSortByField.test.tsx +0 -0
  291. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/hooks/tests/useSwarmUi.test.tsx +0 -0
  292. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/hooks/useInterval.ts +0 -0
  293. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/hooks/useNotifications.ts +0 -0
  294. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/hooks/useSelectViewColumns.ts +0 -0
  295. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/hooks/useSortByField.ts +0 -0
  296. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/hooks/useSwarmUi.ts +0 -0
  297. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/index.tsx +0 -0
  298. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/pages/Auth.tsx +0 -0
  299. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/pages/Dashboard.tsx +0 -0
  300. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/pages/HtmlReport.tsx +0 -0
  301. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/pages/tests/Auth.test.tsx +0 -0
  302. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/pages/tests/Dashboard.test.tsx +0 -0
  303. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/pages/tests/HtmlReport.test.tsx +0 -0
  304. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/api/swarm.ts +0 -0
  305. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/hooks.ts +0 -0
  306. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/logViewer.slice.ts +0 -0
  307. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/notification.slice.ts +0 -0
  308. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/root.slice.ts +0 -0
  309. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/swarm.slice.ts +0 -0
  310. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/tests/ui.slice.test.ts +0 -0
  311. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/theme.slice.ts +0 -0
  312. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/ui.slice.ts +0 -0
  313. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/url.slice.ts +0 -0
  314. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/store.ts +0 -0
  315. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/redux/utils.ts +0 -0
  316. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/styles/theme.ts +0 -0
  317. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/test/constants.ts +0 -0
  318. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/test/mocks/statsRequest.mock.ts +0 -0
  319. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/test/mocks/swarmState.mock.ts +0 -0
  320. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/test/setup.ts +0 -0
  321. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/test/testUtils.tsx +0 -0
  322. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/types/auth.types.ts +0 -0
  323. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/types/swarm.types.ts +0 -0
  324. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/types/tab.types.ts +0 -0
  325. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/types/table.types.ts +0 -0
  326. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/types/ui.types.ts +0 -0
  327. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/utils/number.ts +0 -0
  328. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/utils/object.ts +0 -0
  329. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/utils/string.ts +0 -0
  330. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/utils/tests/number.test.ts +0 -0
  331. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/utils/tests/object.test.ts +0 -0
  332. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/utils/tests/string.test.ts +0 -0
  333. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/utils/tests/url.test.ts +0 -0
  334. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/src/utils/url.ts +0 -0
  335. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/tsconfig.json +0 -0
  336. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/vite.config.ts +0 -0
  337. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/vitest.config.ts +0 -0
  338. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust/webui/yarn.lock +0 -0
  339. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust.egg-info/dependency_links.txt +0 -0
  340. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust.egg-info/entry_points.txt +0 -0
  341. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust.egg-info/not-zip-safe +0 -0
  342. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust.egg-info/requires.txt +0 -0
  343. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/locust.egg-info/top_level.txt +0 -0
  344. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/package.json +0 -0
  345. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/pyproject.toml +0 -0
  346. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/scripts/locustfile.py +0 -0
  347. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/scripts/run-disributed-headless.sh +0 -0
  348. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/scripts/run-disributed-web.sh +0 -0
  349. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/scripts/run-local-headless.sh +0 -0
  350. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/scripts/run-local-web.sh +0 -0
  351. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/setup.cfg +0 -0
  352. {locust-2.26.1.dev12 → locust-2.26.1.dev26}/tox.ini +0 -0
@@ -37,6 +37,12 @@
37
37
  "restructuredtext.confPath": "${workspaceFolder}/docs",
38
38
  "[python]": {
39
39
  "editor.formatOnSave": true,
40
+ "editor.codeActionsOnSave": {
41
+ "source.fixAll": "explicit",
42
+ "source.organizeImports": "explicit"
43
+ },
40
44
  "editor.defaultFormatter": "charliermarsh.ruff"
41
45
  },
46
+ "python.testing.pytestEnabled": false,
47
+ "python.testing.unittestEnabled": true
42
48
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: locust
3
- Version: 2.26.1.dev12
3
+ Version: 2.26.1.dev26
4
4
  Summary: Developer friendly load testing framework
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://github.com/locustio/locust
@@ -105,7 +105,7 @@ Locust's code base is intentionally kept small and doesn't solve everything out
105
105
  * [Send real time reporting data to TimescaleDB and visualize it in Grafana](https://github.com/SvenskaSpel/locust-plugins/blob/master/locust_plugins/dashboards/README.md)
106
106
  * [Wrap calls to handle the peculiarities of your REST API](https://github.com/SvenskaSpel/locust-plugins/blob/8af21862d8129a5c3b17559677fe92192e312d8f/examples/rest_ex.py#L87)
107
107
  * [Use a totally custom load shape/profile](https://docs.locust.io/en/latest/custom-load-shape.html#custom-load-shape)
108
- * ...
108
+ * [...](https://github.com/locustio/locust/wiki/Extensions)
109
109
 
110
110
  ## Links
111
111
 
@@ -116,7 +116,7 @@ Locust's code base is intentionally kept small and doesn't solve everything out
116
116
  ## Authors
117
117
 
118
118
  * Maintainer: [Lars Holmberg](https://github.com/cyberw)
119
- * Modern UI: [Andrew Baldwin](https://github.com/andrewbaldwin44)
119
+ * UI: [Andrew Baldwin](https://github.com/andrewbaldwin44)
120
120
  * Original creator: [Jonatan Heyman](https://github.com/heyman)
121
121
  * Massive thanks to [all of our contributors](https://github.com/locustio/locust/graphs/contributors)
122
122
 
@@ -62,7 +62,7 @@ Locust's code base is intentionally kept small and doesn't solve everything out
62
62
  * [Send real time reporting data to TimescaleDB and visualize it in Grafana](https://github.com/SvenskaSpel/locust-plugins/blob/master/locust_plugins/dashboards/README.md)
63
63
  * [Wrap calls to handle the peculiarities of your REST API](https://github.com/SvenskaSpel/locust-plugins/blob/8af21862d8129a5c3b17559677fe92192e312d8f/examples/rest_ex.py#L87)
64
64
  * [Use a totally custom load shape/profile](https://docs.locust.io/en/latest/custom-load-shape.html#custom-load-shape)
65
- * ...
65
+ * [...](https://github.com/locustio/locust/wiki/Extensions)
66
66
 
67
67
  ## Links
68
68
 
@@ -73,7 +73,7 @@ Locust's code base is intentionally kept small and doesn't solve everything out
73
73
  ## Authors
74
74
 
75
75
  * Maintainer: [Lars Holmberg](https://github.com/cyberw)
76
- * Modern UI: [Andrew Baldwin](https://github.com/andrewbaldwin44)
76
+ * UI: [Andrew Baldwin](https://github.com/andrewbaldwin44)
77
77
  * Original creator: [Jonatan Heyman](https://github.com/heyman)
78
78
  * Massive thanks to [all of our contributors](https://github.com/locustio/locust/graphs/contributors)
79
79
 
@@ -274,7 +274,7 @@ For full details of the Locust changelog, please see https://github.com/locustio
274
274
  =====
275
275
  * Pass --tags and --exclude-tags to workers. (https://github.com/locustio/locust/pull/1976)
276
276
  * Clean up some logging messages (https://github.com/locustio/locust/pull/1973)
277
- * Ensure heartbeat\_worker doesnt try to re-establish connection to workers when quit has been called (https://github.com/locustio/locust/pull/1972)
277
+ * Ensure heartbeat\_worker doesn't try to re-establish connection to workers when quit has been called (https://github.com/locustio/locust/pull/1972)
278
278
  * fixed\_count: ability to spawn a specific number of users \(as opposed to just using weights\) (https://github.com/locustio/locust/pull/1964)
279
279
 
280
280
  2.5.1
@@ -654,7 +654,7 @@ Other breaking changes
654
654
  Web UI improvements
655
655
  -------------------
656
656
 
657
- * It's now possible to protect the Web UI with Basic Auth using hte ``--web-auth`` command line argument.
657
+ * It's now possible to protect the Web UI with Basic Auth using the ``--web-auth`` command line argument.
658
658
  * The Web UI can now be served over HTTPS by specifying a TLS certificate and key with the ``--tls-cert``
659
659
  and ``--tls-key`` command line arguments.
660
660
  * If the number of users and hatch rate are specified on command line, it's now used to pre-populate the input fields in
@@ -709,7 +709,7 @@ Identical to previous version, but now built & deployed to Pypi using Travis.
709
709
  0.13.2
710
710
  ======
711
711
 
712
- * Fixed bug that broke the Web UI's repsonse time graph
712
+ * Fixed bug that broke the Web UI's response time graph
713
713
 
714
714
  0.13.1
715
715
  ======
@@ -786,7 +786,7 @@ Identical to previous version, but now built & deployed to Pypi using Travis.
786
786
  * Added sequential task support - https://github.com/locustio/locust/pull/827
787
787
  * Added support for user-defined wait_function - https://github.com/locustio/locust/pull/785
788
788
  * By default, Locust no longer resets the statistics when the hatching is complete.
789
- Therefore :code:`--no-reset-stats` has been deprected (since it's now the default behaviour),
789
+ Therefore :code:`--no-reset-stats` has been deprecated (since it's now the default behavior),
790
790
  and instead a new :code:`--reset-stats` option has been added.
791
791
  * Dropped support for Python 3.3
792
792
  * Updated documentation
@@ -803,7 +803,7 @@ Identical to previous version, but now built & deployed to Pypi using Travis.
803
803
 
804
804
  * Python 3 support
805
805
  * Dropped support for Python 2.6
806
- * Added :code:`--no-reset-stats` option for controling if the statistics should be reset once
806
+ * Added :code:`--no-reset-stats` option for controlling if the statistics should be reset once
807
807
  the hatching is complete
808
808
  * Added charts to the web UI for requests per second, average response time, and number of
809
809
  simulated users.
@@ -851,7 +851,7 @@ Identical to previous version, but now built & deployed to Pypi using Travis.
851
851
  * Fixed bug which caused the download time of the request body not to be included in the
852
852
  reported response time.
853
853
  * Fixed bug that occurred on some linux dists that were tampering with the python-requests
854
- system package (removing dependencies which requests is bundling). This bug only occured
854
+ system package (removing dependencies which requests is bundling). This bug only occurred
855
855
  when installing Locust in the python system packages, and not when using virtualenv.
856
856
  * Various minor fixes and improvements.
857
857
 
@@ -859,7 +859,7 @@ Identical to previous version, but now built & deployed to Pypi using Travis.
859
859
  0.7.1
860
860
  =====
861
861
 
862
- * Exceptions that occurs within TaskSets are now catched by default.
862
+ * Exceptions that occurs within TaskSets are now caught by default.
863
863
  * Fixed bug which caused Min response time to always be 0 after all locusts had been hatched
864
864
  and the statistics had been reset.
865
865
  * Minor UI improvements in the web interface.
@@ -875,7 +875,7 @@ HTTP client functionality moved to HttpLocust
875
875
  ---------------------------------------------
876
876
 
877
877
  Previously, the Locust class instantiated a :py:class:`HttpSession <locust.clients.HttpSession>`
878
- under the client attribute that was used to make HTTP requests. This funcionality has
878
+ under the client attribute that was used to make HTTP requests. This functionality has
879
879
  now been moved into the :py:class:`HttpLocust <locust.core.HttpLocust>` class, in an
880
880
  effort to make it more obvious how one can use Locust to
881
881
  :doc:`load test non-HTTP systems <testing-other-systems>`.
@@ -1007,7 +1007,7 @@ Other changes
1007
1007
  Anyone who is currently using existing locust scripts and want to upgrade to 0.6
1008
1008
  should read through these changes.
1009
1009
 
1010
- :py:class:`SubLocust <locust.core.SubLocust>` replaced by :py:class:`TaskSet <locust.core.TaskSet>` and :py:class:`Locust <locust.core.Locust>` class behaviour changed
1010
+ :py:class:`SubLocust <locust.core.SubLocust>` replaced by :py:class:`TaskSet <locust.core.TaskSet>` and :py:class:`Locust <locust.core.Locust>` class behavior changed
1011
1011
  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
1012
1012
 
1013
1013
  :py:class:`Locust <locust.core.Locust>` classes does no longer control task scheduling and execution.
@@ -1085,7 +1085,7 @@ Locust now uses Requests
1085
1085
  Locust's own HttpBrowser class (which was typically accessed through *self.client* from within a locust class)
1086
1086
  has been replaced by a thin wrapper around the requests library (http://python-requests.org). This comes with
1087
1087
  a number of advantages. Users can now take advantage of a well documented, well written, fully fledged
1088
- library for making HTTP requests. However, it also comes with some small API changes wich will require users
1088
+ library for making HTTP requests. However, it also comes with some small API changes which will require users
1089
1089
  to update their existing load testing scripts.
1090
1090
 
1091
1091
  Gzip encoding turned on by default
@@ -1192,7 +1192,7 @@ Smaller API Changes
1192
1192
  API changes
1193
1193
  -----------
1194
1194
 
1195
- * Web inteface is now turned on by default. The **--web** command line option has been replaced by --no-web.
1195
+ * Web interface is now turned on by default. The **--web** command line option has been replaced by --no-web.
1196
1196
  * :func:`locust.events.request_success` and :func:`locust.events.request_failure` now gets the HTTP method as the first argument.
1197
1197
 
1198
1198
  Improvements and bug fixes
@@ -161,7 +161,7 @@ Running Locust with User class UI picker
161
161
  ========================================
162
162
 
163
163
  You can select which Shape class and which User classes to run in the WebUI when running locust with the ``--class-picker`` flag.
164
- No selection uses all of the available User classes.
164
+ No selection uses all the available User classes.
165
165
 
166
166
  Example:
167
167
 
@@ -193,10 +193,9 @@ The Web UI will display:
193
193
 
194
194
  |
195
195
 
196
- With the new ``--modern-ui``, the class picker will addtionally allow for configuring any settings for each selected user.
197
- This includes selecting tasks, configuring the weight or fixed count, and configuring the host.
196
+ The class picker additionally allows for disabling individual User tasks, changing the weight or fixed count, and configuring the host.
198
197
 
199
- It is even possible to add custom arguments that you wish to be configurable for each user. Simply add a ``json`` classethod
198
+ It is even possible to add custom arguments that you wish to be configurable for each user. Simply add a ``json`` classmethod
200
199
  to your user:
201
200
 
202
201
  .. code-block:: python
@@ -216,8 +215,8 @@ to your user:
216
215
  Configuration for the User classes
217
216
  ==================================
218
217
 
219
- You can configure any settings you may wish for each user on the command line, the same as you may in the modern UI.
220
- Using the ``--config-users`` argument, you may pass a JSON string or file with your user configuration. To configure
218
+ You can configure any settings you may wish for each user on the command line, the same as you may in the UI.
219
+ Using the ``--config-users`` argument, you can also pass a JSON string or file with your user configuration. To configure
221
220
  multiple users you pass multiple arguments to ``--config-users`` or use a JSON Array.
222
221
 
223
222
  Each user settings object must contain a key ``user_class_name``. This key corresponds to the class that you wish
@@ -269,10 +268,9 @@ The list of statistics parameters that can be modified is:
269
268
  +-------------------------------------------+--------------------------------------------------------------------------------------+
270
269
  | PERCENTILES_TO_REPORT | List of response time percentiles to be calculated & reported |
271
270
  +-------------------------------------------+--------------------------------------------------------------------------------------+
272
- | PERCENTILES_TO_CHART | List of response time percentiles in the screen of chart for Web UI |
271
+ | PERCENTILES_TO_CHART | List of response time percentiles in the screen of chart for UI |
273
272
  +-------------------------------------------+--------------------------------------------------------------------------------------+
274
- | MODERN_UI_PERCENTILES_TO_CHART | List of response time percentiles in the screen of chart for the modern Web UI |
273
+ | MODERN_UI_PERCENTILES_TO_CHART | List of response time percentiles in the screen of chart for the UI |
275
274
  +-------------------------------------------+--------------------------------------------------------------------------------------+
276
- | PERCENTILES_TO_STATISTICS | List of response time percentiles in the screen of statistics for Web UI |
277
- | | This parameter supports only modern UI |
275
+ | PERCENTILES_TO_STATISTICS | List of response time percentiles in the screen of statistics for UI |
278
276
  +-------------------------------------------+--------------------------------------------------------------------------------------+
@@ -101,8 +101,8 @@ This shape would create create in the first 10 seconds 10 User of ``UserA``. In
101
101
  Reusing command line parameters in custom shapes
102
102
  ------------------------------------------------
103
103
 
104
- By default, using a custom shape will disable default run parameters (in both the CLI and the Web UI):
105
- - `--run-time` (providing this one with a custom shape will make locust to bail out)
104
+ By default, using a custom shape will disregard default run parameters (in both the CLI and the Web UI):
105
+ - `--run-time`
106
106
  - `--spawn-rate`
107
107
  - `--users`
108
108
 
@@ -109,13 +109,7 @@ to the Flask app instance and use that to set up a new route::
109
109
  def my_added_page():
110
110
  return "Another page"
111
111
 
112
- You should now be able to start locust and browse to http://127.0.0.1:8089/added_page
113
-
114
- .. note::
115
-
116
- Please note that at the moment Locust does not show the extended Web UI under the default root path `"/"`.
117
- To view your extensions, navigate to the newly added web route. In this example, `"/added_page"`.
118
-
112
+ You should now be able to start locust and browse to http://127.0.0.1:8089/added_page. Note that it doesn't get automatically added as a new tab - you'll need to enter the URL directly.
119
113
 
120
114
  Extending Web UI
121
115
  ================
@@ -133,7 +127,7 @@ source code.
133
127
 
134
128
  * ``extend_modern_web_ui.py``: Display a table with content-length for each call.
135
129
 
136
- * ``web_ui_cache_stats.py``: Display Varnish Hit/ Miss stats for each call. Could be easly extended to other CDN or cache proxies and gather other cache statistics such as cache age, control, ...
130
+ * ``web_ui_cache_stats.py``: Display Varnish Hit/Miss stats for each call. This could easily be extended to other CDN or cache proxies and gather other cache statistics such as cache age, control, ...
137
131
 
138
132
  .. image:: images/extend_modern_web_ui_cache_stats.png
139
133
 
@@ -17,7 +17,7 @@ In a *best case* scenario (doing small requests inside a ``while True``-loop) a
17
17
 
18
18
  The relative improvement may be even bigger with bigger request payloads, but it may also be smaller if your test is doing CPU intensive things not related to requests.
19
19
 
20
- Of course, in reality you should run :ref:`one locust process per CPU core <running-distributed>`.
20
+ Of course, in reality, you should run :ref:`one locust process per CPU core <running-distributed>`.
21
21
 
22
22
  .. note::
23
23
 
@@ -83,7 +83,7 @@ FastHttpUser provides a ``rest`` method for testing REST/JSON HTTP interfaces. I
83
83
  elif resp.js["bar"] != 42:
84
84
  resp.failure(f"'bar' had an unexpected value: {resp.js['bar']}")
85
85
 
86
- For a complete example, see `rest.py <https://github.com/locustio/locust/blob/master/examples/rest.py>`_. That also shows how you can use inheritance to provide behaviours specific to your REST API that are common to multiple requests/testplans.
86
+ For a complete example, see `rest.py <https://github.com/locustio/locust/blob/master/examples/rest.py>`_. That also shows how you can use inheritance to provide behaviors specific to your REST API that are common to multiple requests/testplans.
87
87
 
88
88
  .. note::
89
89
 
@@ -93,14 +93,14 @@ For a complete example, see `rest.py <https://github.com/locustio/locust/blob/ma
93
93
  Connection Handling
94
94
  ===================
95
95
 
96
- By default a user will reuse the same TCP/HTTP connection if possible. To more realistically simulate new users connecting to your application this connection can be manually closed.
96
+ By default, a User will reuse the same TCP/HTTP connection (unless it breaks somehow). To more realistically simulate new browsers connecting to your application this connection can be manually closed.
97
97
 
98
98
  .. code-block:: python
99
99
 
100
100
  @task
101
101
  def t(self):
102
- self.client.client.clientpool.close()
103
- self.client.get("/") # Here a new connection will be created
102
+ self.client.client.clientpool.close() # self.client.client is not a typo
103
+ self.client.get("/") # Here a new connection will be created
104
104
 
105
105
 
106
106
  API
@@ -33,7 +33,6 @@ Running your Locust tests
33
33
  running-distributed
34
34
  running-in-debugger
35
35
  running-in-docker
36
- running-cloud-integration
37
36
  running-without-web-ui
38
37
 
39
38
 
@@ -16,9 +16,9 @@ A Locust test is essentially just a Python program making requests to the system
16
16
  self.client.get("/hello")
17
17
  self.client.get("/world")
18
18
 
19
- This user will make an HTTP request to ``/hello``, and after that to ``/world``, and then repeat. For a full explanation and a more realistic example see :ref:`writing-a-locustfile`.
19
+ This user will make an HTTP request to ``/hello``, then to ``/world``, and then repeat. For a full explanation and a more realistic example see :ref:`writing-a-locustfile`.
20
20
 
21
- Change ``/hello`` and ``/world`` to some actual paths on the web site/service you want to test, put the code in a file named ``locustfile.py`` in your current directory and then run ``locust``:
21
+ Change ``/hello`` and ``/world`` to some actual paths on the website/service you want to test, put the code in a file named ``locustfile.py`` in your current directory and then run ``locust``:
22
22
 
23
23
  .. code-block:: console
24
24
  :substitutions:
@@ -36,7 +36,7 @@ Open http://localhost:8089
36
36
 
37
37
  | Provide the host name of your server and try it out!
38
38
 
39
- The following screenshots show what it might look like when running this test using 50 concurrent users, with a ramp up rate of 1 users/s
39
+ The following screenshots show what it might look like when running this test using 50 concurrent users, with a ramp up rate of 1 user/s
40
40
 
41
41
  .. image:: images/webui-running-statistics.png
42
42
 
@@ -56,11 +56,7 @@ The following screenshots show what it might look like when running this test us
56
56
 
57
57
  If your response times are *not* increasing then add even more users until you find the service's breaking point, or celebrate that your service is already performant enough for your expected load.
58
58
 
59
- If you need some help digging into server side problems, or you're having trouble generating enough load to saturate your system, have a look at the `Locust FAQ <https://github.com/locustio/locust/wiki/FAQ#increase-my-request-raterps>`_.
60
-
61
- .. note::
62
-
63
- Things looking a little different? We've updated the UI! If for whatever reason you need to use the old version, you can always revert back to it using the ``--legacy-ui`` flag.
59
+ If you need some help digging into server side problems, or you're having trouble generating enough load to saturate your system, take a look at the `Locust FAQ <https://github.com/locustio/locust/wiki/FAQ#increase-my-request-raterps>`_.
64
60
 
65
61
  Direct command line usage / headless
66
62
  ====================================
@@ -35,22 +35,7 @@ official Locust docker image as a base image::
35
35
  FROM locustio/locust
36
36
  RUN pip3 install some-python-package
37
37
 
38
- Running a distributed load test on Kubernetes
39
- ==============================================
38
+ Running Locust using Kubernetes
39
+ ===============================
40
40
 
41
- HELM
42
- *****
43
-
44
- One of the ways to run Locust on Kubernetes is to use a `Helm chart <https://helm.sh/>`_.
45
-
46
- There is a good helm chart here: `github.com/deliveryhero/helm-charts <https://github.com/deliveryhero/helm-charts/tree/master/stable/locust>`_.
47
-
48
- Note: this Helm chart is a separate project, and not supported by Locust maintainers.
49
-
50
- Kubernetes Operator
51
- *******************
52
- Another way to run Locust on Kubernetes is to use the `Locust Kubernetes Operator <https://abdelrhmanhamouda.github.io/locust-k8s-operator/>`_.
53
-
54
- The Locust Operator is designed to unlock easy, seamless & effortless distributed performance testing in the cloud.
55
-
56
- Note: the Locust Kubernetes Operator is a separate project and is not supported by Locust maintainers.
41
+ See [Extensions](https://github.com/locustio/locust/wiki/Extensions#helm) in the wiki.
@@ -10,9 +10,9 @@ Locust only comes with built-in support for HTTP/HTTPS but it can be extended to
10
10
 
11
11
  It is important that the protocol libraries you use can be `monkey-patched <https://www.gevent.org/intro.html#monkey-patching>`_ by gevent.
12
12
 
13
- Almost any libraries that are pure Python (using the Python ``socket`` module or some other standard library function like ``subprocess``) should work fine out of the box - but if they do their I/O calls in C, gevent will be unable to patch it. This will block the whole Locust/Python process (in practice limiting you to running a single User per worker process).
13
+ Almost any libraries that are pure Python (using the Python ``socket`` module or some other standard library function like ``subprocess``) should work fine out of the box - but if they do their I/O calls from compiled code C, gevent will be unable to patch it. This will block the whole Locust/Python process (in practice limiting you to running a single User per worker process).
14
14
 
15
- Some C libraries allow for other workarounds. For example, if you want to use psycopg2 to performance test PostgreSQL, you can use `psycogreen <https://github.com/psycopg/psycogreen/>`_. If you are willing to get your hands dirty, you may also be able to patch a library yourself, but that is beyond the scope of this documentation.
15
+ Some C libraries allow for other workarounds. For example, if you want to use psycopg2 to performance test PostgreSQL, you can use `psycogreen <https://github.com/psycopg/psycogreen/>`_. If you are willing to get your hands dirty, you may be able to patch a library yourself, but that is beyond the scope of this documentation.
16
16
 
17
17
  XML-RPC
18
18
  =======
@@ -2,7 +2,7 @@
2
2
  What is Locust?
3
3
  ===============================
4
4
 
5
- Locust is an open source performance/load testing tool for HTTP and other protocols. Its developer friendly approach lets you to define your tests in regular Python code.
5
+ Locust is an open source performance/load testing tool for HTTP and other protocols. Its developer friendly approach lets you define your tests in regular Python code.
6
6
 
7
7
  Locust tests can be run from command line or using its web-based UI. Throughput, response times and errors can be viewed in real time and/or exported for later analysis.
8
8
 
@@ -21,7 +21,7 @@ Features
21
21
 
22
22
  * **Write test scenarios in plain old Python**
23
23
 
24
- If you want your users to loop, perform some conditional behaviour or do some calculations, you just use the regular programming constructs provided by Python.
24
+ If you want your users to loop, perform some conditional behavior or do some calculations, you just use the regular programming constructs provided by Python.
25
25
  Locust runs every user inside its own greenlet (a lightweight process/coroutine). This enables you to write your tests like normal (blocking) Python code instead of having to use callbacks or some other mechanism.
26
26
  Because your scenarios are "just python" you can use your regular IDE, and version control your tests as regular code (as opposed to some other tools that use XML or binary formats)
27
27
 
@@ -37,7 +37,7 @@ Features
37
37
 
38
38
  * **Can test any system**
39
39
 
40
- Even though Locust primarily works with web sites/services, it can be used to test almost any system or protocol. Just :ref:`write a client <testing-other-systems>`
40
+ Even though Locust primarily works with websites/services, it can be used to test almost any system or protocol. Just :ref:`write a client <testing-other-systems>`
41
41
  for what you want to test, or `explore some created by the community <https://github.com/SvenskaSpel/locust-plugins#users>`_.
42
42
 
43
43
  * **Hackable**
@@ -47,12 +47,12 @@ Features
47
47
  Name & background
48
48
  =================
49
49
 
50
- Locust was born out of a frustration with existing solutions. No existing load testing tool was well equipped to generate realistic
50
+ Locust was born out of a frustration with existing solutions. No existing load testing tool was well-equipped to generate realistic
51
51
  load against a dynamic website where most pages had different content for different users. Existing tools used clunky interfaces or
52
52
  verbose configuration files to declare the tests. In Locust we took a different approach. Instead of configuration formats or UIs
53
- you'd get a python framework that would let you define the behaviour of your users using Python code.
53
+ you'd get a python framework that would let you define the behavior of your users using Python code.
54
54
 
55
- Locust takes its name from the `grasshopper species <https://en.wikipedia.org/wiki/Locust>`_, known for their swarming behaviour.
55
+ Locust takes its name from the `grasshopper species <https://en.wikipedia.org/wiki/Locust>`_, known for their swarming behavior.
56
56
 
57
57
  :ref:`history`
58
58
 
@@ -62,7 +62,6 @@ Authors
62
62
  - Jonatan Heyman (`@heyman <https://github.com/heyman>`_)
63
63
  - Lars Holmberg (`@cyberw <https://github.com/cyberw>`_)
64
64
  - Andrew Baldwin (`@andrewbaldwin44 <https://github.com/andrewbaldwin44>`_)
65
- - Carl Byström, Joakim Hamrén & Hugo Heyman
66
65
 
67
66
  Many thanks to our other great `contributors <https://github.com/locustio/locust/graphs/contributors>`_!
68
67
 
@@ -68,7 +68,7 @@ is executed. For more info see :ref:`wait-time`.
68
68
  Methods decorated with ``@task`` are the core of your locust file. For every running User,
69
69
  Locust creates a `greenlet <https://greenlet.readthedocs.io/en/stable/greenlet.html>`_ (a coroutine or "micro-thread"), that will call those methods.
70
70
  Code within a task is executed sequentially (it is just regular Python code),
71
- so ``/world`` wont be called until the response from ``/hello`` has been received.
71
+ so ``/world`` won't be called until the response from ``/hello`` has been received.
72
72
 
73
73
  .. code-block:: python
74
74
 
@@ -204,8 +204,8 @@ user classes to use from the same locustfile by passing them as command line arg
204
204
 
205
205
  $ locust -f locust_file.py WebUser MobileUser
206
206
 
207
- If you wish to simulate more users of a certain type you can set a weight attribute on those
208
- classes. Say for example, web users are three times more likely than mobile users:
207
+ If you wish to simulate more users of a certain type than another you can set a weight attribute on those
208
+ classes. The code below will make Locust spawn 3 times as many WebUsers as MobileUsers:
209
209
 
210
210
  .. code-block:: python
211
211
 
@@ -217,9 +217,9 @@ classes. Say for example, web users are three times more likely than mobile user
217
217
  weight = 1
218
218
  ...
219
219
 
220
- Also you can set the :py:attr:`fixed_count <locust.User.fixed_count>` attribute.
221
- In this case the weight attribute will be ignored and the exact count users will be spawned.
222
- These users are spawned first. In the example below, only one instance of AdminUser
220
+ Also, you can set the :py:attr:`fixed_count <locust.User.fixed_count>` attribute.
221
+ In this case, the weight attribute will be ignored and only that exact number users will be spawned.
222
+ These users are spawned before any regular, weighted ones. In the example below, only one instance of AdminUser
223
223
  will be spawned, to make some specific work with more accurate control
224
224
  of request count independently of total user count.
225
225
 
@@ -249,7 +249,7 @@ tasks attribute
249
249
  ---------------
250
250
 
251
251
  A User class can have tasks declared as methods under it using the :py:func:`@task <locust.task>` decorator, but one can also
252
- specify tasks using the *tasks* attribute which is described in more details :ref:`below <tasks-attribute>`.
252
+ specify tasks using the *tasks* attribute, which is described in more details :ref:`below <tasks-attribute>`.
253
253
 
254
254
  environment attribute
255
255
  ---------------------
@@ -281,12 +281,9 @@ Tasks
281
281
  =====
282
282
 
283
283
  When a load test is started, an instance of a User class will be created for each simulated user
284
- and they will start running within their own green thread. When these users run they pick tasks that
284
+ and they will start running within their own greenlet. When these users run they pick tasks that
285
285
  they execute, sleep for awhile, and then pick a new task and so on.
286
286
 
287
- The tasks are normal python callables and - if we were load-testing an auction website - they could do
288
- stuff like "loading the start page", "searching for some product", "making a bid", etc.
289
-
290
287
  @task decorator
291
288
  ---------------
292
289
 
@@ -617,7 +614,7 @@ Using :ref:`catch_response <catch-response>` and accessing `request_meta <https:
617
614
  HTTP Proxy settings
618
615
  -------------------
619
616
  To improve performance, we configure requests to not look for HTTP proxy settings in the environment by setting
620
- requests.Session's trust_env attribute to ``False``. If you don't want this you can manually set
617
+ requests.Session's trust_env attribute to ``False``. If you don't want this, you can manually set
621
618
  ``locust_instance.client.trust_env`` to ``True``. For further details, refer to the
622
619
  `documentation of requests <https://requests.readthedocs.io/en/master/api/#requests.Session.trust_env>`_.
623
620
 
@@ -644,7 +641,7 @@ For more configuration options, refer to the
644
641
 
645
642
  TaskSets
646
643
  ================================
647
- TaskSets is a way to structure tests of hierarchical web sites/systems. You can :ref:`read more about it here <tasksets>`.
644
+ TaskSets is a way to structure tests of hierarchical websites/systems. You can :ref:`read more about it here <tasksets>`.
648
645
 
649
646
  Examples
650
647
  ========
@@ -660,7 +657,7 @@ in any Python program. The current working directory is automatically added to p
660
657
  so any python file/module/packages that resides in the working directory can be imported using the
661
658
  python ``import`` statement.
662
659
 
663
- For small tests, keeping all of the test code in a single ``locustfile.py`` should work fine, but for
660
+ For small tests, keeping all the test code in a single ``locustfile.py`` should work fine, but for
664
661
  larger test suites, you'll probably want to split the code into multiple files and directories.
665
662
 
666
663
  How you structure the test source code is of course entirely up to you, but we recommend that you
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '2.26.1.dev12'
16
- __version_tuple__ = version_tuple = (2, 26, 1, 'dev12')
15
+ __version__ = version = '2.26.1.dev26'
16
+ __version_tuple__ = version_tuple = (2, 26, 1, 'dev26')
@@ -113,8 +113,7 @@ class HttpSession(requests.Session):
113
113
  :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
114
114
  :param files: (optional) Dictionary of ``'filename': file-like-objects`` for multipart encoding upload.
115
115
  :param auth: (optional) Auth tuple or callable to enable Basic/Digest/Custom HTTP Auth.
116
- :param timeout: (optional) How long in seconds to wait for the server to send data before giving up, as a float,
117
- or a (`connect timeout, read timeout <user/advanced.html#timeouts>`_) tuple.
116
+ :param timeout: (optional) How long to wait for the server to send data before giving up, as a float, or a :ref:`(connect timeout, read timeout) <timeouts>` tuple.
118
117
  :type timeout: float or tuple
119
118
  :param allow_redirects: (optional) Set to True by default.
120
119
  :type allow_redirects: bool
@@ -126,7 +126,7 @@ def main():
126
126
 
127
127
  user_classes[key] = value
128
128
  available_user_classes[key] = value
129
- available_user_tasks[key] = value.tasks or None
129
+ available_user_tasks[key] = value.tasks or {}
130
130
 
131
131
  if len(stats.PERCENTILES_TO_CHART) != 2:
132
132
  logging.error("stats.PERCENTILES_TO_CHART parameter should be 2 parameters \n")
@@ -286,7 +286,7 @@ def main():
286
286
  exit_code = max(exit_code, child_exit_code)
287
287
  if exit_code > 1:
288
288
  logging.error(f"Bad response code from worker children: {exit_code}")
289
- # ensure master doesnt finish until output from workers has arrived
289
+ # ensure master doesn't finish until output from workers has arrived
290
290
  # otherwise the terminal might look weird.
291
291
  time.sleep(0.1)
292
292
 
@@ -433,8 +433,7 @@ See https://github.com/locustio/locust/wiki/Installation#increasing-maximum-numb
433
433
 
434
434
  if options.run_time:
435
435
  if options.worker:
436
- logger.error("--run-time should be specified on the master node, and not on worker nodes")
437
- sys.exit(1)
436
+ logger.info("--run-time specified for a worker node will be ignored.")
438
437
  try:
439
438
  options.run_time = parse_timespan(options.run_time)
440
439
  except ValueError:
@@ -2,7 +2,7 @@ import re
2
2
  from datetime import timedelta
3
3
 
4
4
 
5
- def parse_timespan(time_str):
5
+ def parse_timespan(time_str) -> int:
6
6
  """
7
7
  Parse a string representing a time span and return the number of seconds.
8
8
  Valid formats are: 20, 20s, 3m, 2h, 1h20m, 3h30m10s, etc.
@@ -18,8 +18,7 @@ def parse_timespan(time_str):
18
18
  parts = timespan_regex.match(time_str)
19
19
  if not parts:
20
20
  raise ValueError("Invalid time span format. Valid formats: 20, 20s, 3m, 2h, 1h20m, 3h30m10s, etc.")
21
- parts = parts.groupdict()
22
- time_params = {name: int(value) for name, value in parts.items() if value}
21
+ time_params = {name: int(value) for name, value in parts.groupdict().items() if value}
23
22
  if not time_params:
24
23
  raise ValueError("Invalid time span format. Valid formats: 20, 20s, 3m, 2h, 1h20m, 3h30m10s, etc.")
25
24
  return int(timedelta(**time_params).total_seconds())
@@ -104,7 +104,7 @@ class WebUI:
104
104
  environment: Reference to the current Locust Environment
105
105
  host: Host/interface that the web server should accept connections to
106
106
  port: Port that the web server should listen to
107
- web_login: Enables a login page for the modern UI
107
+ web_login: Enables a login page
108
108
  tls_cert: A path to a TLS certificate
109
109
  tls_key: A path to a TLS private key
110
110
  delayed_start: Whether or not to delay starting web UI until `start()` is called. Delaying web UI start
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: locust
3
- Version: 2.26.1.dev12
3
+ Version: 2.26.1.dev26
4
4
  Summary: Developer friendly load testing framework
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://github.com/locustio/locust
@@ -105,7 +105,7 @@ Locust's code base is intentionally kept small and doesn't solve everything out
105
105
  * [Send real time reporting data to TimescaleDB and visualize it in Grafana](https://github.com/SvenskaSpel/locust-plugins/blob/master/locust_plugins/dashboards/README.md)
106
106
  * [Wrap calls to handle the peculiarities of your REST API](https://github.com/SvenskaSpel/locust-plugins/blob/8af21862d8129a5c3b17559677fe92192e312d8f/examples/rest_ex.py#L87)
107
107
  * [Use a totally custom load shape/profile](https://docs.locust.io/en/latest/custom-load-shape.html#custom-load-shape)
108
- * ...
108
+ * [...](https://github.com/locustio/locust/wiki/Extensions)
109
109
 
110
110
  ## Links
111
111
 
@@ -116,7 +116,7 @@ Locust's code base is intentionally kept small and doesn't solve everything out
116
116
  ## Authors
117
117
 
118
118
  * Maintainer: [Lars Holmberg](https://github.com/cyberw)
119
- * Modern UI: [Andrew Baldwin](https://github.com/andrewbaldwin44)
119
+ * UI: [Andrew Baldwin](https://github.com/andrewbaldwin44)
120
120
  * Original creator: [Jonatan Heyman](https://github.com/heyman)
121
121
  * Massive thanks to [all of our contributors](https://github.com/locustio/locust/graphs/contributors)
122
122
 
@@ -45,7 +45,6 @@ docs/logging.rst
45
45
  docs/quickstart.rst
46
46
  docs/requirements.txt
47
47
  docs/retrieving-stats.rst
48
- docs/running-cloud-integration.rst
49
48
  docs/running-distributed.rst
50
49
  docs/running-in-debugger.rst
51
50
  docs/running-in-docker.rst
@@ -1,17 +0,0 @@
1
- .. _running-cloud-integration:
2
-
3
- =============================================
4
- Running Locust distributed with Terraform/AWS
5
- =============================================
6
-
7
- .. note::
8
-
9
- This is broken at the moment. See https://github.com/locustio/locust/issues/2357 for a possible workaround.
10
-
11
- Here's one way to provision Locust using Infrastructure as Code/IaC.
12
-
13
- For this we use a `Terraform <https://www.terraform.io/>`_ module that provisions 1 leader and "n" worker nodes. This implementation uses AWS and EC2, but you may be able to modify it for other cloud providers.
14
-
15
- 1. `Install terraform <https://learn.hashicorp.com/tutorials/terraform/install-cli?in=terraform/aws-get-started#install-terraform-on-linux>`_
16
- 2. `Follow the README <https://github.com/locustio/locust/blob/master/examples/terraform/aws/README.md>`_
17
- 3. Further reading: `Underlying Terraform module <https://registry.terraform.io/modules/marcosborges/loadtest-distribuited/aws/latest>`_