Locust - 如何使用Locust配置?


使用配置选项

  • 通过命令行参数来设置
  • 通过环境变量设置。例子:
LOCUST_LOCUSTFILE=custom_locustfile.py locust
  • 可以由配置文件格式的配置文件设置。默认情况下,Locust 将查找~/.locust.conf ./locust.conf,您可以使用 --config标志指定附加文件。配置读取的优先级如下:~/locust.conf -> ./locust.conf -> (file specified using --conf) -> env vars -> cmd args
# master.conf in current directory
locustfile = locust_files/my_locust_file.py
headless = true
master = true
expect-workers = 5
host = http://target-system
users = 100
spawn-rate = 10
run-time = 10m
locust --config=master.conf

所有可用的配置选项

Command line Environment Config file Description
-f, --locustfile LOCUST_LOCUSTFILE locustfile Python module to import, e.g. ‘../other_test.py’. Either a .py file or a package directory. Defaults to ‘locustfile’
-H, --host LOCUST_HOST host Host to load test in the following format: http://10.21.32.33
-u, --users LOCUST_USERS users 并发 Locust 用户的峰值数量。主要--headless--autostart 一起使用。可以在测试期间通过键盘输入 w、W(生成 1、10 个用户)和 s、S(停止 1、10 个用户)来更改
-r, --spawn-rate LOCUST_SPAWN_RATE spawn-rate 以(每秒用户数)生成用户的速率。主要与 –headless–autostart 一起使用
--hatch-rate LOCUST_HATCH_RATE hatch-rate ==SUPPRESS==
抑制速率的增长 false
-t, --run-time LOCUST_RUN_TIME run-time 在指定的时间后停止,例如(300s、20m、3h、1h30m 等)。仅与 --headless--autostart 一起使用。默认永远运行。
--web-host LOCUST_WEB_HOST web-host 将 Web 界面绑定到的主机。默认为“*”(所有接口)
--web-port, -P LOCUST_WEB_PORT web-port 运行 Web 主机的端口 false
--headless LOCUST_HEADLESS headless 禁用 Web 界面(使用终端)),并立即开始测试。使用 -u 和 -t 控制用户数和运行时间
--autostart LOCUST_AUTOSTART autostart 立即开始测试(不禁用 Web UI)。使用 -u 和 -t 控制用户数和运行时间。可同时使用终端以及web ui页面观察
--autoquit LOCUST_AUTOQUIT autoquit 在运行完成 X 秒后完全退出 Locust。仅与 --autostart 一起使用。默认设置是保持 Locust 运行,直到您使用 CTRL+C 将其关闭
--headful LOCUST_HEADFUL headful ==SUPPRESS== false
--web-auth LOCUST_WEB_AUTH web-auth 为 Web 界面打开基本身份验证。应按以下格式提供:username:password
--tls-cert LOCUST_TLS_CERT tls-cert 用于通过 HTTPS 提供服务的 TLS 证书的可选路径
--tls-key LOCUST_TLS_KEY tls-key 用于通过 HTTPS 提供服务的 TLS 私钥的可选路径
--master LOCUST_MODE_MASTER master 设置 locust 以分布式模式运行,此进程作为主进程
--master-bind-host LOCUST_MASTER_BIND_HOST master-bind-host locust master 应该绑定的接口(主机名、ip)。仅在使用 --master 运行时使用。默认为 *(所有可用接口)。
--master-bind-port LOCUST_MASTER_BIND_PORT master-bind-port ocust master 应该绑定的端口。仅在使用--master 运行时使用。默认为 5557。
--expect-workers LOCUST_EXPECT_WORKERS expect-workers 在开始测试之前,master 应该期望连接多少个worker(仅当使用--headless/autostart 时)。
--expect-workers-max-wait LOCUST_EXPECT_WORKERS_MAX_WAIT expect-workers-max-wait master在放弃之前应该等待worker连接多长时间。默认为永远等待
--worker LOCUST_MODE_WORKER worker 设置 locust 以分布式模式运行,此进程作为 worker
--master-host LOCUST_MASTER_NODE_HOST master-host 用于分布式负载测试的 locust master 的主机或 IP 地址。仅在使用 --worker 运行时使用。默认为 127.0.0.1。
--master-port LOCUST_MASTER_NODE_PORT master-port locust master 使用要连接的端口进行分布式负载测试。仅在使用--worker 运行时使用。默认为 5557。
-T, --tags LOCUST_TAGS tags 要包含在测试中的标签列表,因此只有具有任何匹配标签的任务才会被执行。
-E, --exclude-tags LOCUST_EXCLUDE_TAGS exclude-tags 要从测试中排除的标签列表,因此只会执行没有匹配标签的任务。
--csv LOCUST_CSV csv 以 CSV 格式将当前请求统计信息存储到文件中。设置此选项将生成三个文件:[CSV_PREFIX]_stats.csv、[CSV_PREFIX]_stats_history.csv 和 [CSV_PREFIX]_failures.csv
--csv-full-history LOCUST_CSV_FULL_HISTORY csv-full-history 将每个统计信息条目以 CSV 格式存储到 _stats_history.csv 文件中。您还必须指定“--csv”参数才能启用此功能。
--print-stats LOCUST_PRINT_STATS print-stats 在控制台中打印统计信息
--only-summary LOCUST_ONLY_SUMMARY only-summary 仅打印摘要统计信息
--reset-stats LOCUST_RESET_STATS reset-stats 用户增长完成后重置统计信息。在分布式模式下运行时,应在 master 和 worker 上都设置
--html LOCUST_HTML html 将 HTML 报告存储到指定的文件路径
--skip-log-setup LOCUST_SKIP_LOG_SETUP skip-log-setup 禁用 Locust 的日志记录设置。相反,配置由 Locust 测试或 Python 默认值提供。
--loglevel, -L LOCUST_LOGLEVEL loglevel 选择日志级别:DEBUG/INFO/WARNING/ERROR/CRITICAL.默认为 INFO.
--logfile LOCUST_LOGFILE logfile 日志文件的路径。如果未设置,日志将转到 stderr
--exit-code-on-error LOCUST_EXIT_CODE_ON_ERROR exit-code-on-error 设置当测试结果包含任何失败或错误时使用的进程退出代码
-s, --stop-timeout LOCUST_STOP_TIMEOUT stop-timeout 在退出之前等待模拟用户完成任何正在执行的任务的秒数。默认是立即终止。该参数只需要在运行 Locust 分布式时为主进程指定。

Custom arguments

请参阅自定义参数

Customization of statistics settings

Locust统计数据的默认配置设置在stats.py文件的常量中。通过覆盖这些值,可以将其调优到特定要求。要执行此操作,请导入lostem.stats模块并覆盖所需设置。

import locust.stats
locust.stats.CONSOLE_STATS_INTERVAL_SEC = 15

它可以直接在Locust文件中完成,也可以提取到单独的文件中供所有Locust文件共同使用。

Parameter name Purpose
STATS_NAME_WIDTH Width of column for request name in console output
STATS_TYPE_WIDTH Width of column for request type in console output
CSV_STATS_INTERVAL_SEC Interval for how frequently the CSV file is written if this option is configured
CONSOLE_STATS_INTERVAL_SEC Interval for how frequently results are written to console
CURRENT_RESPONSE_TIME_PERCENTILE_WINDOW Window size/resolution - in seconds - when calculating the current response time percentile
PERCENTILES_TO_REPORT The list of response time percentiles to be calculated & reported