{
  "name": "locust",
  "description": "Locust is an easy to use, scriptable and scalable Python-based performance testing tool",
  "options": [
    {
      "names": [
        "-v",
        "--version"
      ],
      "description": "Show program's version number and exit"
    },
    {
      "names": [
        "-h",
        "--help"
      ],
      "description": "Show this help message and exit"
    },
    {
      "names": [
        "-f",
        "--locustfile"
      ],
      "description": "Show program's version number and exit",
      "takes_arg": true,
      "arg": {
        "name": "files...",
        "description": "Python module to import, e.g. '../other_test.py'. Either a .py file, multiple comma-separated .py files or a package directory. Defaults to 'locustfile'",
        "is_variadic": true,
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--config"
      ],
      "description": "Config file path",
      "takes_arg": true,
      "arg": {
        "name": "files...",
        "description": "Config file path",
        "is_variadic": true,
        "template": "filepaths"
      }
    },
    {
      "names": [
        "-H",
        "--host"
      ],
      "description": "Host to load test in the following format: http://10.21.32.33"
    },
    {
      "names": [
        "-u",
        "--users"
      ],
      "description": "Peak number of concurrent Locust users. Primarily used together with --headless or --autostart"
    },
    {
      "names": [
        "-r",
        "--spawn-rate"
      ],
      "description": "Rate to spawn users at (users per second). Primarily used together with --headless or --autostart"
    },
    {
      "names": [
        "-t",
        "--run-time"
      ],
      "description": "Stop after the specified amount of time, e.g. (300s, 20m, 3h, 1h30m, etc.)"
    },
    {
      "names": [
        "-l",
        "--list"
      ],
      "description": "Show list of possible User classes and exit"
    },
    {
      "names": [
        "--web-host"
      ],
      "description": "Host to bind the web interface to. Defaults to '*' (all interfaces)"
    },
    {
      "names": [
        "-P",
        "--web-port"
      ],
      "description": "Port on which to run web host"
    },
    {
      "names": [
        "--headless"
      ],
      "description": "Disable the web interface, and start the test immediately"
    },
    {
      "names": [
        "--autostart"
      ],
      "description": "Starts the test immediately (without disabling the web UI)"
    },
    {
      "names": [
        "--autoquit"
      ],
      "description": "Quits Locust entirely, X seconds after the run is finished"
    },
    {
      "names": [
        "--web-auth"
      ],
      "description": "Turn on Basic Auth for the web interface. e.g. username:password"
    },
    {
      "names": [
        "--tls-cert"
      ],
      "description": "Optional path to TLS certificate to use to serve over HTTPS",
      "takes_arg": true,
      "arg": {
        "name": "tls-cert",
        "description": "Optional path to TLS certificate",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--tls-key"
      ],
      "description": "Optional path to TLS private key to use to serve over HTTPS",
      "takes_arg": true,
      "arg": {
        "name": "tls-key",
        "description": "Optional path to TLS private key",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--class-picker"
      ],
      "description": "Enable select boxes in the web interface to choose from all available User classes and Shape classes"
    },
    {
      "names": [
        "--master"
      ],
      "description": "Set locust to run in distributed mode with this process as master"
    },
    {
      "names": [
        "--master-bind-host"
      ],
      "description": "Interfaces (hostname, ip) that locust master should bind to"
    },
    {
      "names": [
        "--master-bind-port"
      ],
      "description": "Port that locust master should bind to"
    },
    {
      "names": [
        "--expect-workers"
      ],
      "description": "How many workers master should expect to connect before starting the test (only when --headless/autostart is used)"
    },
    {
      "names": [
        "--expect-workers-max-wait"
      ],
      "description": "How long should the master wait for workers to connect before giving up. Defaults to wait forever"
    },
    {
      "names": [
        "--worker"
      ],
      "description": "Set locust to run in distributed mode with this process as worker"
    },
    {
      "names": [
        "--master-host"
      ],
      "description": "Host or IP address of locust master for distributed load testing. Only used when running with --worker. Defaults to 127.0.0.1"
    },
    {
      "names": [
        "--master-port"
      ],
      "description": "Show list of possible User classes and exit"
    },
    {
      "names": [
        "--csv"
      ],
      "description": "Store current request stats to files in CSV format"
    },
    {
      "names": [
        "--csv-full-history"
      ],
      "description": "Store each stats entry in CSV format to _stats_history.csv file. You must also specify the '--csv' argument to enable this"
    },
    {
      "names": [
        "--print-stats"
      ],
      "description": "Print stats in the console"
    },
    {
      "names": [
        "--only-summary"
      ],
      "description": "Only print the summary stats"
    },
    {
      "names": [
        "--reset-stats"
      ],
      "description": "Reset statistics once spawning has been completed. Should be set on both master and workers when running in distributed mode"
    },
    {
      "names": [
        "--html"
      ],
      "description": "Store HTML report to file path specified"
    },
    {
      "names": [
        "--skip-log-setup"
      ],
      "description": "Disable Locust's logging setup. Instead, the configuration is provided by the Locust test or Python defaults. --loglevel LOGLEVEL, -L LOGLEVEL"
    },
    {
      "names": [
        "--loglevel"
      ],
      "description": "Choose between DEBUG/INFO/WARNING/ERROR/CRITICAL. Default is INFO",
      "takes_arg": true,
      "arg": {
        "name": "loglevel",
        "suggestions": [
          "INFO",
          "WARNING",
          "DEBUG",
          "ERROR",
          "CRITICAL"
        ]
      }
    },
    {
      "names": [
        "--logfile"
      ],
      "description": "Path to log file. If not set, log will go to stderr",
      "takes_arg": true,
      "arg": {
        "name": "logfile",
        "description": "Path to log file",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--show-task-ratio"
      ],
      "description": "Print table of the User classes' task execution ratio. Use this with non-zero --user option if some classes define non-zero fixed_count attribute"
    },
    {
      "names": [
        "--show-task-ratio-json"
      ],
      "description": "Print json data of the User classes' task execution ratio. Use this with non-zero --user option if some classes define non-zero fixed_count attribute"
    },
    {
      "names": [
        "--exit-code-on-error"
      ],
      "description": "Sets the process exit code to use when a test result contain any failure or error"
    },
    {
      "names": [
        "--equal-weights"
      ],
      "description": "Use equally distributed task weights, overriding the weights specified in the locustfile"
    },
    {
      "names": [
        "--enable-rebalancing"
      ],
      "description": "Allow to automatically rebalance users if new workers are added or removed during a test run"
    },
    {
      "names": [
        "-T",
        "--tags"
      ],
      "description": "List of tags to include in the test, so only tasks with any matching tags will be executed"
    },
    {
      "names": [
        "--E",
        "--exclude-tags"
      ],
      "description": "List of tags to exclude from the test, so only tasks with no matching tags will be executed"
    }
  ]
}
