locust 2.26.1.dev16__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.
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.vscode/settings.json +6 -0
- {locust-2.26.1.dev16/locust.egg-info → locust-2.26.1.dev26}/PKG-INFO +2 -2
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/README.md +1 -1
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/changelog.rst +2 -2
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/configuration.rst +1 -1
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/custom-load-shape.rst +2 -2
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/extending-locust.rst +1 -7
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/increase-performance.rst +3 -3
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/index.rst +0 -1
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/quickstart.rst +3 -7
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/running-in-docker.rst +3 -18
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/testing-other-systems.rst +2 -2
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/what-is-locust.rst +6 -7
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/writing-a-locustfile.rst +10 -13
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/_version.py +2 -2
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/clients.py +1 -2
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/main.py +1 -1
- {locust-2.26.1.dev16 → locust-2.26.1.dev26/locust.egg-info}/PKG-INFO +2 -2
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust.egg-info/SOURCES.txt +0 -1
- locust-2.26.1.dev16/docs/running-cloud-integration.rst +0 -17
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.coveragerc +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.dockerignore +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.git-blame-ignore-revs +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.gitattributes +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.github/CONTRIBUTING.md +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.github/workflows/stale.yml +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.github/workflows/tests.yml +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.gitignore +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.pre-commit-config.yaml +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.readthedocs.yaml +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.vscode/extensions.json +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.vscode/launch.json +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/.vscode/launch_locust.json +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/CHANGELOG.md +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/Dockerfile +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/LICENSE +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/MANIFEST.in +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/Makefile +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/README +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/SECURITY.md +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/Vagrantfile +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/benchmarks/dispatch.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/_static/theme-overrides.css +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/api.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/conf.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/developing-locust.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/further-reading.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/history.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/images/extend_modern_web_ui_cache_stats.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/images/locust_workers.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/images/number_of_users.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/images/response_times.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/images/total_requests_per_second.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/images/userclass_picker_example.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/images/webui-running-statistics.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/images/webui-splash-screenshot.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/installation.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/logging.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/requirements.txt +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/retrieving-stats.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/running-distributed.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/running-in-debugger.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/running-without-web-ui.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/tasksets.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/use-as-lib.rst +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/add_command_line_argument.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/basic.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/browse_docs_sequence_test.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/browse_docs_test.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/custom_messages.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/custom_shape/double_wave.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/custom_shape/stages.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/custom_shape/staging_user_classes.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/custom_shape/step_load.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/custom_shape/wait_user_count.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/custom_wait_function.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/custom_xmlrpc_client/server.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/custom_xmlrpc_client/xmlrpc_locustfile.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/debugging.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/debugging_advanced.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/docker-compose/docker-compose.yml +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/dynamic_user_credentials.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/events.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/extend_modern_web_ui.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/extend_web_ui/extend.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/extend_web_ui/static/custom-stats-table.css +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/extend_web_ui/static/extend.js +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/extend_web_ui/templates/extend.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/fast_http_locust.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/grpc/grpc_user.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/grpc/hello.proto +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/grpc/hello_pb2.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/grpc/hello_pb2_grpc.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/grpc/hello_server.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/grpc/locustfile.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/locustfile.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/manual_stats_reporting.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/multiple_hosts.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/nested_inline_tasksets.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/rest.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/sdk_session_patching/session_patch_locustfile.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/semaphore_wait.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/stop_on_threshold.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/terraform/aws/README.md +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/terraform/aws/data_subnet.tf +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/terraform/aws/main.tf +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/terraform/aws/output.tf +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/terraform/aws/plan/basic.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/terraform/aws/provisioner.tf +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/terraform/aws/variables.tf +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/test_data_management.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/use_as_lib.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/vagrant/README.md +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/vagrant/supervisord.conf +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/web_ui_auth.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/web_ui_cache_stats.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/worker_index.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/generate_changelog.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/__init__.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/__main__.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/argument_parser.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/contrib/__init__.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/contrib/fasthttp.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/debug.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/dispatch.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/env.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/event.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/exception.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/html.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/input_events.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/log.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/py.typed +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/rpc/__init__.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/rpc/protocol.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/runners.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/shape.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/chart.js +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/css/application.css +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/css/application.css.map +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/css/tables.css +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/css/tables.css.map +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/echarts.common.min.js +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/img/favicon.ico +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/img/logo.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/img/ui-screenshot-charts.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/img/ui-screenshot-start-test.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/img/ui-screenshot-stats.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/img/ui-screenshot-workers.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/jquery-1.11.3.min.js +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/jquery.jqote2.min.js +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/jquery.tools.min.js +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/locust.js +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/sass/_base.sass +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/sass/_mixins.sass +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/sass/application.sass +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/sass/tables.sass +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/tasks.js +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/static/vintage.js +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/stats.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/templates/index.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/templates/report.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/templates/stats_data.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/__init__.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/fake_module1_for_env_test.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/fake_module2_for_env_test.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/mock_locustfile.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/mock_logging.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_debugging.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_dispatch.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_env.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_fasthttp.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_http.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_interruptable_task.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_load_locustfile.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_locust_class.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_log.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_main.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_old_wait_api.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_parser.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_runners.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_sequential_taskset.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_stats.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_tags.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_taskratio.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_users.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_util.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_wait_time.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_web.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/test_zmqrpc.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/testcases.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/test/util.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/user/__init__.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/user/inspectuser.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/user/sequential_taskset.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/user/task.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/user/users.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/user/wait_time.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/util/__init__.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/util/cache.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/util/deprecation.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/util/exception_handler.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/util/load_locustfile.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/util/rounding.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/util/timespan.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/web.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/.eslintrc +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/.gitignore +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/.prettierrc +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/auth.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/dev.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/dist/assets/favicon.ico +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/dist/assets/index-941b6e82.js +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/dist/assets/logo.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/dist/auth.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/dist/index.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/dist/report.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/index.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/package.json +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/public/assets/favicon.ico +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/public/assets/logo.png +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/public/report.html +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/App.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/App.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/DataTable/DataTable.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/DataTable/DataTable.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/ExceptionsTable/ExceptionsTable.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/FailuresTable/FailuresTable.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/FallbackRender/FallbackRender.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/FallbackRender/FallbackRender.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Form/Form.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Form/Select.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Form/tests/Form.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Form/tests/Select.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Footer/About.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Footer/Footer.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Layout.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Navbar/DarkLightToggle.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Navbar/Navbar.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Navbar/SwarmMonitor.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Layout/Navbar/SwarmMonitor.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/LineChart/LineChart.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/LineChart/LineChart.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/LogViewer/LogViewer.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/LogViewer/tests/LogViewer.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/LogViewer/tests/useLogViewer.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/LogViewer/useLogViewer.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Modal/Modal.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Reports/Reports.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Reports/Reports.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/ResponseTimeTable/ResponseTimeTable.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/ResponseTimeTable/ResponseTimeTable.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/EditButton.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/NewTestButton.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/ResetButton.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/StateButtons.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/StopButton.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/tests/ResetButton.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/tests/StateButtons.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/StateButtons/tests/StopButton.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/StatsTable/StatsTable.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmCharts/SwarmCharts.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/SwarmCustomParameters.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/SwarmEditForm.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/SwarmForm.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/SwarmUserClassPicker.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/tests/SwarmCustomParameters.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/tests/SwarmEditForm.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/tests/SwarmForm.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmForm/tests/SwarmUserClassPicker.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmRatios/SwarmRatios.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/SwarmRatios/SwarmRatios.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Table/Table.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Table/Table.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Tabs/Tabs.constants.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Tabs/Tabs.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/Tabs/Tabs.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/ViewColumnSelector/ViewColumnSelector.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/ViewColumnSelector/ViewColumnSelector.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/components/WorkersTable/WorkersTable.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/constants/auth.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/constants/swarm.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/constants/theme.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/global.d.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/hooks/tests/useNotifications.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/hooks/tests/useSelecteViewColumns.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/hooks/tests/useSortByField.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/hooks/tests/useSwarmUi.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/hooks/useInterval.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/hooks/useNotifications.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/hooks/useSelectViewColumns.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/hooks/useSortByField.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/hooks/useSwarmUi.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/index.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/pages/Auth.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/pages/Dashboard.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/pages/HtmlReport.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/pages/tests/Auth.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/pages/tests/Dashboard.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/pages/tests/HtmlReport.test.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/api/swarm.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/hooks.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/logViewer.slice.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/notification.slice.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/root.slice.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/swarm.slice.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/tests/ui.slice.test.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/theme.slice.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/ui.slice.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/slice/url.slice.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/store.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/redux/utils.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/styles/theme.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/test/constants.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/test/mocks/statsRequest.mock.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/test/mocks/swarmState.mock.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/test/setup.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/test/testUtils.tsx +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/types/auth.types.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/types/swarm.types.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/types/tab.types.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/types/table.types.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/types/ui.types.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/utils/number.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/utils/object.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/utils/string.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/utils/tests/number.test.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/utils/tests/object.test.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/utils/tests/string.test.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/utils/tests/url.test.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/src/utils/url.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/tsconfig.json +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/vite.config.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/vitest.config.ts +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust/webui/yarn.lock +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust.egg-info/dependency_links.txt +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust.egg-info/entry_points.txt +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust.egg-info/not-zip-safe +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust.egg-info/requires.txt +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/locust.egg-info/top_level.txt +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/package.json +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/pyproject.toml +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/scripts/locustfile.py +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/scripts/run-disributed-headless.sh +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/scripts/run-disributed-web.sh +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/scripts/run-local-headless.sh +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/scripts/run-local-web.sh +0 -0
- {locust-2.26.1.dev16 → locust-2.26.1.dev26}/setup.cfg +0 -0
- {locust-2.26.1.dev16 → 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.
|
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
|
|
@@ -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
|
|
@@ -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 deprecated (since it's now the default
|
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
|
@@ -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
|
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.
|
@@ -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
|
164
|
+
No selection uses all the available User classes.
|
165
165
|
|
166
166
|
Example:
|
167
167
|
|
@@ -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
|
105
|
-
- `--run-time`
|
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
|
================
|
@@ -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
|
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,7 +93,7 @@ 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 (unless it breaks somehow). To more realistically simulate new browsers 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
|
|
@@ -18,7 +18,7 @@ A Locust test is essentially just a Python program making requests to the system
|
|
18
18
|
|
19
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
|
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
|
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,
|
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
|
39
|
-
|
38
|
+
Running Locust using Kubernetes
|
39
|
+
===============================
|
40
40
|
|
41
|
-
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
|
@@ -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.
|
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
|
222
|
-
These users are spawned
|
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
|
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
|
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
|
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.
|
16
|
-
__version_tuple__ = version_tuple = (2, 26, 1, '
|
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
|
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
|
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")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: locust
|
3
|
-
Version: 2.26.1.
|
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
|
|
@@ -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>`_
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{locust-2.26.1.dev16 → locust-2.26.1.dev26}/docs/images/extend_modern_web_ui_cache_stats.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/custom_xmlrpc_client/xmlrpc_locustfile.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{locust-2.26.1.dev16 → locust-2.26.1.dev26}/examples/extend_web_ui/static/custom-stats-table.css
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|