locust 2.22.1.dev65__tar.gz → 2.23.0__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.22.1.dev65 → locust-2.23.0}/.github/workflows/tests.yml +2 -2
- {locust-2.22.1.dev65/locust.egg-info → locust-2.23.0}/PKG-INFO +1 -1
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/changelog.rst +7 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/configuration.rst +9 -1
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/running-distributed.rst +1 -1
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/testing-other-systems.rst +0 -1
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/what-is-locust.rst +0 -1
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/_version.py +2 -2
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/argument_parser.py +42 -6
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_load_locustfile.py +18 -1
- locust-2.22.1.dev65/locust/webui/dist/assets/index-e80c0bba.js → locust-2.23.0/locust/webui/dist/assets/index-5730ea01.js +48 -49
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/dist/auth.html +1 -1
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/dist/index.html +1 -1
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/FailuresTable/FailuresTable.tsx +1 -15
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/ResponseTimeTable/ResponseTimeTable.tsx +3 -1
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/StatsTable/StatsTable.tsx +1 -11
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Table/Table.test.tsx +1 -12
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Table/Table.tsx +11 -5
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/WorkersTable/WorkersTable.tsx +1 -15
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/hooks/tests/useSortByField.test.tsx +2 -2
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/hooks/useSortByField.ts +24 -22
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/vite.config.ts +1 -1
- {locust-2.22.1.dev65 → locust-2.23.0/locust.egg-info}/PKG-INFO +1 -1
- {locust-2.22.1.dev65 → locust-2.23.0}/locust.egg-info/SOURCES.txt +1 -3
- locust-2.22.1.dev65/locust/webui/dist/assets/auth-0ef39448.js.map +0 -1
- locust-2.22.1.dev65/locust/webui/dist/assets/index-e80c0bba.js.map +0 -1
- {locust-2.22.1.dev65 → locust-2.23.0}/.coveragerc +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.dockerignore +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.git-blame-ignore-revs +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.gitattributes +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.github/CONTRIBUTING.md +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.github/workflows/stale.yml +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.gitignore +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.readthedocs.yaml +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.vscode/extensions.json +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.vscode/launch.json +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.vscode/launch_locust.json +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/.vscode/settings.json +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/CHANGELOG.md +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/Dockerfile +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/LICENSE +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/MANIFEST.in +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/Makefile +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/README +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/README.md +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/SECURITY.md +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/Vagrantfile +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/benchmarks/dispatch.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/_static/theme-overrides.css +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/api.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/conf.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/custom-load-shape.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/developing-locust.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/extending-locust.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/further-reading.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/history.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/images/locust_workers.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/images/number_of_users.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/images/response_times.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/images/total_requests_per_second.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/images/userclass_picker_example.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/images/webui-running-statistics.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/images/webui-splash-screenshot.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/increase-performance.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/index.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/installation.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/logging.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/quickstart.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/requirements.txt +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/retrieving-stats.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/running-cloud-integration.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/running-in-debugger.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/running-in-docker.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/running-without-web-ui.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/tasksets.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/use-as-lib.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/docs/writing-a-locustfile.rst +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/add_command_line_argument.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/basic.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/browse_docs_sequence_test.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/browse_docs_test.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/custom_messages.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/custom_shape/double_wave.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/custom_shape/stages.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/custom_shape/staging_user_classes.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/custom_shape/step_load.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/custom_shape/wait_user_count.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/custom_wait_function.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/custom_xmlrpc_client/server.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/custom_xmlrpc_client/xmlrpc_locustfile.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/debugging.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/debugging_advanced.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/docker-compose/docker-compose.yml +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/dynamic_user_credentials.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/events.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/extend_modern_web_ui.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/extend_web_ui/extend.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/extend_web_ui/static/custom-stats-table.css +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/extend_web_ui/static/extend.js +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/extend_web_ui/templates/extend.html +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/fast_http_locust.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/grpc/grpc_user.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/grpc/hello.proto +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/grpc/hello_pb2.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/grpc/hello_pb2_grpc.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/grpc/hello_server.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/grpc/locustfile.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/locustfile.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/manual_stats_reporting.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/multiple_hosts.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/nested_inline_tasksets.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/rest.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/sdk_session_patching/session_patch_locustfile.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/semaphore_wait.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/stop_on_threshold.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/terraform/aws/README.md +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/terraform/aws/data_subnet.tf +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/terraform/aws/main.tf +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/terraform/aws/output.tf +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/terraform/aws/plan/basic.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/terraform/aws/provisioner.tf +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/terraform/aws/variables.tf +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/test_data_management.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/use_as_lib.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/vagrant/README.md +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/vagrant/supervisord.conf +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/web_ui_auth.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/examples/worker_index.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/generate_changelog.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/__init__.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/__main__.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/clients.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/contrib/__init__.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/contrib/fasthttp.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/debug.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/dispatch.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/env.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/event.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/exception.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/html.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/input_events.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/log.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/main.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/py.typed +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/rpc/__init__.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/rpc/protocol.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/runners.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/shape.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/chart.js +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/css/application.css +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/css/application.css.map +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/css/tables.css +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/css/tables.css.map +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/echarts.common.min.js +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/img/favicon.ico +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/img/logo.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/img/ui-screenshot-charts.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/img/ui-screenshot-start-test.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/img/ui-screenshot-stats.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/img/ui-screenshot-workers.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/jquery-1.11.3.min.js +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/jquery.jqote2.min.js +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/jquery.tools.min.js +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/locust.js +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/sass/_base.sass +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/sass/_mixins.sass +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/sass/application.sass +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/sass/tables.sass +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/tasks.js +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/static/vintage.js +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/stats.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/templates/index.html +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/templates/report.html +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/templates/stats_data.html +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/__init__.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/fake_module1_for_env_test.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/fake_module2_for_env_test.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/mock_locustfile.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/mock_logging.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_debugging.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_dispatch.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_env.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_fasthttp.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_http.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_interruptable_task.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_locust_class.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_log.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_main.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_old_wait_api.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_parser.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_runners.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_sequential_taskset.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_stats.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_tags.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_taskratio.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_users.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_util.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_wait_time.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_web.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/test_zmqrpc.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/testcases.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/test/util.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/user/__init__.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/user/inspectuser.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/user/sequential_taskset.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/user/task.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/user/users.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/user/wait_time.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/util/__init__.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/util/cache.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/util/deprecation.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/util/exception_handler.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/util/load_locustfile.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/util/rounding.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/util/timespan.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/web.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/.eslintrc +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/.gitignore +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/.prettierrc +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/auth.html +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/dev.html +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/dist/assets/favicon.ico +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/dist/assets/logo.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/dist/report.html +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/index.html +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/package.json +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/public/assets/favicon.ico +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/public/assets/logo.png +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/public/report.html +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/App.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/Report.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/auth.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/DataTable/DataTable.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/DataTable/DataTable.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/ExceptionsTable/ExceptionsTable.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Form/Form.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Form/Select.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Form/tests/Form.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Form/tests/Select.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Layout/Footer/About.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Layout/Footer/Footer.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Layout/Layout.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Layout/Navbar/DarkLightToggle.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Layout/Navbar/Navbar.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Layout/Navbar/SwarmMonitor.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Layout/Navbar/SwarmMonitor.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/LineChart/LineChart.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/LineChart/LineChart.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/LogViewer/LogViewer.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/LogViewer/tests/LogViewer.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/LogViewer/tests/useLogViewer.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/LogViewer/useLogViewer.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Modal/Modal.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Reports/Reports.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Reports/Reports.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/ResponseTimeTable/ResponseTimeTable.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/StateButtons/EditButton.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/StateButtons/NewTestButton.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/StateButtons/ResetButton.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/StateButtons/StateButtons.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/StateButtons/StopButton.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/StateButtons/tests/ResetButton.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/StateButtons/tests/StateButtons.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/StateButtons/tests/StopButton.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmCharts/SwarmCharts.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmForm/SwarmCustomParameters.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmForm/SwarmEditForm.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmForm/SwarmForm.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmForm/SwarmUserClassPicker.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmForm/tests/SwarmCustomParameters.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmForm/tests/SwarmEditForm.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmForm/tests/SwarmForm.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmForm/tests/SwarmUserClassPicker.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmRatios/SwarmRatios.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/SwarmRatios/SwarmRatios.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Tabs/Tabs.constants.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Tabs/Tabs.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/Tabs/Tabs.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/ViewColumnSelector/ViewColumnSelector.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/components/ViewColumnSelector/ViewColumnSelector.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/constants/swarm.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/constants/theme.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/global.d.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/hooks/tests/useNotifications.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/hooks/tests/useSelecteViewColumns.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/hooks/tests/useSwarmUi.test.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/hooks/useInterval.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/hooks/useNotifications.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/hooks/useSelectViewColumns.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/hooks/useSwarmUi.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/index.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/api/swarm.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/hooks.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/slice/logViewer.slice.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/slice/notification.slice.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/slice/root.slice.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/slice/swarm.slice.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/slice/tests/ui.slice.test.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/slice/theme.slice.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/slice/ui.slice.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/slice/url.slice.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/store.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/redux/utils.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/styles/theme.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/test/constants.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/test/mocks/statsRequest.mock.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/test/mocks/swarmState.mock.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/test/setup.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/test/testUtils.tsx +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/types/auth.types.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/types/swarm.types.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/types/tab.types.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/types/table.types.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/types/ui.types.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/utils/number.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/utils/object.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/utils/string.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/utils/tests/number.test.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/utils/tests/object.test.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/utils/tests/string.test.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/utils/tests/url.test.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/src/utils/url.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/tsconfig.json +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/vitest.config.ts +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust/webui/yarn.lock +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust.egg-info/dependency_links.txt +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust.egg-info/entry_points.txt +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust.egg-info/not-zip-safe +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust.egg-info/requires.txt +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/locust.egg-info/top_level.txt +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/package.json +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/pyproject.toml +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/scripts/locustfile.py +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/scripts/run-disributed-headless.sh +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/scripts/run-disributed-web.sh +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/scripts/run-local-headless.sh +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/scripts/run-local-web.sh +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/setup.cfg +0 -0
- {locust-2.22.1.dev65 → locust-2.23.0}/tox.ini +0 -0
@@ -15,11 +15,11 @@ jobs:
|
|
15
15
|
matrix:
|
16
16
|
include:
|
17
17
|
- {name: Windows, python: '3.12', os: windows-latest, tox: fail_fast_test_main}
|
18
|
-
- {name: Mac, python: '3.12', os: macos-latest, tox: fail_fast_test_main}
|
18
|
+
# - {name: Mac, python: '3.12', os: macos-latest, tox: fail_fast_test_main}
|
19
19
|
- { name: "ruff", python: "3.11", os: ubuntu-latest, tox: "ruff" }
|
20
20
|
- { name: "mypy", python: "3.10", os: ubuntu-latest, tox: "mypy" }
|
21
21
|
# run some integration tests and abort immediately if they fail, for faster feedback
|
22
|
-
- { name: "
|
22
|
+
- { name: "Linux", python: "3.12", os: ubuntu-latest, tox: fail_fast_test_main }
|
23
23
|
- { name: "3.12", python: "3.12", os: ubuntu-latest, tox: py312 }
|
24
24
|
- { name: "3.11", python: "3.11", os: ubuntu-latest, tox: py311 }
|
25
25
|
- { name: "3.10", python: "3.10", os: ubuntu-latest, tox: py310 }
|
@@ -4,6 +4,13 @@ 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.23.0
|
8
|
+
======
|
9
|
+
* UI updates (https://github.com/locustio/locust/pull/2589, https://github.com/locustio/locust/pull/2590, https://github.com/locustio/locust/pull/2596)
|
10
|
+
* Locustfile distribution from master to worker https://github.com/locustio/locust/pull/2583
|
11
|
+
* Allow getting locust files from http urls https://github.com/locustio/locust/pull/2595
|
12
|
+
* Use exec_module() when loading locustfile instead of the deprecated load_module() https://github.com/locustio/locust/pull/2576
|
13
|
+
|
7
14
|
2.22.0
|
8
15
|
======
|
9
16
|
* Use Modern UI by default, remove --modern-ui and add --legacy-ui parameters https://github.com/locustio/locust/pull/2569
|
@@ -124,6 +124,15 @@ Example:
|
|
124
124
|
|
125
125
|
Locust will use ``locustfile1.py``, ``locustfile2.py`` & ``more_files/locustfile3.py``
|
126
126
|
|
127
|
+
You can also use ``-f/--locustfile`` for web urls. This will download the file and use it as any normal locustfile.
|
128
|
+
|
129
|
+
Example:
|
130
|
+
|
131
|
+
.. code-block:: console
|
132
|
+
|
133
|
+
$ locust -f https://raw.githubusercontent.com/locustio/locust/master/examples/basic.py
|
134
|
+
|
135
|
+
|
127
136
|
.. _class-picker:
|
128
137
|
|
129
138
|
Running Locust with User class UI picker
|
@@ -242,4 +251,3 @@ The list of statistics parameters that can be modified is:
|
|
242
251
|
| PERCENTILES_TO_STATISTICS | List of response time percentiles in the screen of statistics for Web UI |
|
243
252
|
| | This parameter supports only modern UI |
|
244
253
|
+-------------------------------------------+--------------------------------------------------------------------------------------+
|
245
|
-
|
@@ -42,7 +42,7 @@ And then on each worker machine:
|
|
42
42
|
|
43
43
|
.. code-block:: bash
|
44
44
|
|
45
|
-
locust -f - --worker --master-host <your master
|
45
|
+
locust -f - --worker --master-host <your master> --processes 4
|
46
46
|
|
47
47
|
.. note::
|
48
48
|
The ``-f -`` argument tells Locust to get the locustfile from master instead of from its local filesystem. This feature was introduced in Locust 2.23.0.
|
@@ -12,5 +12,5 @@ __version__: str
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
13
13
|
version_tuple: VERSION_TUPLE
|
14
14
|
|
15
|
-
__version__ = version = '2.
|
16
|
-
__version_tuple__ = version_tuple = (2,
|
15
|
+
__version__ = version = '2.23.0'
|
16
|
+
__version_tuple__ = version_tuple = (2, 23, 0)
|
@@ -4,17 +4,20 @@ import locust
|
|
4
4
|
from locust import runners
|
5
5
|
from locust.rpc import Message, zmqrpc
|
6
6
|
|
7
|
+
import atexit
|
7
8
|
import os
|
8
9
|
import platform
|
9
10
|
import socket
|
10
11
|
import sys
|
12
|
+
import tempfile
|
11
13
|
import textwrap
|
12
14
|
from typing import Any, NamedTuple
|
15
|
+
from urllib.parse import urlparse
|
13
16
|
from uuid import uuid4
|
14
17
|
|
15
18
|
import configargparse
|
16
19
|
import gevent
|
17
|
-
|
20
|
+
import requests
|
18
21
|
|
19
22
|
version = locust.__version__
|
20
23
|
|
@@ -66,7 +69,7 @@ def _is_package(path):
|
|
66
69
|
return os.path.isdir(path) and os.path.exists(os.path.join(path, "__init__.py"))
|
67
70
|
|
68
71
|
|
69
|
-
def find_locustfile(locustfile):
|
72
|
+
def find_locustfile(locustfile: str) -> str | None:
|
70
73
|
"""
|
71
74
|
Attempt to locate a locustfile, either explicitly or by searching parent dirs.
|
72
75
|
"""
|
@@ -97,7 +100,8 @@ def find_locustfile(locustfile):
|
|
97
100
|
# we've reached the root path which has been checked this iteration
|
98
101
|
break
|
99
102
|
path = parent_path
|
100
|
-
|
103
|
+
|
104
|
+
return None
|
101
105
|
|
102
106
|
|
103
107
|
def find_locustfiles(locustfiles: list[str], is_directory: bool) -> list[str]:
|
@@ -141,6 +145,34 @@ def find_locustfiles(locustfiles: list[str], is_directory: bool) -> list[str]:
|
|
141
145
|
return file_paths
|
142
146
|
|
143
147
|
|
148
|
+
def is_url(url: str) -> bool:
|
149
|
+
try:
|
150
|
+
result = urlparse(url)
|
151
|
+
if result.scheme == "https" or result.scheme == "http":
|
152
|
+
return True
|
153
|
+
else:
|
154
|
+
return False
|
155
|
+
except ValueError:
|
156
|
+
return False
|
157
|
+
|
158
|
+
|
159
|
+
def download_file_from_url(url: str) -> str:
|
160
|
+
try:
|
161
|
+
response = requests.get(url)
|
162
|
+
except requests.exceptions.RequestException as e:
|
163
|
+
sys.stderr.write(f"Failed to get locustfile from: {url}. Exception: {e}")
|
164
|
+
sys.exit(1)
|
165
|
+
|
166
|
+
with open(os.path.join(tempfile.gettempdir(), url.rsplit("/", 1)[-1]), "w") as locustfile:
|
167
|
+
locustfile.write(response.text)
|
168
|
+
|
169
|
+
def exit_handler():
|
170
|
+
os.remove(locustfile.name)
|
171
|
+
|
172
|
+
atexit.register(exit_handler)
|
173
|
+
return locustfile.name
|
174
|
+
|
175
|
+
|
144
176
|
def get_empty_argument_parser(add_help=True, default_config_files=DEFAULT_CONFIG_FILES) -> LocustArgumentParser:
|
145
177
|
parser = LocustArgumentParser(
|
146
178
|
default_config_files=default_config_files,
|
@@ -279,7 +311,9 @@ def parse_locustfile_option(args=None) -> list[str]:
|
|
279
311
|
return [filename]
|
280
312
|
|
281
313
|
# Comma separated string to list
|
282
|
-
locustfile_as_list = [
|
314
|
+
locustfile_as_list = [
|
315
|
+
download_file_from_url(f) if is_url(f.strip()) else f.strip() for f in options.locustfile.split(",")
|
316
|
+
]
|
283
317
|
|
284
318
|
# Checking if the locustfile is a single file, multiple files or a directory
|
285
319
|
if locustfile_is_directory(locustfile_as_list):
|
@@ -298,8 +332,8 @@ def parse_locustfile_option(args=None) -> list[str]:
|
|
298
332
|
locustfile = None
|
299
333
|
else:
|
300
334
|
# Is a single file
|
301
|
-
locustfile = find_locustfile(
|
302
|
-
locustfiles = [
|
335
|
+
locustfile = find_locustfile(locustfile_as_list[0])
|
336
|
+
locustfiles = []
|
303
337
|
|
304
338
|
if not locustfile:
|
305
339
|
if options.help or options.version:
|
@@ -317,6 +351,8 @@ def parse_locustfile_option(args=None) -> list[str]:
|
|
317
351
|
f"Could not find '{user_friendly_locustfile_name}'. {note_about_file_endings}See --help for available options.\n"
|
318
352
|
)
|
319
353
|
sys.exit(1)
|
354
|
+
else:
|
355
|
+
locustfiles.append(locustfile)
|
320
356
|
|
321
357
|
return locustfiles
|
322
358
|
|
@@ -1,10 +1,12 @@
|
|
1
1
|
from locust import main
|
2
|
-
from locust.argument_parser import parse_options
|
2
|
+
from locust.argument_parser import parse_locustfile_option, parse_options
|
3
3
|
from locust.main import create_environment
|
4
4
|
from locust.user import HttpUser, TaskSet, User
|
5
5
|
from locust.util.load_locustfile import is_user_class
|
6
6
|
|
7
|
+
import filecmp
|
7
8
|
import os
|
9
|
+
import pathlib
|
8
10
|
import textwrap
|
9
11
|
|
10
12
|
from .mock_locustfile import MOCK_LOCUSTFILE_CONTENT, mock_locustfile
|
@@ -209,3 +211,18 @@ class TestLoadLocustfile(LocustTestCase):
|
|
209
211
|
]
|
210
212
|
)
|
211
213
|
self.assertEqual("my_locust_file.py", options.locustfile)
|
214
|
+
|
215
|
+
def test_locustfile_from_url(self):
|
216
|
+
locustfiles = parse_locustfile_option(
|
217
|
+
args=[
|
218
|
+
"-f",
|
219
|
+
"https://raw.githubusercontent.com/locustio/locust/master/examples/basic.py",
|
220
|
+
]
|
221
|
+
)
|
222
|
+
self.assertEqual(len(locustfiles), 1)
|
223
|
+
self.assertTrue(
|
224
|
+
filecmp.cmp(
|
225
|
+
locustfiles[0],
|
226
|
+
f"{os.getcwd()}/examples/basic.py",
|
227
|
+
)
|
228
|
+
)
|