Locust web模式
Locust默认使用该方式启动,启动后在本机打开http://localhost:8089/或http://[::1]:8089,可以看到Locust WEB页面,设置并发用户数及每秒请求数后即可开始性能测试。
Locust no-web模式
命令行运行 Locust 测试:
locust -f test.py --host=https://www.baidu.com --no-web -c 10 -r 2 -t 1m
启动参数:
–no-web 表示不使用Web界面运行测试。
-c 设置虚拟用户数。
-r 设置每秒启动虚拟用户数。
-t 设置设置运行时间。
Locust 参数说明
参数 |
说明 |
-h, –help |
查看帮助 |
-H HOST, –host=HOST |
指定被测试的主机,采用以格式:http://10.21.32.33 |
–web-host=WEB_HOST |
指定运行 Locust Web 页面的主机,默认为空 “。 |
-P PORT, –port=PORT, –web-port=PORT |
指定 –web-host 的端口,默认是8089 |
-f LOCUSTFILE, –locustfile=LOCUSTFILE |
指定运行 Locust 性能测试文件,默认为: locustfile.py |
–csv=CSVFILEBASE, –csv-base-name=CSVFILEBASE |
以CSV格式存储当前请求测试数据。 |
–master |
Locust 分布式模式使用,当前节点为 master 节点。 |
–slave |
Locust 分布式模式使用,当前节点为 slave 节点。 |
–master-host=MASTER_HOST |
分布式模式运行,设置 master 节点的主机或 IP 地址,只在与 –slave 节点一起运行时使用,默认为:127.0.0.1. |
–master-port=MASTER_PORT |
分布式模式运行, 设置 master 节点的端口号,只在与 –slave 节点一起运行时使用,默认为:5557。注意,slave 节点也将连接到这个端口+1 上的 master 节点。 |
–master-bind-host=MASTER_BIND_HOST |
Interfaces (hostname, ip) that locust master should bind to. Only used when running with –master. Defaults to * (all available interfaces). |
–master-bind-port=MASTER_BIND_PORT |
Port that locust master should bind to. Only used when running with –master. Defaults to 5557. Note that Locust will also use this port + 1, so by default the master node will bind to 5557 and 5558. |
–expect-slaves=EXPECT_SLAVES |
How many slaves master should expect to connect before starting the test (only when –no-web used). |
–no-web |
no-web 模式运行测试,需要 -c 和 -r 配合使用. |
-c NUM_CLIENTS, –clients=NUM_CLIENTS |
指定并发用户数,作用于 –no-web 模式。 |
-r HATCH_RATE, –hatch-rate=HATCH_RATE |
指定每秒启动的用户数,作用于 –no-web 模式。 |
-t RUN_TIME, –run-time=RUN_TIME |
设置运行时间, 例如: (300s, 20m, 3h, 1h30m). 作用于 –no-web 模式。 |
-L LOGLEVEL, –loglevel=LOGLEVEL |
选择 log 级别(DEBUG/INFO/WARNING/ERROR/CRITICAL). 默认是 INFO. |
–logfile=LOGFILE |
日志文件路径。如果没有设置,日志将去 stdout/stderr |
–print-stats |
在控制台中打印数据 |
–only-summary |
只打印摘要统计 |
–no-reset-stats |
Do not reset statistics once hatching has been completed。 |
-l, –list |
显示测试类, 配置 -f 参数使用 |
–show-task-ratio |
打印 locust 测试类的任务执行比例,配合 -f 参数使用. |
–show-task-ratio-json |
以 json 格式打印 locust 测试类的任务执行比例,配合 -f 参数使用. |
-V, –version |
查看当前 Locust 工具的版本. |
Locust 分布式运行
一旦单台机器不够模拟足够多的用户时,Locust支持运行在多台机器中进行压力测试。
为了实现这个,你应该在 master 模式中使用--master标记来启用一个 Locust 实例。这个实例将会运行你启动测试的 Locust 交互网站并查看实时统计数据。master 节点的机器自身不会模拟任何用户。相反,你必须使用 --slave 标记启动一台到多台 Locustslave 机器节点,与标记 --master-host 一起使用(指出master机器的IP/hostname)。
常用的做法是在一台独立的机器中运行master,在slave机器中每个处理器内核运行一个slave实例。
示例
在 master 模式下启动 Locust:
locust -f my_loucstfile.py --master
在每个 slave 中执行(192.168.0.14 替换为你 msater 的IP):
locust -f my_locustfile.py --slave --master-host=192.168.0.14 –master-port=8089