您可以使用WebSocket壓測功能在PTS控制臺快速構建壓測場景,實現壓測。本文介紹如何對WebSocket進行壓測。
背景信息
WebSocket實現了客戶端與服務端之間的雙向數據傳輸,在消息推送、在線聊天等實時通信場景下均有廣泛應用。目前常用的WebSocket壓測方法是通過在壓測工具(如JMeter壓測工具)中安裝相應的WebSocket壓測插件實現壓測。但搭建JMeter壓測環境需要一定的時間成本和代碼基礎。PTS的WebSocket壓測功能可以幫您解決這些問題。您可以通過PTS控制臺快速構建WebSocket壓測場景。在完成壓測后,還能通過生成的壓測報告查看壓測具體詳情,并結合壓測數據優化系統。
功能入口
- 登錄PTS控制臺,在左側導航欄選擇 ,然后單擊WebSocket壓測。
- 在創建WebSocket場景頁面,填寫場景名。
- 在場景配置頁簽下,單擊+添加測試節點右側的圖標,為目標串聯鏈路添加所需測試節點。
場景配置
單擊串聯鏈路右側的圖標,展開串聯鏈路,并配置基本信息、出參、檢查點等信息。
基本配置
在串聯鏈路的基本配置頁簽設置壓測基本參數。具體配置如下。
- 建立連接:在施壓端與被壓測端之間建立WebSocket連接。WebSocket壓測所含的其余測試節點(如心跳、只讀、只寫和請求響應等)均依賴于連接的建立。
相關基本配置 說明 示例 壓測URL 需要進行壓測的WebSocket鏈接。 wss://echo.websocket.org 連接超時時間 施壓端與被壓測端建立連接的時間限制,單位為毫秒。 20000 響應超時時間 施壓端等待被壓測端響應的時間限制,單位為毫秒。 6000 - 心跳:檢測施壓端和被壓測端的連接狀態。
相關基本配置 說明 示例 請求類型 - 發送ping期望pong:施壓端發送信息告知被壓測端自己處于存活狀態,期望被壓測端返回信息以確定被壓測端處于存活狀態。
- 僅發送pong:僅施壓端發送信息告知被壓測端自己處于存活狀態。
發送ping期望pong 響應超時時間 施壓端等待被壓測端響應的時間限制,單位為毫秒。 說明 僅在當配置場景為發送ping期望pong時設置。6000 - 只讀:施壓端僅接收被壓測端發送的信息。
相關基本配置 說明 示例 數據類型 可讀的數據類型,包括Text(文本類型)、Binary(二進制類型)和Any(任意類型)。 Text 響應超時時間 施壓端接收信息的時間限制,單位為毫秒。 6000 - 只寫:施壓端僅向被壓測端發送信息。
相關基本配置 說明 示例 數據類型 可讀的數據類型,包括Text(文本類型)、Binary(二進制類型)和Any(任意類型)。 Text 請求數據 施壓端發送信息的內容??筛鶕煌瑪祿愋洼斎胂鄳獌热?。 WebSocket Single Write Test - 請求響應:施壓端向被壓測端發送請求并接收響應。
相關基本配置 說明 示例 數據類型 可讀的數據類型,包括Text(文本類型)、Binary(二進制類型)和Any(任意類型)。 Text 請求數據 施壓端發送信息的內容??筛鶕煌瑪祿愋洼斎胂鄳獌热?。 WebSocket Request and Response Test 響應超時時間 被壓測端在接收信息后響應的時間限制,單位為毫秒。 6000 - 關閉連接:關閉施壓端與被壓測端建立的連接。
相關基本配置 說明 示例 狀態碼 表明關閉連接對應的狀態碼,可自定義。 1000 響應超時時間 施壓端接收到關閉連接狀態碼的時間限制,單位為毫秒。 6000
出參設置
在串聯鏈路的出參設置頁簽設置出參。具體操作,請參見接口出參。
檢查點設置
在串聯鏈路的檢查點設置頁簽設置檢查點。具體操作,請參見檢查點(斷言)。
控制器和定時器(可選)
您可以根據不同壓測場景的需求,添加控制器和定時器。
在場景配置頁簽下,單擊+添加控制器選擇所需的控制器。
循環控制器:控制所含測試節點應循環執行的次數。
選擇循環控制器后,單擊其右側的圖標,選擇添加需循環執行的測試節點,并設置循環次數。壓測時,會將此循環控制器下的測試節點按序執行設置的次數。
事務控制器:事務控制器下所包含的所有測試節點將會被算作為一個事務。其包含生成父樣本和是否包含樣品中定時器和前后程序的持續時間兩個設置項。
生成父樣本:
開啟開關:該事務控制器下各測試節點自身的壓測結果不會在壓測報告中獨立輸出,而會被聚合作為事務控制器的結果呈現在報告中。
關閉開關:該事務控制器以及其包含的測試節點的壓測結果均會顯示在報告中。
是否包含樣品中定時器和前后程序的持續時間:若選擇開啟此開關,則壓測報告中事務控制器的平均響應時間為所有測試節點、定時器以及前后置處理器的平均響應時間之和。若不開啟此開關,則事務控制器的平均響應時間僅為所有測試節點平均響應時間之和。
僅一次控制器:僅一次控制器下添加的節點僅會被執行一次。
在場景配置頁簽下,單擊+添加定時器選擇所需的定時器。
常量定時器:可設置停頓時長,表示壓測過程中,在此處停頓的時長,單位為毫秒。
同步定時器:可設置停頓時長和模擬用戶數,表示在一定時間內先等待達到一定用戶數然后觸發測試,但若在設定時間內未達到指定用戶數,則不會繼續等待,直接觸發測試。
統一隨機定時器:統一隨機定時器用于控制停頓時長,可設置延遲基準和可變跨度。延遲基準為固定停頓時間,可變跨度為隨機停頓時間的最大值。統一隨機定時器的停頓時長為延遲基準所設的固定停頓時間加上可變跨度所設時間范圍內的隨機值。各隨機值出現的概率相等。
高斯定時器:高斯定時器與統一隨機定時器類似,同樣用于設置停頓時長,可設置延遲基準和可變跨度。若要求隨機停頓時間符合正態分布,可使用高斯定時器。
固定吞吐量定時器:固定吞吐量定時器用于控制吞吐量,使測試節點按吞吐量執行??稍O置條件和對應的吞吐量。條件包含僅當前線程、所有活躍線程、當前鏈路下活躍線程、全局活躍線程和當前鏈路下全局活躍線程。
施壓配置
單擊施壓配置頁簽,設置壓測模式。
壓測配置 | 描述 |
壓力來源 | 本次壓測使用的網絡類型,包括公網和阿里云VPC內網兩種類型。具體詳情,請參見壓力來源(公網和VPC)。 |
并發數 | 虛擬用戶發起請求的個數。例如:100個并發數就是100個虛擬用戶同時發起了請求。 |
壓測時長 | 建議壓測時長不低于2分鐘,總時長默認不可超過24小時。 |
流量模型 | 并發數的遞增模型。選擇不同的流量模型,頁面右側的壓力預估圖會同時刷新。
|
遞增時長 | 全部并發從0到全部運行起來的時間。當流量模型選擇的是均勻遞增或者階梯遞增時,需要配置該遞增時長。 |
遞增階梯數 | 完成遞增時間段的階梯數。當流量模型選擇的是階梯遞增時,需要配置該遞增階梯數。 |
指定IP數 | 指定壓測來源的IP個數。具體詳情,請參見指定施壓IP數。 |
流量地域定制 | 通過指定施壓機的地理位置,即可模擬當地的用戶流量。開啟后可對施壓機地域分布進行配置,從而實現施壓流量地域分布的定制化。具體詳情,請參見定制地域流量。 |
啟動壓測
您可以在創建壓測場景頁面左下方,單擊調試場景,對配置的場景進行調試,驗證配置是否正確。具體操作,請參見調試場景。然后單擊保存去壓測,在彈出的對話框中單擊確定,啟動壓測。
后續操作
查看壓測報告。具體操作,請參見查看多協議壓測報告。