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 |