引言
我們知道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模式運行已經講完,對軟件測試,自動化測試,測試開發及安全測試感興趣的小夥伴,可以入羣一起學習和討論。