配置
Locust的配置,可以通过三种方式进行。第一种是命令行执行选项,第二种是将配置写到环境变量中,第三种是通过配置文件进行配置。
命令行选项
locust --help
Usage: locust [options] [UserClass ...]
常用选项:
-h, --help 显示帮助消息并退出
-f <filename>, --locustfile <filename>
包含测试的Python文件或模块,
例如“my_test.py”。接受多个逗号分隔
.py文件、包名/目录或指向的url
远程locustfile。默认为“locustfile”。
--config <filename> 从中读取其他配置的文件。
-H <base url>, --host <base url>
主机负载测试,格式如下:
https://www.example.com
-u <int>, --users <int>
并发Locust用户的峰值数量。主要使用
与无头或自动启动一起。可以是
在测试期间通过键盘输入w、W(spawn
1,10个用户)和s,S(停止1,10用户)
-r <float>, --spawn-rate <float>
生成用户的速率为(每秒用户数)。主要是
与--headless或--autostart一起使用
-t <time string>, --run-time <time string>
在指定的时间量后停止,例如(300s,
20m、3h、1h30m等)。仅与一起使用
--headless 或 --autostart。默认为永远运行。
-l, --list 显示可能的用户类列表并退出
--config-users [CONFIG_USERS ...]
用户配置为JSON字符串或文件。列表
参数或JSON配置数组
Web UI 选项:
--web-host <ip> 将web界面绑定到的主机。默认为“*”
(所有接口)
--web-port <port number>, -P <port number>
运行web主机的端口
--headless 禁用web界面,然后立即开始测试。
使用-u和-t来控制用户数量和
运行时间
--autostart 立即开始测试(比如--headless,但是
不禁用web UI)
--autoquit <seconds> 完全退出Locust,运行后X秒
完成。仅与 --autostart一起使用。这个
默认设置是保持Locust运行,直到您按下CTRL+C关闭它
--web-login 使用登录页面保护web界面。
--tls-cert <filename>
用于提供服务的TLS证书的可选路径
HTTPS
--tls-key <filename> 用于提供服务的TLS私钥的可选路径
HTTPS
--class-picker 在web界面中启用选择框进行选择
从所有可用的用户类和形状类
主选项:
在分布式运行Locust时运行LocustMaster节点的选项。主节点需要连接到它的Worker节点,然后才能运行负载测试。
--master 将locust作为主节点启动,工作节点连接到该节点。
--master-bind-host <ip>
主机监听的IP地址,例如
'192.168.1.1'. 默认为*(全部可用接口)。
--master-bind-port <port number>
主机监听的端口。默认为5557。
--expect-workers <int>
延迟开始测试,直到达到此数量的workers
(仅与结合使用 --headless/ --autostart)。
--expect-workers-max-wait <int>
master等待workers连接时间。默认为永远等待
--enable-rebalancing 如果在测试运行期间添加或删除了新的worker,请重新分配用户。
实验。
Worker选项:
在分布式运行Locust时运行LocustWorker节点的选项。
通常只需要在workers上指定这些选项(和--locostfile),因为其他选项(-u、-r、-t、…)由主节点控制。
--worker 将locust设置为以分布式模式运行,并将此进程设置为worker。可以与设置相结合
--locustfile设置为“-”,以便从master下载。
--processes <int> 分流 locust 进程的数量,以启用系统。结合--worker标志或让它自动设置--worker和--master标志,
以实现一体化解决方案。在 Windows 上不可用。
实验。
--master-host <hostname>
要连接的locust主节点的主机名。
默认值127.0.0.1。
--master-port <port number>
主节点上要连接的端口。默认值为5557。
标记选项:
Locust任务可以使用@tag装饰器进行标记。这些选项允许指定在测试期间包含或排除哪些任务。
-T [<tag> ...], --tags [<tag> ...]
测试中要包含的标签列表,只会执行至少有一个匹配标签的任务
-E [<tag> ...], --exclude-tags [<tag> ...]
要从测试中排除的标签列表,只会执行没有匹配标签的任务
请求统计选项:
--csv <filename> 将请求统计数据以CSV格式存储到文件中。设置
此选项将生成三个文件:
<filename>_stats.csv、<filename>_stats_history.csv和
<filename>_failures.csv。前缀文件夹部分将自动创建
--csv-full-history 将每个统计条目以CSV格式存储到
_statshistory.csv文件。您还必须指定“--
csv”参数来启用此功能。
--print-stats 在UI运行中启用请求统计数据的定期打印
--only-summary 禁用请求统计信息的定期打印
--headless 运行
--reset-stats 生成完成后重置统计信息。
在分布式模式下运行时,应同时在master和worker上设置
--html <filename> 将HTML报告存储到指定的文件路径
--json 将JSON格式的最终统计数据打印到stdout。
可用于解析其他程序/脚本中的结果。
与--headless和--skip-log一起使用,仅用于json数据的输出。
日志记录选项:
--skip-log-setup 禁用Locust的日志记录设置。相反,配置是由Locust测试或Python默认值提供的。
--loglevel <level>, -L <level>
在DEBUG/INFO/WARNING/ERROR/CRITICAL之间进行选择。
默认值为INFO。
--logfile <filename> 日志文件的路径。如果未设置,日志将转到stderr
其他选项:
--show-task-ratio 打印用户类任务执行率表。
如果某些类定义了非零的fixed_count属性,请将其与非零--user选项一起使用。
--show-task-ratio-json
打印User类任务执行率的json数据。
如果某些类定义了非零的fixed_count属性,请将其与非零--user选项一起使用。
--version, -V 显示程序的版本号并退出
--exit-code-on-error <int>
设置测试结果包含任何失败或错误时使用的进程退出代码。默认为1。
-s <number>, --stop-timeout <number>
退出前等待模拟用户完成所有执行任务的秒数。
默认情况是立即终止。当运行分布式时,只需要在主服务器上指定。
--equal-weights 使用均匀分布的任务权重,覆盖locostfile中指定的权重。
User classes:
<UserClass1 UserClass2>
在命令行末尾,您可以列出要使用的User类(可用的User类可以用--list列出)。
LOCUST_USER_CLASS环境变量也可用于指定USER类。
默认设置是使用所有可用的用户类
示例:
locust -f my_test.py -H https://www.example.com
locust --headless -u 100 -t 20m --processes 4 MyHttpUser AnotherUser
有关更多详细信息,包括如何使用文件或环境变量设置选项,请参阅文档:
https://docs.locust.io/en/stable/configuration.html
环境变量
还可以通过环境变量设置选项。它们通常与命令行参数相同,但要求大写并前缀为LOCUST_:
Linux/macOS:
LOCUST_LOCUSTFILE=custom_locustfile.py locust
Windows:
> set LOCUST_LOCUSTFILE=custom_locustfile.py
> locust
配置文件
也可以在配置文件中以config或TOML文件格式设置选项。
Locust默认情况下将查找~/.locat.conf/locost.conf和./pyproject.toml。您可以使用–config标志指定其他文件。
locust --config custom_config.conf
以下是Locust支持的配置文件的一个快速示例:
locust.conf
locustfile = locust_files/my_locust_file.py
headless = true
master = true
expect-workers = 5
host = https://target-system
users = 100
spawn-rate = 10
run-time = 10m
tags = [Critical, Normal]
pyproject.toml
使用TOML文件时,配置选项应在[tool.pacic]部分中定义。
[tool.locust]
locustfile = "locust_files/my_locust_file.py"
headless = true
master = true
expect-workers = 5
host = "https://target-system"
users = 100
spawn-rate = 10
run-time = "10m"
tags = ["Critical", "Normal"]
所有可用的配置选项
以下是所有可用配置选项及其对应的环境和配置文件键的表:
命令行 | 环境变量 | 配置文件 | 描述 |
---|---|---|---|
-f , --locustfile |
LOCUST_LOCUSTFILE |
locustfile |
包含测试的Python文件或模块,例如“my_test.py”。接受多个逗号分隔的.py文件、包名/目录或远程locostfile的url。默认为“locostfile”。 |
-H , --host |
LOCUST_HOST |
host |
主机负载测试,格式如下:[https://www.example.com]( |
-u , --users |
LOCUST_USERS |
users |
并发Locust用户的峰值数量。主要与无头或自动启动一起使用。在测试过程中,可以通过键盘输入w、W(生成1个10个用户)和s、S(停止1个10用户)进行更改 |
-r , --spawn-rate |
LOCUST_SPAWN_RATE |
spawn-rate |
生成用户的速率为(每秒用户数)。主要与–headless 或 –autostart一起使用 |
-t , --run-time |
LOCUST_RUN_TIME |
run-time |
在指定时间后停止,例如(300s、20m、3h、1h30m等)。仅与 –headless 或 –autostart一起使用。默认为永远运行。 |
--config-users |
LOCUST_CONFIG_USERS |
config-users |
用户配置为JSON字符串或文件。可以提供参数列表或JSON配置数组 |
--web-host |
LOCUST_WEB_HOST |
web-host |
将web界面绑定到的主机。默认为“*”(所有接口) |
--web-port , -P |
LOCUST_WEB_PORT |
web-port |
运行web主机的端口 |
--headless |
LOCUST_HEADLESS |
headless |
禁用web界面,并立即开始测试。使用-u和-t控制用户数和运行时间 |
--autostart |
LOCUST_AUTOSTART |
autostart |
立即开始测试(类似–headless,但不禁用web UI) |
--autoquit |
LOCUST_AUTOQUIT |
autoquit |
运行结束X秒后,完全退出locust。仅与–autostart一起使用。默认设置是保持Locust运行,直到您使用CTRL+C将其关闭 |
--web-login |
LOCUST_WEB_LOGIN |
web-login |
使用登录页面保护web界面。请参阅https://docs.locust.io/en/stable/extending-locust.html#authentication |
--tls-cert |
LOCUST_TLS_CERT |
tls-cert |
用于通过HTTPS提供服务的TLS证书的可选路径 |
--tls-key |
LOCUST_TLS_KEY |
tls-key |
用于通过HTTPS提供服务的TLS私钥的可选路径 |
--class-picker |
LOCUST_USERCLASS_PICKER |
class-picker |
在web界面中启用选择框,以便从所有可用的用户类和形状类中进行选择 |
--master |
LOCUST_MODE_MASTER |
master |
将locust作为主节点启动,工作节点连接到主节点。 |
--master-bind-host |
LOCUST_MASTER_BIND_HOST |
master-bind-host |
主机监听的IP地址,例如“192.168.1.1”。默认为*(所有可用接口)。 |
--master-bind-port |
LOCUST_MASTER_BIND_PORT |
master-bind-port |
主机监听的端口。默认为5557。 |
--expect-workers |
LOCUST_EXPECT_WORKERS |
expect-workers |
延迟启动测试,直到连接了此数量的工作线程(仅与-headless/-autostart结合使用)。 |
--expect-workers-max-wait |
LOCUST_EXPECT_WORKERS_MAX_WAIT |
expect-workers-max-wait |
master应该等待workers连接超时时间。默认为永远等待 |
--worker |
LOCUST_MODE_WORKER |
worker |
将locust设置为以分布式模式运行,并将此进程设置为worker。可以与将–locostfile设置为“-”相结合,从master下载它。 |
--processes |
LOCUST_PROCESSES |
processes |
分流locust进程的次数,以启用系统。与-worker标志结合使用,或让它自动设置多功能解决方案的-worker和-master标志。在Windows上不可用。实验。 |
--master-host |
LOCUST_MASTER_NODE_HOST |
master-host |
要连接的locust主节点的主机名。默认为127.0.0.1。 |
--master-port |
LOCUST_MASTER_NODE_PORT |
master-port |
主节点上要连接的端口。默认值为5557。 |
-T , --tags |
LOCUST_TAGS |
tags |
测试中要包含的标签列表,只会执行至少有一个匹配标签的任务 |
-E , --exclude-tags |
LOCUST_EXCLUDE_TAGS |
exclude-tags |
要从测试中排除的标签列表,只会执行没有匹配标签的任务 |
--csv |
LOCUST_CSV |
csv |
将请求统计数据以CSV格式存储到文件中。设置此选项将生成三个文件:_stats.csv、_stats_history.csv和<filename]_failures.csv。前缀的任何文件夹部分都将自动创建 |
--csv-full-history |
LOCUST_CSV_FULL_HISTORY |
csv-full-history |
将每个统计条目以CSV格式存储到_stats_history.CSV文件中。您还必须指定“–csv”参数才能启用此功能。 |
--print-stats |
LOCUST_PRINT_STATS |
print-stats |
在UI运行中启用请求统计数据的定期打印 |
--only-summary |
LOCUST_ONLY_SUMMARY |
only-summary |
在–headless运行期间禁用请求统计数据的定期打印 |
--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 |
设置测试结果包含任何失败或错误时使用的进程退出代码。默认为1。 |
-s , --stop-timeout |
LOCUST_STOP_TIMEOUT |
stop-timeout |
退出前等待模拟用户完成所有执行任务的秒数。默认情况是立即终止。当运行分布式时,只需要在主服务器上指定。 |