業(yè)務(wù)場(chǎng)景:我們有一個(gè)微直播服務(wù)弯汰,類(lèi)似于聊天室艰山。需要模擬主播切圖(學(xué)員會(huì)收到消息)、學(xué)員和游客發(fā)送消息咏闪,然后統(tǒng)計(jì)一共發(fā)出去多少條消息曙搬,學(xué)員成功收到了多少條消息。
業(yè)務(wù)流程:1鸽嫂,內(nèi)部用戶(hù)通過(guò)http協(xié)議登錄纵装,獲取assessToken和用戶(hù)名;2据某,通過(guò)token和用戶(hù)名和微直播id建立進(jìn)入直播間的websocket連接橡娄,學(xué)員發(fā)送消息,主播可以切換圖冊(cè)癣籽;3挽唉,游客直接使用直播id和昵稱(chēng)建立進(jìn)入直播間的websocket鏈接,發(fā)送消息筷狼。
一瓶籽,安裝jmeter的插件管理器,下載插件
1埂材,下載地址:https://jmeter-plugins.org/install/Install/
2塑顺,下載完成后,將下載的jar包放入 jmeter的 lib/ext目錄中俏险,然后重啟jmeter
3严拒,打開(kāi)jmeter— Options — Plugins Manager
二,安裝websocket插件
1竖独,在jmeter工具中糙俗,點(diǎn)擊Options — Plugins Manager
image.png
2,在Available Plugins標(biāo)簽下搜索websocket预鬓,選中WebSocket Samplers by Peter Doornbosch,然后點(diǎn)擊Apply Changes and Restart JMeter按鈕。
image.png
3格二,新建測(cè)試計(jì)劃劈彪,建立線程組,右鍵線程組>添加>取樣器,就可以看到WebSocket相關(guān)的sampler了
image.png
三顶猜,構(gòu)建業(yè)務(wù)場(chǎng)景
1沧奴,在jmeter中,幾個(gè)websocket請(qǐng)求意思大致如下:
image.png
2长窄,內(nèi)部用戶(hù)登錄后進(jìn)入直播間發(fā)送消息
-
通過(guò)后置處理器“json提取器”提取assessToken變量滔吠,命名為token。這里的參數(shù)我都是用的變量挠日,http協(xié)議就不多寫(xiě)了疮绷,直接上圖
image.png
image.png -
內(nèi)部用戶(hù)通過(guò)websocket鏈接直播間,提取 authToken嚣潜。我這里是從控制臺(tái)獲取的地址冬骚,部分參數(shù)使用的變量
image.png
image.png
image.png -
添加一個(gè)循環(huán)控制器,在控制器下添加一個(gè)http請(qǐng)求懂算,模擬內(nèi)部用戶(hù)發(fā)送消息
image.png -
給上一步中的http請(qǐng)求添加一個(gè)計(jì)數(shù)器只冻,并設(shè)置為全局變量
image.png
image.png
3,主播進(jìn)入直播間计技,發(fā)送消息( 主播登錄進(jìn)入直播間和內(nèi)部學(xué)員一樣喜德,不同的是主播id是固定值,這里不重復(fù)寫(xiě)了)
-
主播獲取相冊(cè)列表垮媒,提取圖片id
image.png
image.png -
主播切圖舍悯,添加計(jì)時(shí)器
image.png
image.png
4,游客進(jìn)入直播間涣澡,發(fā)送消息贱呐,添加計(jì)時(shí)器
游客只需要輸入昵稱(chēng)就能進(jìn)入直播間,昵稱(chēng)通過(guò)讀取CSV文件獲取
image.png
image.png
5入桂,獲取游客奄薇、學(xué)員和直播發(fā)送消息數(shù)
-
新添加一個(gè)線程,添加一個(gè)HTTP請(qǐng)求抗愁,消息體引用計(jì)數(shù)器的值
image.png -
內(nèi)部用戶(hù)線程數(shù)設(shè)置為1.循環(huán)10次馁蒂,主播+游客線程數(shù)設(shè)置為1,循環(huán)5次蜘腌。運(yùn)行結(jié)果如下:
image.png