1. 程式人生 > 實用技巧 >Locust學習筆記9——分散式壓測

Locust學習筆記9——分散式壓測

  引言

  我們知道Jmeter單機併發數並不高,一般配置也就支援1000左右。那麼就引出了分散式壓測的概念,Jmeter通過排程機(Master)與執行機(Slave)來實現。而Locust也支援分散式壓測,類似Jmeter一樣,當一臺機器無法模擬所需的使用者數量時候,可以通過多臺Slave機器來實現,Master機器主負責分發任務和下達指令。

  分散式場景

  Locust分散式場景有兩種:

  1.單臺機器設定Master和Slave

  2.多臺機器時,一臺排程機(Master),其他機器設定執行機(Slave)

  前提:

  1、主機(master)裝好locust環境

  2、從機(slave)裝好locust環境

  3、主機/從機上都要有執行的Python檔案(你自己寫的壓測指令碼)

  備註:環境安裝可以從頭看起。

  單機分散式壓測

  啟動方式:Locust中使用主從模式啟動多個程序(使用多核處理器的能力),先啟動 master,主處理器負責分發任務,然後再逐一啟動若干個 slave(slave 的節點數要小於等於本機的處理器數),從機負責執行任務。

  本篇以WIN10專業版為例,檢視CPU是幾核心的,可以開啟工作管理員如下:

  

  我的電腦CPU是6核的。

  開啟cmd,在dos下輸入:

locust -f locust_batch_data.py --master

  前面說過,master是不會執行任務的,只是分發任務的,如圖:

  現在可以啟動Slave機器,我們開啟多個dos視窗,輸入命令:

locust -f locust_batch_data.py --slave

  再開啟master的dos視窗看看:

  紅色框框是計算機名稱,如果不確定,可以開啟我的電腦→系統檢視:

  然後開啟瀏覽器,輸入:http://localhost:8089/,我啟動了6個slave,正常的話,slave數應該顯示6。

  

  多機分散式壓測

  前面已經說過,當一臺電腦無法滿足足夠大的併發使用者數量時,就需要多臺機器來模擬請求。

  方式:一臺作為排程機(Master),其他電腦作為(執行機(Slave),啟動時,需要指定主節點的IP/主機名,如:" --slave--master-host "

locust -f locust_batch_data.py --master

  接著在其它機器上(環境和主節點環境一致,都需要有locust的執行環境和指令碼),啟動 slave 節點,設定 --master-host

locust -f locust_batch_data.py --slave --master-host=192.168.*.*

  如圖:

  

使用計算機名稱:

locust -f locust_batch_data.py --slave --master-host=WIN10-804191526

  

  引數介紹:

  1、--master 以主服務模式啟動Locust,web介面開啟也是以此機IP為地址。

  2、--slave 以從屬服務模式啟動Locust

  3、master-host=192.168.x.xx 用於從屬服務指定主服務的地址

  4、--master-port=8089 用於從屬服務指定主服務的埠

  無網頁模式啟動, -c是設定併發使用者數,-r是設定每秒進入使用者數,-t設定執行時長

locust -f locust_batch_data.py --no-web  -c 100 -r 10

  總結

  Locust分散式壓測就介紹到這裡,另外,對軟體測試,自動化測試,測試開發及安全測試感興趣的小夥伴,可以入群一起學習和討論。