(六)Locust 分布式運行
參考:官方文檔
分布式運行Locust
一旦單臺機器不夠模擬足夠多的用戶時,Locust支持運行在多臺機器中進行壓力測試。
為了實現這個,你應該在 master 模式中使用--master
標記來啟用一個 Locust 實例。這個實例將會運行你啟動測試的 Locust 交互網站並查看實時統計數據。master 節點的機器自身不會模擬任何用戶。相反,你必須使用 --slave
標記啟動一臺到多臺 Locustslave 機器節點,與標記 --master-host
一起使用(指出master機器的IP/hostname)。
常用的做法是在一臺獨立的機器中運行master,在slave機器中每個處理器內核運行一個slave實例。
註意:master 和每一臺 slave 機器,在運行分布式測試時都必須要有 locust 的測試文件。
示例
在 master 模式下啟動 Locust:
locust -f my_loucstfile.py --master
在每個 slave 中執行(192.168.0.14 替換為你 msater 的IP):
locust -f my_locustfile.py --slave --master-host=192.168.0.14
參數說明
參數
–master
設置 Locust 為 master 模式。網頁交互會在這臺節點機器中運行。
–slave
設置 Locust 為 slave 模式。
–master-host=X.X.X.X
可選項,與 --slave
一起結合使用,用於設置 master 模式下的 master 機器的IP/hostname(默認設置為127.0.0.1)
–master-port=5557
可選項,與 --slave
一起結合使用,用於設置 master 模式下的 master 機器中 Locust 的端口(默認為5557)。註意,locust 將會使用這個指定的端口號,同時指定端口+1的號也會被占用。因此,5557 會被使用,Locust將會使用 5557 和 5558。
–master-bind-host=X.X.X.X`
可選項,與 --master
一起結合使用。決定在 master 模式下將會綁定什麽網絡接口。默認設置為*(所有可用的接口)。
–master-bind-port=5557
可選項,與 --master
一起結合使用。決定哪個網絡端口 master 模式將會監聽。默認設置為 5557。註意 Locust 會使用指定的端口號,同時指定端口+1的號也會被占用。因此,5557 會被使用,Locust 將會使用 5557 和 5558。
–expect-slaves=X
在 no-web 模式下啟動 master 時使用。master 將等待X連接節點在測試開始之前連接。
效果
如下圖,我啟動了一個 master 和兩個 slave,由兩個 slave 來向被測試系統發送請求。
(六)Locust 分布式運行