之前一直沒有接觸過websocket協議,所以一直對websocket的壓測存在疑惑,在網上參考文章並不斷嘗試之后,終於有所得;第一次用jmeter的websoket插件,用的ws非加密協議,請求都能得到正常響應,但由於公司系統升級使用了wss加密協議,再次用該插件后發現報如下錯誤:
- Opening new connection
- Using response message pattern ""
- Using disconnect pattern ""
- Waiting for the server connection for 5000 MILLISECONDS
- Cannot connect to the remote server
於是在國外網站上找到了全英文答案,該jar包2014年起就不更新了。最后重新下載了新的websocketjar包,下載地址:https://download.csdn.net/download/qq_41954078/10636378 該包下載完成后直接放在jmeter的lib/ext目錄下,重啟jmeter即可使用;
在使用之前我們要知道我們的請求的地址與參數是什么,所以
第一步:抓包;在chrome瀏覽器中按F12可以看到相關數據如圖所示;
Frames下面中的數據就是請求與響應的數據,其中綠色箭頭代表請求的數據,紅色箭頭表示響應的數據;
第二步:新建jmeter測試計划;
a、第一個取樣器如圖:
1、代表協議類型,ws對應http,wss對應https;
2、請求服務器名稱,從抓包結果可以獲得;
3、請求端口號,從抓包結果可以獲得;
4、請求路徑,從抓包結果可以獲得;
5、連接5S后未連上超時,可以自己設置;
6、請求數據,從抓包結果可以獲得;;
7、響應6S后未成功超時,可以自己設置;
b:第二個取樣器如圖:在第一個取樣器已經建立連接的情況下,第二個取樣器直接選擇use existing connection即可繼續發送請求;
參考文章:
https://blog.csdn.net/wx19900503/article/details/79221264
https://blog.csdn.net/heart_1014/article/details/53606337 保持心跳
websocket壓測思路:
1、建立websocket鏈接 ;
2、在鏈接下保持心跳,使用jmeter循環控制器發送心跳保持鏈接;
3、參數化請求參數;如並發500個鏈接;