一、Websocket接口性能測試的場景
場景1: 大量鏈接的創建和關閉——不斷模擬大量用戶對Websocket鏈接的創建、關閉過程。
場景2: 長時間保持大量連接——創建大量鏈接,保持鏈接較長時間。
場景3:大量推送消息——可以少量鏈接較長時間保持,不斷觸發消息推送
二、測試工具
JMeter
下載插件及依賴包
插件地址:https://bitbucket.org/pjtr/jmeter-websocket-samplers/downloads/?spm=a2c4g.11186623.2.23.363f59572g7WZB
需要的依賴包:
將下載的插件包、依賴包放到 JMeter的 lib\ext 目錄下,之后啟動JMeter。
三、測試步驟
1、步驟一
右鍵單擊左側導航樹中的 Test Plan,選擇
右鍵單擊左側導航樹中的 Test Plan,選擇
右鍵單擊左側導航樹中的 Test Plan,選擇
Sampler 名稱 | 說明 |
---|---|
WebSocket Open Connection | 建立一個 WebSocket 連接 |
WebSocket Ping/Pong | 控制幀,發送 ping 並接收 pong |
WebSocket request-response Sampler | 發送和接收文本或二進制 WebSocket 幀 |
WebSocket Single Write Sampler | 發送文本或二進制 WebSocket 幀 |
WebSocket Single Read Sampler | 接收文本或二進制 WebSocket 幀 |
WebSocket Close | 關閉 Websocket 連接 |
下一步,需要配置這些 Sampler。
2、步驟二
下面將演示如何在測試場景中添加並配置 Sampler。以下為簡單示例,您可以根據業務需要進行調整。

相關的配置如下:
配置項 | 示例值 | 說明 |
---|---|---|
協議 | WS | 協議可以是 WS 或 WSS(Secure WebSocket)。使用 WSS 進行加密連接。 |
Server name or IP | echo.websocket.org | 域名或 IP |
Port | 443 | 端口 |
Path | - | 可為空 |
Connection timeout(ms) | 20000 | 建連的超時時間 |
Read timeout(ms) | 6000 | 等待服務器響應的超時時間 |

相關配置如下:
配置項 | 示例值 | 說明 |
---|---|---|
Connection | use existing connection | 創建新的連接或復用已有連接。 |
數據類型 | 文本 | 指定數據類型、請求數據和響應超時值。 |
Request data | PTS | 請求數據,這里以文本為例 |
Response(read)timeout(ms) | 6000 | 響應超時時間 |

相關配置如下:
配置項 | 示例值 | 說明 |
---|---|---|
Connection | use existing connection | 創建新的連接或復用已有連接 |
數據類型 | 文本 | 指定數據類型、請求數據和響應超時值 |
Request data | PTS | 請求數據,這里以文本為例 |
Response(read)timeout(ms) | 6000 | 響應超時時間 |

相關配置如下:
配置項 | 示例值 | 說明 |
---|---|---|
Connection | use existing connection | 創建新的連接或復用已有連接 |
數據類型 | 文本 | 指定數據類型、請求數據和響應超時值 |
Response(read)timeout(ms) | 6000 | 響應超時時間 |

相關配置如下:
配置項 | 示例值 | 說明 |
---|---|---|
Close Status | 二進制 | 關閉連接時定義的狀態碼,數據幀的頭兩個字節 |
Response(read)timeout(ms) | 6000 | 響應超時時間 |
此采樣器將關閉現有的 WebSocket 連接,由於是協商關閉,顯示原因為 “1000:sampler requested close”。
3、步驟三:運行腳本
腳本編輯完成后,單擊頁面頂部的開始按鈕,運行腳本。
通過 View Results Tree 監聽器查看腳本是否運行正常。在左側導航樹中,選擇View Results Tree,檢查所有 Sampler 是否都配置正確並符合預期。在該監聽器中,如果 Sampler 前面有綠色對勾表示運行正常。
如出現運行異常的 Sampler,請參見步驟二:創建腳本進行調試。
部分示例結果如下:
WebSocket request-response Sampler
根據腳本配置,Request 信息如下:
根據腳本配置,Binary 格式的 Response data 如下:
WebSocket Single Read Sampler
根據腳本配置,Text 格式的 Response data 如下:
根據腳本配置,Binary 格式的 Response data 如下:
轉載:https://help.aliyun.com/document_detail/93627.html#section-rvj-q97-lii