Locust是一个分布式用户负载测试工具。
安装、使用 这里不做介绍。
在此简单解读下用Locust做负载测试时的启动命令。
并没有全部介绍,只介绍一些常用的.
-h: 查看帮助
-H: 被测服务器的域名。
如果想启动的时候,不加“-H”参数,那么在启动脚本里面的就要加上 host="http://sample",写在HttpLocust子类里面。
脚本里面写 get或post请求 的时候,url只写路径例如 “/login”。
--web-host:locust服务的web界面,用于配置 并发量 与 启动量。在web界面可以实时查看压测结果。
(如果是分布式,用于master,不用于slave)(理解的可能不对)
--master: 做分布式压测时,标记哪台用做主机。
主机只用来做统计,并不用来施压。施压的任务留给slave分机做。如果想主机也做来施压,就要在主机上也启动一个slave。
--slave:做分布式压测时,标记哪些用做分机。分机的主要任务是进行施压。
-f:脚本路径。可以写相对路径或是绝对路径。如果是脚本当前目录下,就写相对路径。如果不是,就写绝地路径。
--master-host: 做分布式压测时,指定主机的IP。只用于slave。如果没有指定,默认是本机“127.0.0.1”。
--master-port: 做分布式压测时,指定主机的port。只用于slave。如果没有指定且主机没有修改的话,默认是5557。
--master-bind-host: 做分布式压测时,指定分机IP。只用于master。如果没有指定,默认是所有可用的IP(即所有标记主机IP的slave)
--master-bind-port:做分布式压测时,指定分机port。默认是5557与5558。
--no-web:不带web界面。使用这个参数时,必须指定 -c、-r。
-c: 用户数。
-r: 每秒启动用户数。
-t: 运行时长。在t秒后停止。
-L:打印的日志级别,默认INFO。
--logfile:同-f
-V:查看Locust版本。
--host:同-H
PS: 如果参数是以“--”开头,则以=连接实参。例如“--host=http://sample”。如果不是,则以空格连接实参。例如“-H http://sample”
以下是常用的组合:
单机压测:
locust -f filepath # 脚本指定host
locust -f filepath -H http://sample # 脚本未指定host
分布压测假定脚本指定host:
master:
locust -f filepath --master
slave:
locust -f filepath --slave --master-host=192.168.2.221
一般来说,上面几行命令够用了。
命令行查看
(venv) E:\Workspace\pressure_test>Locust -h
Usage: locust [options] [LocustClass [LocustClass2 ... ]]
Options:
-h, --help show this help message and exit
-H HOST, --host=HOST Host to load test in the following format:
http://10.21.32.33
--web-host=WEB_HOST Host to bind the web interface to. Defaults to '' (all
interfaces)
-P PORT, --port=PORT, --web-port=PORT
Port on which to run web host
-f LOCUSTFILE, --locustfile=LOCUSTFILE
Python module file to import, e.g. '../other.py'.
Default: locustfile
--csv=CSVFILEBASE, --csv-base-name=CSVFILEBASE
Store current request stats to files in CSV format.
--master Set locust to run in distributed mode with this
process as master
--slave Set locust to run in distributed mode with this
process as slave
--master-host=MASTER_HOST
Host or IP address of locust master for distributed
load testing. Only used when running with --slave.
Defaults to 127.0.0.1.
--master-port=MASTER_PORT
The port to connect to that is used by the locust
master for distributed load testing. Only used when
running with --slave. Defaults to 5557. Note that
slaves will also connect to the master node on this
port + 1.
--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 Disable the web interface, and instead start running
the test immediately. Requires -c and -r to be
specified.
-c NUM_CLIENTS, --clients=NUM_CLIENTS
Number of concurrent Locust users. Only used together
with --no-web
-r HATCH_RATE, --hatch-rate=HATCH_RATE
The rate per second in which clients are spawned. Only
used together with --no-web
-t RUN_TIME, --run-time=RUN_TIME
Stop after the specified amount of time, e.g. (300s,
20m, 3h, 1h30m, etc.). Only used together with --no-
web
-L LOGLEVEL, --loglevel=LOGLEVEL
Choose between DEBUG/INFO/WARNING/ERROR/CRITICAL.
Default is INFO.
--logfile=LOGFILE Path to log file. If not set, log will go to
stdout/stderr
--print-stats Print stats in the console
--only-summary Only print the summary stats
--no-reset-stats Do not reset statistics once hatching has been
completed
-l, --list Show list of possible locust classes and exit
--show-task-ratio print table of the locust classes' task execution
ratio
--show-task-ratio-json
print json data of the locust classes' task execution
ratio
-V, --version show program's version number and exit
(venv) E:\Workspace\pressure_test>
网友评论