項目背景
最近有一個超級表格的項目測試,支持多人實時協作編輯表格 。項目選用了WebSocket這種基于 TCP 的全雙工通訊協議,它可以實現服務端和客戶端之間的主動數據推送,具有資源占用少、實時性高等特點,消息推送模式包括:單對單、單對多(全體廣播) 。
我們的項目使用WebSocket協議提交、廣播增量數據,并廣播提示其他用戶拉取全量數據以達到同步的目的 。

文章插圖
在性能測試中需要模擬多個用戶協同編輯一個文檔的場景,選用Jmeter作為測試工具 。
Jmeter插件
在Jmeter中測試WebSocket協議接口,需要先安裝WebSocket插件和依賴包;
需添加的插件為:
jmeter-websocket-samplers-1.2.1.jar
依賴包:jetty-http
jetty-io
jetty-util
websocket-api
websocket-client
websocket-common
把插件放到Jmeter的libext,依賴包放到Jmeter的lib目錄,打開Jmeter即可看到WebSocket相關的取樣器 。

文章插圖
這幾種取樣器的作用如下表所示:

文章插圖
常用的取樣器是WebSocket Open Connection和WebSocket request-response Sampler,前者用來建立連接不發(fā)送數據,后者建立連接并發(fā)送data或者只發(fā)data 。
創(chuàng)建腳本
在編寫腳本前先通過瀏覽器查看建立連接的過程,首先打開一個文檔時通過HTTP升級機制,使用HTTP的Upgrade和Connection協議頭的方式將連接升級為WebSocket 。

文章插圖
返回的狀態(tài)碼為101則說明WebSocket連接建立成功,協議已經變?yōu)榱薟ebSocket,如下圖所示,瀏覽器先后發(fā)送三個數據幀,包括CONNECT建立連接、SUBSCRIBE訂閱文檔、SEND類型為CLIENT_READY消息,客戶端收到的數據包括服務端返回的響應和每25s一個的心跳幀 。

文章插圖
后續(xù)通過WebSocket協議提交、廣播、拉取各種類型的增量數據 。
了解了這些之后就可以開始在測試場景中添加和配置WebSocket的sampler編寫腳本 。
1.右鍵單擊測試計劃,選擇添加->線程->線程組,將一個線程組添加到測試計劃 。
2.在線程組添加WebSocket request-response Sampler建立連接,選擇建立新連接,并發(fā)送請求數據如下:

文章插圖
說明:
(1)Connection:有兩個選項,第一項是使用已有連接,就是上一個WebSocket請求所建立的連接通道,選擇后Server URL全置灰只讀不可操作 。第二項是新建連接通道 。
(2)Server URL:可以發(fā)送ws協議和加密的WebSocket,即wss協議 。Server Name Or IP處填寫WebSocket服務器的地址,Port和Path依照實際填寫即可 。
(3)Request data:支持文本(包括JSON)和Binary二進制數據的發(fā)送,可以將瀏覽器中查看到的數據根據需求參數化之后填寫 。默認請求響應的超時時間為6S,超過這個時間報錯 。
因為要通過收到返回包含CONNECTED字樣的報文來判斷是否發(fā)送后續(xù)的消息 。需要把收到的服務端返回的其他數據幀過濾掉,再用斷言進行判斷 。
右鍵單擊WebSocket request-response Sampler添加->配置元件->WebSocket Text Frame Filter,配置條件過濾掉不需要的數據幀,如心跳幀等 。
以上關于本文的內容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!
「愛刨根生活網」www.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助:- 如何學跳鬼步舞基礎步跑步 如何學跳鬼步舞
- 兒童輪滑入門基礎教程 兒童輪滑入門技巧和方法
- 國畫入門教程視頻 國畫入門教程
- 手機無視密碼直接解壓 linux壓縮文件夾命令
- 男士啞鈴入門重量
- 流瑜伽基礎類體式 嬰兒式+桌式等
- 擒敵拳基礎動作講解 擒敵拳動作教程
- 爵士舞自學 培養(yǎng)節(jié)奏感和舞感基礎
- 國際象棋入門教學 國際象棋入門教程——教你怎么玩國際象棋
- 鬼步舞教學基礎舞步新手入門必看 鬼步舞新手教學,鬼步舞基礎講解優(yōu)質
