Locust学习笔记7——no-web模式运行

  引言

  我们知道Jmeter可以用命令去运行脚本,叫做非GUI模式。而Locust同样也有非GUI模式,不过叫做no-web模式运行,windows系统下也是dos下执行命令。

  命令详情

locust参数选项:
-h, --help           
帮助信息
-H HOST, --host=HOST 
指定被测试的主机,如下格式: http://10.21.32.33
--web-host=WEB_HOST   
指定运行 Locust Web 页面的主机. Defaults to '' (all interfaces)
-P PORT, --port=PORT, --web-port=PORT
指定 –web-host 的端口,默认是8089
-f LOCUSTFILE, --locustfile=LOCUSTFILE
指定运行 Locust 性能测试文件,如 '../other.py'. 默认: locustfile
--csv=CSVFILEBASE, --csv-base-name=CSVFILEBASE
以CSV格式存储当前请求测试数据.csv文件存放当前目录
--master
将locast设置为以该进程为主进程的分布式模式运行
--slave
将locast设置为以分布式模式运行,并将此进程作为从属进程
--master-host=MASTER_HOST
用于分布式负载测试的ocast master的主机或IP地址。仅在与一起运行时使用 --slave. Defaults to 127.0.0.1.
--master-port=MASTER_PORT
要连接到该端口的端口由用于分布式负载测试的ocast master使用。仅在运行时使用--slave。默认值为5557。请注意,从服务器还将连接到此端口+1上的主节点。
--master-bind-host=MASTER_BIND_HOST
locust主机应绑定到的接口(主机名、IP)。仅在与--master一起运行时使用。默认为*(所有可用接口)。
--master-bind-port=MASTER_BIND_PORT
locust主机指定端口。仅在与--master一起运行时使用。默认值为5557。请注意,locast还将使用这个端口+1,因此在默认情况下,主节点将绑定到5557和5558。
--heartbeat-liveness=HEARTBEAT_LIVENESS
set number of seconds before failed heartbeat from slave
--heartbeat-interval=HEARTBEAT_INTERVAL
set number of seconds delay between slave heartbeats to master
--expect-slaves=EXPECT_SLAVES
 在开始测试之前,需要连接多少个从属主机(仅 --no-web 使用).
--no-web              
禁用Web界面,然后立即开始运行测试。要求指定-c和-r.
-c NUM_CLIENTS, --clients=NUM_CLIENTS
并发用户数. Only used togetherwith --no-web
-r HATCH_RATE, --hatch-rate=HATCH_RATE
每秒生成用户的速率. 和--no-web一起使用
-t RUN_TIME, --run-time=RUN_TIME
在指定时间后停止, 如 (300s,20m, 3h, 1h30m, etc.). 和--no-web一起使用
-L LOGLEVEL, --loglevel=LOGLEVEL
日志等级(DEBUG/INFO/WARNING/ERROR/CRITICAL.默认INFO.) 
--logfile=LOGFILE     
日志文件的路径。如果未设置,日志将转到stdout/stderr
--print-stats         
在控制台中打印统计信息
--only-summary        
只打印摘要统计信息
--no-reset-stats     
 [DEPRECATED] Do not reset statistics once hatching has been completed. This is now the default behavior. See --reset-stats to disable
--reset-stats         
Reset statistics once hatching has been completed. Should be set on both master and slaves when running in distributed mode
-l, --list 
显示可能的locust类列表并退出
--show-task-ratio
打印locust类任务执行率表
print table of the locust classes' task execution ratio
--show-task-ratio-json
打印locust类任务执行率的JSON数据
  -V, --version       
  locust版本

  

  无Web-UI模式

  在没有Web UI的情况下运行locust - 可以打开cmd 通过使用--no-web参数,

  • -c指定要生成的Locust用户数
  • -r每秒启动虚拟用户数

  先cd到脚本当前目录,然后执行指令:

locust -f locust_batch_data.py --no-web -c 1 -r 1

   备注:这里的脚本用的是上篇文章讲的,这里就不再重复了。

  设置运行时间

  如果要指定测试的运行时间,可以使用--run-time

locust -f locust_batch_data.py --no-web -c 1 -r 1 --run-time 10

  

  或使用-t参数

locust -f locust_batch_data.py --no-web -c 1 -r 1 -t 10

  运行时间单位,如果不写单位默认是s,也可以指定小时h,分钟m,可以参考以下时间格式

  • 10s 10秒(不写单位默认s)
  • 5m 表示5分钟
  • 1h 1小时
  • 1m30s 1分30秒

  导出CSV格式报告

  您可能希望通过CSV文件保存的Locus结果。在这种情况下,有两种方法可以做到这一点。

  首先,使用Web UI运行Locust时,您可以在“下载数据”选项卡下点击下载CSV文件。

  • Download request statistics CSV
  • Download response time stats history CSV
  • Download failures CSV
  • Download exceptions CSV

  如果是界面的话,就如下图所示:

   也可以可以使用命令行志--no-web模式运行Locust,加上--csv=example参数保存前面两个CSV文件。

  –csv=example:example为CSV文件名的前缀;可以自行命名,如:result_csv

locust -f locust_batch_data.py --no-web --csv=example -c 1 -r 1 -t 10

  

  使用--csv=example会自动保存两个文件到当前脚本目录example_distribution.csv、example_stats.csv:

   将example_stats.csv打开效果展示:

  日志处理

   Locust带有基本的日志记录配置,可以选择采用–loglevel和/或–logfile修改配置。如果要控制日志记录配置,则可以提供该–skip-log-setup标志,该标志将忽略其他参数。

   参数说明:
  --skip-log-setup:禁用日志记录设置。但是可以由python提供日志功能;

locust -f locust_batch_data.py --no-web --csv=example -c 1 -r 1 -t 10  --skip-log-setup

   --loglevel:设置日志的级别;可以设置为 DEBUG/INFO/WARNING/ERROR/CRITICAL。默认的为info级别;简写为 -L

   --logfile:日志文件的路径,如果不设置,则显示在命令提示界面:

  打开locust.log文件,查看:

  总结

  locust非GUI模式运行已经讲完,对软件测试,自动化测试,测试开发及安全测试感兴趣的小伙伴,可以入群一起学习和讨论。

猜你喜欢

转载自www.cnblogs.com/liudinglong/p/13199354.html