1.Jmeter本身是支援HTTP方法,要測試WebSocket的接口,首先要安裝插件。 安裝插件的方法:
1)首先下載下傳插件管理器
① 通路網站:https://jmeter-plugins.org/install/Install/
②下載下傳jmeter-plugins-manager-1.3 .jar包
③ 将下載下傳的包放到 jmeter的lib/ext目錄,重新開機jmeter**

2) 下載下傳完後在Jmeter的項目下可檢視插件管理工具,點選進入可下載下傳支援websocket的插件
2.調試websocket請求是否正常,添加一個線程組,添加取樣器,添加websocket請求
1)檢視用的請求方法是ws還是wss
2)端口号要正确
3)填寫伺服器位址和路徑
4)添加檢視結果樹,觀察運作結果是否成功
3.完成以上前置條件之後就可以開始進入正題了,先分析業務場景&測試需求,開始進行編寫測試用例,這裡我們模拟的場景是:直播間同時登入60使用者數即60個使用者同時線上(數字設定比較小是為了友善做實驗,後期需要可以新增一定的使用者數量,比如200,500,1000等)和部分使用者在直播間發送消息進行聊天的場景,觀察直播間的畫面&視訊是否卡頓,伺服器的性能變化。
1)資料準備:60個使用者賬号&密碼
2)添加CSV資料檔案,将賬号密碼進行參數化
3)寫好登入接口,請求的data中的賬号密碼使用CSV檔案中的變量名(擷取txt檔案中實際的賬号密碼)
4)接下來就是進入直播間,即每個使用者登入後需要綁定房間才能成功進入直播間(這裡具體看實際的業務場景,需要對直播間的業務進行分析,比如從登入進入直播間需要用到的哪些接口&接口之間的資料關聯性等)。
①由于綁定到直播間需要用到一個id,這個id是websocket接口傳回的,而且每次傳回的都不一樣,是以這裡我們要把這個id進行參數化,然後給綁定房間的接口使用。
添加後置處理器,JSON提取器把clientId提取出來備用
②綁定房間接口和以及接下來會用到的發送消息接口需要用到登入狀态,這裡我們也把登入接口傳回的auth進行參數化。(同理把auth也進行參數化處理)
③ 添加配置元件-HTTP資訊頭管理器(将auth變量寫進去,之後需要用到登入的接口都會直接從這裡取,不需要再單獨寫)
④ 綁定房間接口,clientId使用動态提取的資料,傳參裡面的資料根據具體業務邏輯即可
⑤ 運作一下,在添加的察看結果樹中檢視請求傳回的參數是否正确(以下示例成功)
5)新增發送消息接口,檢視運作結果是否成功
遇到的問題總結:
問題描述:接口請求頻繁報錯
分析原因:接口限制,每分鐘請求不能超過60次(這是不同業務系統的特性,主要看有沒有做限制)
解決方法:在接口請求下加一個定時器,延遲1000ms請求1次,這樣1分鐘就不會超過60次了
問題描述:websocket傳回的clientId中帶有加号,通過綁定房間接口取到的資料加号就顯示為空,實際上就是id錯了,接口沒報錯,但使用者并未顯示為線上狀态(具體情況是登入成功60個使用者,隻有30個顯示為線上狀态,有時是25個)
分析原因:傳回的clientId部分不帶加号,部分帶了加号,是以導緻每次請求的時候上線的數量都是不一緻的
解決方法:将websocket中取到的資料即綁定房間的接口請求進行資料格式化
完成以上步驟之後(業務場景分析和調試),接下來我們就要來制定測試政策和監控分析性能了(請看下回分解!!!)