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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章