Locust 命令启动参数解读

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>


推荐阅读更多精彩内容