locust 2.18.2.dev7__tar.gz → 2.18.3__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 (293) hide show
  1. {locust-2.18.2.dev7 → locust-2.18.3}/CHANGELOG.md +15 -0
  2. {locust-2.18.2.dev7/locust.egg-info → locust-2.18.3}/PKG-INFO +6 -9
  3. {locust-2.18.2.dev7 → locust-2.18.3}/README.md +5 -8
  4. {locust-2.18.2.dev7 → locust-2.18.3}/docs/changelog.rst +8 -0
  5. {locust-2.18.2.dev7 → locust-2.18.3}/docs/what-is-locust.rst +4 -5
  6. {locust-2.18.2.dev7 → locust-2.18.3}/locust/_version.py +2 -2
  7. {locust-2.18.2.dev7 → locust-2.18.3}/locust/html.py +13 -6
  8. {locust-2.18.2.dev7 → locust-2.18.3}/locust/main.py +4 -4
  9. {locust-2.18.2.dev7 → locust-2.18.3}/locust/web.py +5 -14
  10. locust-2.18.2.dev7/locust/webui/dist/assets/index-b46361c2.js → locust-2.18.3/locust/webui/dist/assets/index-15a4a1a0.js +52 -52
  11. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/dist/index.html +1 -1
  12. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/App.tsx +2 -1
  13. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/Report.tsx +3 -2
  14. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/FailuresTable/FailuresTable.tsx +15 -1
  15. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Layout/Navbar/DarkLightToggle.tsx +2 -5
  16. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Reports/Reports.tsx +1 -1
  17. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/StatsTable/StatsTable.tsx +13 -1
  18. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Table/Table.tsx +15 -1
  19. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/WorkersTable/WorkersTable.tsx +15 -1
  20. locust-2.18.3/locust/webui/src/constants/theme.ts +12 -0
  21. locust-2.18.3/locust/webui/src/hooks/useSortByField.ts +86 -0
  22. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/styles/theme.ts +0 -5
  23. {locust-2.18.2.dev7 → locust-2.18.3/locust.egg-info}/PKG-INFO +6 -9
  24. {locust-2.18.2.dev7 → locust-2.18.3}/locust.egg-info/SOURCES.txt +3 -1
  25. {locust-2.18.2.dev7 → locust-2.18.3}/.coveragerc +0 -0
  26. {locust-2.18.2.dev7 → locust-2.18.3}/.dockerignore +0 -0
  27. {locust-2.18.2.dev7 → locust-2.18.3}/.git-blame-ignore-revs +0 -0
  28. {locust-2.18.2.dev7 → locust-2.18.3}/.gitattributes +0 -0
  29. {locust-2.18.2.dev7 → locust-2.18.3}/.github/CONTRIBUTING.md +0 -0
  30. {locust-2.18.2.dev7 → locust-2.18.3}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  31. {locust-2.18.2.dev7 → locust-2.18.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  32. {locust-2.18.2.dev7 → locust-2.18.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  33. {locust-2.18.2.dev7 → locust-2.18.3}/.github/workflows/stale.yml +0 -0
  34. {locust-2.18.2.dev7 → locust-2.18.3}/.github/workflows/tests.yml +0 -0
  35. {locust-2.18.2.dev7 → locust-2.18.3}/.gitignore +0 -0
  36. {locust-2.18.2.dev7 → locust-2.18.3}/.readthedocs.yaml +0 -0
  37. {locust-2.18.2.dev7 → locust-2.18.3}/.vscode/launch.json +0 -0
  38. {locust-2.18.2.dev7 → locust-2.18.3}/.vscode/launch_locust.json +0 -0
  39. {locust-2.18.2.dev7 → locust-2.18.3}/.vscode/settings.json +0 -0
  40. {locust-2.18.2.dev7 → locust-2.18.3}/Dockerfile +0 -0
  41. {locust-2.18.2.dev7 → locust-2.18.3}/LICENSE +0 -0
  42. {locust-2.18.2.dev7 → locust-2.18.3}/MANIFEST.in +0 -0
  43. {locust-2.18.2.dev7 → locust-2.18.3}/Makefile +0 -0
  44. {locust-2.18.2.dev7 → locust-2.18.3}/README +0 -0
  45. {locust-2.18.2.dev7 → locust-2.18.3}/SECURITY.md +0 -0
  46. {locust-2.18.2.dev7 → locust-2.18.3}/Vagrantfile +0 -0
  47. {locust-2.18.2.dev7 → locust-2.18.3}/benchmarks/dispatch.py +0 -0
  48. {locust-2.18.2.dev7 → locust-2.18.3}/docs/_static/theme-overrides.css +0 -0
  49. {locust-2.18.2.dev7 → locust-2.18.3}/docs/api.rst +0 -0
  50. {locust-2.18.2.dev7 → locust-2.18.3}/docs/conf.py +0 -0
  51. {locust-2.18.2.dev7 → locust-2.18.3}/docs/configuration.rst +0 -0
  52. {locust-2.18.2.dev7 → locust-2.18.3}/docs/custom-load-shape.rst +0 -0
  53. {locust-2.18.2.dev7 → locust-2.18.3}/docs/developing-locust.rst +0 -0
  54. {locust-2.18.2.dev7 → locust-2.18.3}/docs/extending-locust.rst +0 -0
  55. {locust-2.18.2.dev7 → locust-2.18.3}/docs/further-reading.rst +0 -0
  56. {locust-2.18.2.dev7 → locust-2.18.3}/docs/history.rst +0 -0
  57. {locust-2.18.2.dev7 → locust-2.18.3}/docs/images/modern-webui-splash-screenshot.png +0 -0
  58. {locust-2.18.2.dev7 → locust-2.18.3}/docs/images/number_of_users.png +0 -0
  59. {locust-2.18.2.dev7 → locust-2.18.3}/docs/images/response_times.png +0 -0
  60. {locust-2.18.2.dev7 → locust-2.18.3}/docs/images/total_requests_per_second.png +0 -0
  61. {locust-2.18.2.dev7 → locust-2.18.3}/docs/images/userclass_picker_example.png +0 -0
  62. {locust-2.18.2.dev7 → locust-2.18.3}/docs/images/webui-running-statistics.png +0 -0
  63. {locust-2.18.2.dev7 → locust-2.18.3}/docs/images/webui-splash-screenshot.png +0 -0
  64. {locust-2.18.2.dev7 → locust-2.18.3}/docs/increase-performance.rst +0 -0
  65. {locust-2.18.2.dev7 → locust-2.18.3}/docs/index.rst +0 -0
  66. {locust-2.18.2.dev7 → locust-2.18.3}/docs/installation.rst +0 -0
  67. {locust-2.18.2.dev7 → locust-2.18.3}/docs/logging.rst +0 -0
  68. {locust-2.18.2.dev7 → locust-2.18.3}/docs/quickstart.rst +0 -0
  69. {locust-2.18.2.dev7 → locust-2.18.3}/docs/requirements.txt +0 -0
  70. {locust-2.18.2.dev7 → locust-2.18.3}/docs/retrieving-stats.rst +0 -0
  71. {locust-2.18.2.dev7 → locust-2.18.3}/docs/running-cloud-integration.rst +0 -0
  72. {locust-2.18.2.dev7 → locust-2.18.3}/docs/running-distributed.rst +0 -0
  73. {locust-2.18.2.dev7 → locust-2.18.3}/docs/running-in-debugger.rst +0 -0
  74. {locust-2.18.2.dev7 → locust-2.18.3}/docs/running-in-docker.rst +0 -0
  75. {locust-2.18.2.dev7 → locust-2.18.3}/docs/running-without-web-ui.rst +0 -0
  76. {locust-2.18.2.dev7 → locust-2.18.3}/docs/tasksets.rst +0 -0
  77. {locust-2.18.2.dev7 → locust-2.18.3}/docs/testing-other-systems.rst +0 -0
  78. {locust-2.18.2.dev7 → locust-2.18.3}/docs/use-as-lib.rst +0 -0
  79. {locust-2.18.2.dev7 → locust-2.18.3}/docs/writing-a-locustfile.rst +0 -0
  80. {locust-2.18.2.dev7 → locust-2.18.3}/examples/add_command_line_argument.py +0 -0
  81. {locust-2.18.2.dev7 → locust-2.18.3}/examples/basic.py +0 -0
  82. {locust-2.18.2.dev7 → locust-2.18.3}/examples/browse_docs_sequence_test.py +0 -0
  83. {locust-2.18.2.dev7 → locust-2.18.3}/examples/browse_docs_test.py +0 -0
  84. {locust-2.18.2.dev7 → locust-2.18.3}/examples/custom_messages.py +0 -0
  85. {locust-2.18.2.dev7 → locust-2.18.3}/examples/custom_shape/double_wave.py +0 -0
  86. {locust-2.18.2.dev7 → locust-2.18.3}/examples/custom_shape/stages.py +0 -0
  87. {locust-2.18.2.dev7 → locust-2.18.3}/examples/custom_shape/staging_user_classes.py +0 -0
  88. {locust-2.18.2.dev7 → locust-2.18.3}/examples/custom_shape/step_load.py +0 -0
  89. {locust-2.18.2.dev7 → locust-2.18.3}/examples/custom_shape/wait_user_count.py +0 -0
  90. {locust-2.18.2.dev7 → locust-2.18.3}/examples/custom_wait_function.py +0 -0
  91. {locust-2.18.2.dev7 → locust-2.18.3}/examples/custom_xmlrpc_client/server.py +0 -0
  92. {locust-2.18.2.dev7 → locust-2.18.3}/examples/custom_xmlrpc_client/xmlrpc_locustfile.py +0 -0
  93. {locust-2.18.2.dev7 → locust-2.18.3}/examples/debugging.py +0 -0
  94. {locust-2.18.2.dev7 → locust-2.18.3}/examples/debugging_advanced.py +0 -0
  95. {locust-2.18.2.dev7 → locust-2.18.3}/examples/docker-compose/docker-compose.yml +0 -0
  96. {locust-2.18.2.dev7 → locust-2.18.3}/examples/dynamic_user_credentials.py +0 -0
  97. {locust-2.18.2.dev7 → locust-2.18.3}/examples/events.py +0 -0
  98. {locust-2.18.2.dev7 → locust-2.18.3}/examples/extend_modern_web_ui.py +0 -0
  99. {locust-2.18.2.dev7 → locust-2.18.3}/examples/extend_web_ui/extend.py +0 -0
  100. {locust-2.18.2.dev7 → locust-2.18.3}/examples/extend_web_ui/static/custom-stats-table.css +0 -0
  101. {locust-2.18.2.dev7 → locust-2.18.3}/examples/extend_web_ui/static/extend.js +0 -0
  102. {locust-2.18.2.dev7 → locust-2.18.3}/examples/extend_web_ui/templates/extend.html +0 -0
  103. {locust-2.18.2.dev7 → locust-2.18.3}/examples/fast_http_locust.py +0 -0
  104. {locust-2.18.2.dev7 → locust-2.18.3}/examples/grpc/grpc_user.py +0 -0
  105. {locust-2.18.2.dev7 → locust-2.18.3}/examples/grpc/hello.proto +0 -0
  106. {locust-2.18.2.dev7 → locust-2.18.3}/examples/grpc/hello_pb2.py +0 -0
  107. {locust-2.18.2.dev7 → locust-2.18.3}/examples/grpc/hello_pb2_grpc.py +0 -0
  108. {locust-2.18.2.dev7 → locust-2.18.3}/examples/grpc/hello_server.py +0 -0
  109. {locust-2.18.2.dev7 → locust-2.18.3}/examples/grpc/locustfile.py +0 -0
  110. {locust-2.18.2.dev7 → locust-2.18.3}/examples/locustfile.py +0 -0
  111. {locust-2.18.2.dev7 → locust-2.18.3}/examples/manual_stats_reporting.py +0 -0
  112. {locust-2.18.2.dev7 → locust-2.18.3}/examples/multiple_hosts.py +0 -0
  113. {locust-2.18.2.dev7 → locust-2.18.3}/examples/nested_inline_tasksets.py +0 -0
  114. {locust-2.18.2.dev7 → locust-2.18.3}/examples/rest.py +0 -0
  115. {locust-2.18.2.dev7 → locust-2.18.3}/examples/sdk_session_patching/session_patch_locustfile.py +0 -0
  116. {locust-2.18.2.dev7 → locust-2.18.3}/examples/semaphore_wait.py +0 -0
  117. {locust-2.18.2.dev7 → locust-2.18.3}/examples/stop_on_threshold.py +0 -0
  118. {locust-2.18.2.dev7 → locust-2.18.3}/examples/terraform/aws/README.md +0 -0
  119. {locust-2.18.2.dev7 → locust-2.18.3}/examples/terraform/aws/data_subnet.tf +0 -0
  120. {locust-2.18.2.dev7 → locust-2.18.3}/examples/terraform/aws/main.tf +0 -0
  121. {locust-2.18.2.dev7 → locust-2.18.3}/examples/terraform/aws/output.tf +0 -0
  122. {locust-2.18.2.dev7 → locust-2.18.3}/examples/terraform/aws/plan/basic.py +0 -0
  123. {locust-2.18.2.dev7 → locust-2.18.3}/examples/terraform/aws/provisioner.tf +0 -0
  124. {locust-2.18.2.dev7 → locust-2.18.3}/examples/terraform/aws/variables.tf +0 -0
  125. {locust-2.18.2.dev7 → locust-2.18.3}/examples/test_data_management.py +0 -0
  126. {locust-2.18.2.dev7 → locust-2.18.3}/examples/use_as_lib.py +0 -0
  127. {locust-2.18.2.dev7 → locust-2.18.3}/examples/vagrant/README.md +0 -0
  128. {locust-2.18.2.dev7 → locust-2.18.3}/examples/vagrant/supervisord.conf +0 -0
  129. {locust-2.18.2.dev7 → locust-2.18.3}/examples/worker_index.py +0 -0
  130. {locust-2.18.2.dev7 → locust-2.18.3}/generate_changelog.py +0 -0
  131. {locust-2.18.2.dev7 → locust-2.18.3}/locust/__init__.py +0 -0
  132. {locust-2.18.2.dev7 → locust-2.18.3}/locust/__main__.py +0 -0
  133. {locust-2.18.2.dev7 → locust-2.18.3}/locust/argument_parser.py +0 -0
  134. {locust-2.18.2.dev7 → locust-2.18.3}/locust/clients.py +0 -0
  135. {locust-2.18.2.dev7 → locust-2.18.3}/locust/contrib/__init__.py +0 -0
  136. {locust-2.18.2.dev7 → locust-2.18.3}/locust/contrib/fasthttp.py +0 -0
  137. {locust-2.18.2.dev7 → locust-2.18.3}/locust/debug.py +0 -0
  138. {locust-2.18.2.dev7 → locust-2.18.3}/locust/dispatch.py +0 -0
  139. {locust-2.18.2.dev7 → locust-2.18.3}/locust/env.py +0 -0
  140. {locust-2.18.2.dev7 → locust-2.18.3}/locust/event.py +0 -0
  141. {locust-2.18.2.dev7 → locust-2.18.3}/locust/exception.py +0 -0
  142. {locust-2.18.2.dev7 → locust-2.18.3}/locust/input_events.py +0 -0
  143. {locust-2.18.2.dev7 → locust-2.18.3}/locust/log.py +0 -0
  144. {locust-2.18.2.dev7 → locust-2.18.3}/locust/py.typed +0 -0
  145. {locust-2.18.2.dev7 → locust-2.18.3}/locust/rpc/__init__.py +0 -0
  146. {locust-2.18.2.dev7 → locust-2.18.3}/locust/rpc/protocol.py +0 -0
  147. {locust-2.18.2.dev7 → locust-2.18.3}/locust/rpc/zmqrpc.py +0 -0
  148. {locust-2.18.2.dev7 → locust-2.18.3}/locust/runners.py +0 -0
  149. {locust-2.18.2.dev7 → locust-2.18.3}/locust/shape.py +0 -0
  150. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/chart.js +0 -0
  151. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/css/application.css +0 -0
  152. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/css/application.css.map +0 -0
  153. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/css/tables.css +0 -0
  154. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/css/tables.css.map +0 -0
  155. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/echarts.common.min.js +0 -0
  156. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/img/favicon.ico +0 -0
  157. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/img/logo.png +0 -0
  158. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/img/ui-screenshot-charts.png +0 -0
  159. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/img/ui-screenshot-start-test.png +0 -0
  160. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/img/ui-screenshot-stats.png +0 -0
  161. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/img/ui-screenshot-workers.png +0 -0
  162. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/jquery-1.11.3.min.js +0 -0
  163. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/jquery.jqote2.min.js +0 -0
  164. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/jquery.tools.min.js +0 -0
  165. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/locust.js +0 -0
  166. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/sass/_base.sass +0 -0
  167. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/sass/_mixins.sass +0 -0
  168. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/sass/application.sass +0 -0
  169. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/sass/tables.sass +0 -0
  170. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/tasks.js +0 -0
  171. {locust-2.18.2.dev7 → locust-2.18.3}/locust/static/vintage.js +0 -0
  172. {locust-2.18.2.dev7 → locust-2.18.3}/locust/stats.py +0 -0
  173. {locust-2.18.2.dev7 → locust-2.18.3}/locust/templates/index.html +0 -0
  174. {locust-2.18.2.dev7 → locust-2.18.3}/locust/templates/report.html +0 -0
  175. {locust-2.18.2.dev7 → locust-2.18.3}/locust/templates/stats_data.html +0 -0
  176. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/__init__.py +0 -0
  177. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/fake_module1_for_env_test.py +0 -0
  178. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/fake_module2_for_env_test.py +0 -0
  179. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/mock_locustfile.py +0 -0
  180. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/mock_logging.py +0 -0
  181. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_debugging.py +0 -0
  182. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_dispatch.py +0 -0
  183. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_env.py +0 -0
  184. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_fasthttp.py +0 -0
  185. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_http.py +0 -0
  186. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_load_locustfile.py +0 -0
  187. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_locust_class.py +0 -0
  188. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_log.py +0 -0
  189. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_main.py +0 -0
  190. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_old_wait_api.py +0 -0
  191. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_parser.py +0 -0
  192. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_runners.py +0 -0
  193. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_sequential_taskset.py +0 -0
  194. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_stats.py +0 -0
  195. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_tags.py +0 -0
  196. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_taskratio.py +0 -0
  197. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_users.py +0 -0
  198. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_util.py +0 -0
  199. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_wait_time.py +0 -0
  200. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_web.py +0 -0
  201. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/test_zmqrpc.py +0 -0
  202. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/testcases.py +0 -0
  203. {locust-2.18.2.dev7 → locust-2.18.3}/locust/test/util.py +0 -0
  204. {locust-2.18.2.dev7 → locust-2.18.3}/locust/user/__init__.py +0 -0
  205. {locust-2.18.2.dev7 → locust-2.18.3}/locust/user/inspectuser.py +0 -0
  206. {locust-2.18.2.dev7 → locust-2.18.3}/locust/user/sequential_taskset.py +0 -0
  207. {locust-2.18.2.dev7 → locust-2.18.3}/locust/user/task.py +0 -0
  208. {locust-2.18.2.dev7 → locust-2.18.3}/locust/user/users.py +0 -0
  209. {locust-2.18.2.dev7 → locust-2.18.3}/locust/user/wait_time.py +0 -0
  210. {locust-2.18.2.dev7 → locust-2.18.3}/locust/util/__init__.py +0 -0
  211. {locust-2.18.2.dev7 → locust-2.18.3}/locust/util/cache.py +0 -0
  212. {locust-2.18.2.dev7 → locust-2.18.3}/locust/util/deprecation.py +0 -0
  213. {locust-2.18.2.dev7 → locust-2.18.3}/locust/util/exception_handler.py +0 -0
  214. {locust-2.18.2.dev7 → locust-2.18.3}/locust/util/load_locustfile.py +0 -0
  215. {locust-2.18.2.dev7 → locust-2.18.3}/locust/util/rounding.py +0 -0
  216. {locust-2.18.2.dev7 → locust-2.18.3}/locust/util/timespan.py +0 -0
  217. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/.eslintrc +0 -0
  218. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/.gitignore +0 -0
  219. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/.prettierrc +0 -0
  220. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/dev.html +0 -0
  221. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/dist/assets/favicon.ico +0 -0
  222. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/dist/assets/logo.png +0 -0
  223. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/dist/report.html +0 -0
  224. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/index.html +0 -0
  225. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/package.json +0 -0
  226. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/public/assets/favicon.ico +0 -0
  227. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/public/assets/logo.png +0 -0
  228. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/public/report.html +0 -0
  229. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/DataTable/DataTable.tsx +0 -0
  230. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/ExceptionsTable/ExceptionsTable.tsx +0 -0
  231. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Form/Form.tsx +0 -0
  232. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Form/Select.tsx +0 -0
  233. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Layout/Footer/About.tsx +0 -0
  234. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Layout/Footer/Footer.tsx +0 -0
  235. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Layout/Layout.tsx +0 -0
  236. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Layout/Navbar/Navbar.tsx +0 -0
  237. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Layout/Navbar/SwarmMonitor.tsx +0 -0
  238. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/LineChart/LineChart.tsx +0 -0
  239. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/LogViewer/LogViewer.tsx +0 -0
  240. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Modal/Modal.tsx +0 -0
  241. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/ResponseTimeTable/ResponseTimeTable.tsx +0 -0
  242. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/StateButtons/EditButton.tsx +0 -0
  243. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/StateButtons/NewTestButton.tsx +0 -0
  244. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/StateButtons/ResetButton.tsx +0 -0
  245. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/StateButtons/StateButtons.tsx +0 -0
  246. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/StateButtons/StopButton.tsx +0 -0
  247. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/SwarmCharts/SwarmCharts.tsx +0 -0
  248. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/SwarmForm/SwarmCustomParmeters.tsx +0 -0
  249. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/SwarmForm/SwarmEditForm.tsx +0 -0
  250. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/SwarmForm/SwarmForm.tsx +0 -0
  251. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/SwarnRatios/SwarmRatios.tsx +0 -0
  252. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Tabs/Tabs.constants.tsx +0 -0
  253. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/components/Tabs/Tabs.tsx +0 -0
  254. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/constants/swarm.tsx +0 -0
  255. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/global.d.ts +0 -0
  256. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/hooks/useAsync.ts +0 -0
  257. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/hooks/useInterval.ts +0 -0
  258. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/hooks/useSwarmUi.ts +0 -0
  259. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/index.tsx +0 -0
  260. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/redux/api/swarm.ts +0 -0
  261. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/redux/hooks.ts +0 -0
  262. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/redux/slice/root.slice.ts +0 -0
  263. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/redux/slice/swarm.slice.ts +0 -0
  264. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/redux/slice/theme.slice.ts +0 -0
  265. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/redux/slice/ui.slice.ts +0 -0
  266. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/redux/slice/url.slice.ts +0 -0
  267. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/redux/store.ts +0 -0
  268. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/redux/utils.ts +0 -0
  269. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/types/swarm.types.ts +0 -0
  270. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/types/tab.types.ts +0 -0
  271. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/types/table.types.ts +0 -0
  272. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/types/ui.types.ts +0 -0
  273. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/utils/number.ts +0 -0
  274. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/utils/object.ts +0 -0
  275. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/utils/string.ts +0 -0
  276. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/src/utils/url.ts +0 -0
  277. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/tsconfig.json +0 -0
  278. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/vite.config.ts +0 -0
  279. {locust-2.18.2.dev7 → locust-2.18.3}/locust/webui/yarn.lock +0 -0
  280. {locust-2.18.2.dev7 → locust-2.18.3}/locust.egg-info/dependency_links.txt +0 -0
  281. {locust-2.18.2.dev7 → locust-2.18.3}/locust.egg-info/entry_points.txt +0 -0
  282. {locust-2.18.2.dev7 → locust-2.18.3}/locust.egg-info/not-zip-safe +0 -0
  283. {locust-2.18.2.dev7 → locust-2.18.3}/locust.egg-info/requires.txt +0 -0
  284. {locust-2.18.2.dev7 → locust-2.18.3}/locust.egg-info/top_level.txt +0 -0
  285. {locust-2.18.2.dev7 → locust-2.18.3}/package.json +0 -0
  286. {locust-2.18.2.dev7 → locust-2.18.3}/pyproject.toml +0 -0
  287. {locust-2.18.2.dev7 → locust-2.18.3}/scripts/locustfile.py +0 -0
  288. {locust-2.18.2.dev7 → locust-2.18.3}/scripts/run-disributed-headless.sh +0 -0
  289. {locust-2.18.2.dev7 → locust-2.18.3}/scripts/run-disributed-web.sh +0 -0
  290. {locust-2.18.2.dev7 → locust-2.18.3}/scripts/run-local-headless.sh +0 -0
  291. {locust-2.18.2.dev7 → locust-2.18.3}/scripts/run-local-web.sh +0 -0
  292. {locust-2.18.2.dev7 → locust-2.18.3}/setup.cfg +0 -0
  293. {locust-2.18.2.dev7 → locust-2.18.3}/tox.ini +0 -0
@@ -1,6 +1,21 @@
1
1
  # Detailed changelog
2
2
  The most important changes can also be found in [the documentation](https://docs.locust.io/en/latest/changelog.html).
3
3
 
4
+ ## [2.18.2](https://github.com/locustio/locust/tree/2.18.2) (2023-11-10)
5
+
6
+ [Full Changelog](https://github.com/locustio/locust/compare/2.18.1...2.18.2)
7
+
8
+ **Fixed bugs:**
9
+
10
+ - 2.18 - fasthttp error for no content response [\#2450](https://github.com/locustio/locust/issues/2450)
11
+ - Segmentation fault running the locust command [\#2447](https://github.com/locustio/locust/issues/2447)
12
+
13
+ **Merged pull requests:**
14
+
15
+ - Add terraform variables [\#2455](https://github.com/locustio/locust/pull/2455) ([sdarwin](https://github.com/sdarwin))
16
+ - FastHttpUser: encoding return str when response is empty [\#2451](https://github.com/locustio/locust/pull/2451) ([scottARob](https://github.com/scottARob))
17
+ - Fix docs: modern UI developing guide [\#2446](https://github.com/locustio/locust/pull/2446) ([zifter](https://github.com/zifter))
18
+
4
19
  ## [2.18.1](https://github.com/locustio/locust/tree/2.18.1) (2023-11-01)
5
20
 
6
21
  [Full Changelog](https://github.com/locustio/locust/compare/2.18.0...2.18.1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: locust
3
- Version: 2.18.2.dev7
3
+ Version: 2.18.3
4
4
  Summary: Developer friendly load testing framework
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://locust.io/
@@ -50,7 +50,7 @@ Requires-Dist: pywin32; platform_system == "Windows"
50
50
  [![GitHub contributors](https://img.shields.io/github/contributors/locustio/locust.svg)](https://github.com/locustio/locust/graphs/contributors)
51
51
  [![Support Ukraine Badge](https://bit.ly/support-ukraine-now)](https://github.com/support-ukraine/support-ukraine)
52
52
 
53
- Locust is an easy to use, scriptable and scalable performance testing tool. You define the behaviour of your users in regular Python code, instead of being constrained by a UI or domain specific language that only pretends to be real code. This makes Locust infinitely expandable and very developer friendly.
53
+ Locust is an easy to use, scriptable and scalable performance testing tool. You define your load test in regular Python code, instead of being constrained by a UI or domain specific language that only pretends to be real code. This makes Locust infinitely expandable and very developer friendly.
54
54
 
55
55
  To get started right away, head over to the [documentation](http://docs.locust.io/en/stable/installation.html).
56
56
 
@@ -105,19 +105,16 @@ Locust's code base is intentionally kept small and doesn't solve everything out
105
105
 
106
106
  ## Links
107
107
 
108
- * Website: [locust.io](https://locust.io)
109
108
  * Documentation: [docs.locust.io](https://docs.locust.io)
110
109
  * Support/Questions: [StackOverflow](https://stackoverflow.com/questions/tagged/locust)
111
- * Code/issues: [GitHub](https://github.com/locustio/locust)
112
110
  * Chat/discussion: [Slack](https://locustio.slack.com) [(signup)](https://communityinviter.com/apps/locustio/locust)
113
111
 
114
112
  ## Authors
115
113
 
116
- * [Carl Byström](http://cgbystrom.com) ([@cgbystrom](https://twitter.com/cgbystrom) on Twitter)
117
- * [Jonatan Heyman](http://heyman.info) ([@jonatanheyman](https://twitter.com/jonatanheyman) on Twitter)
118
- * [Joakim Hamrén](https://github.com/Jahaja) ([@Jahaaja](https://twitter.com/Jahaaja) on Twitter)
119
- * [Hugo Heyman](https://github.com/HeyHugo) ([@hugoheyman](https://twitter.com/hugoheyman) on Twitter)
120
- * [Lars Holmberg](https://github.com/cyberw)
114
+ * Maintainer: [Lars Holmberg](https://github.com/cyberw)
115
+ * Modern UI: [Andrew Baldwin](https://github.com/andrewbaldwin44)
116
+ * Original creator: [Jonatan Heyman](https://github.com/heyman)
117
+ * Massive thanks to [all of our contributors](https://github.com/locustio/locust/graphs/contributors)
121
118
 
122
119
  ## License
123
120
 
@@ -7,7 +7,7 @@
7
7
  [![GitHub contributors](https://img.shields.io/github/contributors/locustio/locust.svg)](https://github.com/locustio/locust/graphs/contributors)
8
8
  [![Support Ukraine Badge](https://bit.ly/support-ukraine-now)](https://github.com/support-ukraine/support-ukraine)
9
9
 
10
- Locust is an easy to use, scriptable and scalable performance testing tool. You define the behaviour of your users in regular Python code, instead of being constrained by a UI or domain specific language that only pretends to be real code. This makes Locust infinitely expandable and very developer friendly.
10
+ Locust is an easy to use, scriptable and scalable performance testing tool. You define your load test in regular Python code, instead of being constrained by a UI or domain specific language that only pretends to be real code. This makes Locust infinitely expandable and very developer friendly.
11
11
 
12
12
  To get started right away, head over to the [documentation](http://docs.locust.io/en/stable/installation.html).
13
13
 
@@ -62,19 +62,16 @@ Locust's code base is intentionally kept small and doesn't solve everything out
62
62
 
63
63
  ## Links
64
64
 
65
- * Website: [locust.io](https://locust.io)
66
65
  * Documentation: [docs.locust.io](https://docs.locust.io)
67
66
  * Support/Questions: [StackOverflow](https://stackoverflow.com/questions/tagged/locust)
68
- * Code/issues: [GitHub](https://github.com/locustio/locust)
69
67
  * Chat/discussion: [Slack](https://locustio.slack.com) [(signup)](https://communityinviter.com/apps/locustio/locust)
70
68
 
71
69
  ## Authors
72
70
 
73
- * [Carl Byström](http://cgbystrom.com) ([@cgbystrom](https://twitter.com/cgbystrom) on Twitter)
74
- * [Jonatan Heyman](http://heyman.info) ([@jonatanheyman](https://twitter.com/jonatanheyman) on Twitter)
75
- * [Joakim Hamrén](https://github.com/Jahaja) ([@Jahaaja](https://twitter.com/Jahaaja) on Twitter)
76
- * [Hugo Heyman](https://github.com/HeyHugo) ([@hugoheyman](https://twitter.com/hugoheyman) on Twitter)
77
- * [Lars Holmberg](https://github.com/cyberw)
71
+ * Maintainer: [Lars Holmberg](https://github.com/cyberw)
72
+ * Modern UI: [Andrew Baldwin](https://github.com/andrewbaldwin44)
73
+ * Original creator: [Jonatan Heyman](https://github.com/heyman)
74
+ * Massive thanks to [all of our contributors](https://github.com/locustio/locust/graphs/contributors)
78
75
 
79
76
  ## License
80
77
 
@@ -4,6 +4,14 @@ Changelog Highlights
4
4
 
5
5
  For full details of the Locust changelog, please see https://github.com/locustio/locust/blob/master/CHANGELOG.md
6
6
 
7
+ 2.18.3
8
+ ======
9
+ * Modern UI: Add sorting to columns on statistics page and downloaded report https://github.com/locustio/locust/pull/2453
10
+
11
+ 2.18.2
12
+ ======
13
+ * FastHttpUser: encoding return str when response is empty https://github.com/locustio/locust/pull/2451
14
+
7
15
  2.18.1
8
16
  ======
9
17
  * Add Log Viewer to Modern UI https://github.com/locustio/locust/pull/2440
@@ -61,11 +61,10 @@ Previous versions of Locust used terminology borrowed from nature (swarming, hat
61
61
  Authors
62
62
  =======
63
63
 
64
- - `Jonatan Heyman <http://heyman.info>`_ (`@jonatanheyman <https://twitter.com/jonatanheyman>`_ on Twitter)
65
- - Lars Holmberg (`@cyberw <https://github.com/cyberw>`_ on Github)
66
- - Carl Byström (`@cgbystrom <https://twitter.com/cgbystrom>`_ on Twitter)
67
- - Joakim Hamrén (`@Jahaaja <https://twitter.com/Jahaaja>`_ on Twitter)
68
- - Hugo Heyman (`@hugoheyman <https://twitter.com/hugoheyman>`_ on Twitter)
64
+ - Jonatan Heyman (`@heyman <https://github.com/heyman>`_)
65
+ - Lars Holmberg (`@cyberw <https://github.com/cyberw>`_)
66
+ - Andrew Baldwin (`@andrewbaldwin44 <https://github.com/andrewbaldwin44>`_)
67
+ - Carl Byström, Joakim Hamrén & Hugo Heyman
69
68
 
70
69
  Many thanks to our other great `contributors <https://github.com/locustio/locust/graphs/contributors>`_!
71
70
 
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '2.18.2.dev7'
16
- __version_tuple__ = version_tuple = (2, 18, 2, 'dev7')
15
+ __version__ = version = '2.18.3'
16
+ __version_tuple__ = version_tuple = (2, 18, 3)
@@ -10,26 +10,31 @@ from .user.inspectuser import get_ratio
10
10
  from html import escape
11
11
  from json import dumps
12
12
  from .runners import MasterRunner, STATE_STOPPED, STATE_STOPPING
13
- from flask import render_template as flask_render_template
14
13
 
15
14
 
16
15
  PERCENTILES_FOR_HTML_REPORT = [0.50, 0.6, 0.7, 0.8, 0.9, 0.95, 0.99, 1.0]
17
16
 
18
17
 
19
- def render_template(file, **kwargs):
20
- templates_path = os.path.join(pathlib.Path(__file__).parent.absolute(), "templates")
21
- env = Environment(loader=FileSystemLoader(templates_path), extensions=["jinja2.ext.do"])
18
+ def render_template(file, template_path, **kwargs):
19
+ env = Environment(loader=FileSystemLoader(template_path), extensions=["jinja2.ext.do"])
22
20
  template = env.get_template(file)
23
21
  return template.render(**kwargs)
24
22
 
25
23
 
26
24
  def get_html_report(
27
25
  environment,
28
- static_path=os.path.join(os.path.dirname(__file__), "static"),
29
26
  show_download_link=True,
30
27
  use_modern_ui=False,
31
28
  theme="",
32
29
  ):
30
+ root_path = os.path.dirname(os.path.abspath(__file__))
31
+ if use_modern_ui:
32
+ static_path = os.path.join(root_path, "webui", "dist", "assets")
33
+ template_path = os.path.join(root_path, "webui", "dist")
34
+ else:
35
+ static_path = os.path.join(root_path, "static")
36
+ template_path = os.path.join(root_path, "templates")
37
+
33
38
  stats = environment.runner.stats
34
39
 
35
40
  start_ts = stats.start_time
@@ -94,8 +99,9 @@ def get_html_report(
94
99
  }
95
100
 
96
101
  if use_modern_ui:
97
- res = flask_render_template(
102
+ res = render_template(
98
103
  "report.html",
104
+ template_path,
99
105
  template_args={
100
106
  "is_report": True,
101
107
  "requests_statistics": [stat.to_dict(escape_string_values=True) for stat in requests_statistics],
@@ -128,6 +134,7 @@ def get_html_report(
128
134
  else:
129
135
  res = render_template(
130
136
  "report.html",
137
+ template_path,
131
138
  int=int,
132
139
  round=round,
133
140
  escape=escape,
@@ -495,8 +495,8 @@ See https://github.com/locustio/locust/wiki/Installation#increasing-maximum-numb
495
495
  logger.info("Got SIGTERM signal")
496
496
  shutdown()
497
497
 
498
- def save_html_report():
499
- html_report = get_html_report(environment, show_download_link=False)
498
+ def save_html_report(use_modern_ui=False):
499
+ html_report = get_html_report(environment, show_download_link=False, use_modern_ui=use_modern_ui)
500
500
  logger.info("writing html report to file: %s", options.html_file)
501
501
  with open(options.html_file, "w", encoding="utf-8") as file:
502
502
  file.write(html_report)
@@ -512,10 +512,10 @@ See https://github.com/locustio/locust/wiki/Installation#increasing-maximum-numb
512
512
 
513
513
  main_greenlet.join()
514
514
  if options.html_file:
515
- save_html_report()
515
+ save_html_report(options.modern_ui)
516
516
  except KeyboardInterrupt:
517
517
  if options.html_file:
518
- save_html_report()
518
+ save_html_report(options.modern_ui)
519
519
  except Exception:
520
520
  raise
521
521
  shutdown()
@@ -110,9 +110,9 @@ class WebUI:
110
110
  self.app = app
111
111
  app.jinja_env.add_extension("jinja2.ext.do")
112
112
  app.debug = True
113
- self.root_path = os.path.dirname(os.path.abspath(__file__))
114
- app.root_path = self.root_path
115
- self.webui_build_path = f"{self.root_path}/webui/dist"
113
+ root_path = os.path.dirname(os.path.abspath(__file__))
114
+ app.root_path = root_path
115
+ self.webui_build_path = os.path.join(root_path, "webui", "dist")
116
116
  self.app.config["BASIC_AUTH_ENABLED"] = False
117
117
  self.auth: Optional[BasicAuth] = None
118
118
  self.greenlet: Optional[gevent.Greenlet] = None
@@ -144,9 +144,7 @@ class WebUI:
144
144
 
145
145
  @app.route("/assets/<path:path>")
146
146
  def send_assets(path):
147
- webui_build_path = self.webui_build_path
148
-
149
- return send_from_directory(f"{webui_build_path}/assets", path)
147
+ return send_from_directory(os.path.join(self.webui_build_path, "assets"), path)
150
148
 
151
149
  @app.route("/")
152
150
  @self.auth_required_if_enabled
@@ -287,16 +285,9 @@ class WebUI:
287
285
  @app.route("/stats/report")
288
286
  @self.auth_required_if_enabled
289
287
  def stats_report() -> Response:
290
- if self.modern_ui:
291
- self.set_static_modern_ui()
292
- static_path = f"{self.webui_build_path}/assets"
293
- else:
294
- static_path = f"{self.root_path}/static"
295
-
296
288
  theme = request.args.get("theme", "")
297
289
  res = get_html_report(
298
290
  self.environment,
299
- static_path=static_path,
300
291
  show_download_link=not request.args.get("download"),
301
292
  use_modern_ui=self.modern_ui,
302
293
  theme=theme,
@@ -542,7 +533,7 @@ class WebUI:
542
533
 
543
534
  def set_static_modern_ui(self):
544
535
  self.app.template_folder = self.webui_build_path
545
- self.app.static_folder = f"{self.webui_build_path}/assets/"
536
+ self.app.static_folder = os.path.join(self.webui_build_path, "assets")
546
537
  self.app.static_url_path = "/assets/"
547
538
 
548
539
  def update_template_args(self):