基於websocket協議的壓力測試

2021-08-29 16:30:09 字數 1083 閱讀 1610

最近客戶端實現了乙個基於websocket的訊息推送功能:長連線網路開關下發開後啟動,然後保持鏈結,每隔15分鐘發一次心跳包,伺服器有資料時直接下發生效,因此需要對伺服器進行壓測。本次通過寫python指令碼的方法模擬併發進行壓力測試,相關測試方法如下~

websocket是一種在單個tcp連線上進行全雙工通訊的協議。websocket通訊協議於2023年被ietf定為標準rfc 6455,並由rfc7936補充規範。

websocket使得客戶端和伺服器之間的資料交換變得更加簡單,允許服務端主動向客戶端推送資料。在websocketapi中,瀏覽器和伺服器只需要完成一次握手,兩者之間就直接可以建立永續性的連線,並進行雙向資料傳輸。

編寫指令碼實現併發請求併發

搭建測試環境

①找1臺liunx機器,搭建python執行環境,安裝指令碼支援的包、模組

②執行websocket指令碼,保證指令碼正常執行

③ 編寫run_test.sh指令碼,執行多個websocket.py,單機大約可同時併發大約5w~6w的tcp鏈結,視linux 系統核心而定(因為本次需要同時併發22w,共4臺liunx機器,所以單台併發6w左右)

有些linux系統最大tcp鏈結數比較小,無法支援同時併發6w量的tcp鏈結?

原因:最大tcp連線數和系統允許開啟的最大檔案數,使用者允許開啟的最大檔案數,tcp網路連線可用的埠範圍有關,取上述的最小值;

一般的設定規則為:系統最大檔案數》可用埠》使用者最大檔案數

對測試技術感興趣的同學,歡迎加qq群175317069,一起學習,相互討論。

加qq群175317069,免費領取資料

基於node實現websocket協議

一 協議 websocket是一種基於tcp之上的客戶端與伺服器全雙工通訊的協議,它在html5中被定義,也是新一代webapp的基礎規範之一。它突破了早先的ajax的限制,關鍵在於實時性,伺服器可以主動推送內容 到客戶端!可能的應用有 多人 遊戲,即時聊天,實時監控,遠端桌面,新聞伺服器等等。對於...

WebSocket握手協議

connection keep alive 客戶端 啦啦啦,有沒有新資訊 request 服務端 沒有 response 客戶端 啦啦啦,有沒有新資訊 request 服務端 沒有。response 客戶端 啦啦啦,有沒有新資訊 request 服務端 你好煩啊,沒有啊。response 客戶端 啦...

WebSocket協議詳解

1.websocket 是什麼 websocket 是html5提出的乙個協議規範,參考rfc6455 websocket,通過乙個握手的機制,客戶端 瀏覽器 和伺服器 webserver 之間建立乙個tcp連線,從而方便c s之間的通訊。在websocket出現之前 web互動一般是基於 http...