引言
我們知道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分佈式壓測就介紹到這裏,另外,對軟件測試,自動化測試,測試開發及安全測試感興趣的小夥伴,可以入羣一起學習和討論。