1. 程式人生 > >Jmeter對基於websocket協議的壓力測試

Jmeter對基於websocket協議的壓力測試

等待時間 ads 響應消息 一次 .org 完成 毫秒 新的 字節

Jmeter對基於websocket協議的壓力測試

WebSocket protocol 是HTML5一種新的協議。它實現了瀏覽器與服務器全雙工通信(full-duplex)。 瀏覽器和服務器只需要要做一個握手的動作,然後,瀏覽器和服務器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。在此WebSocket 協議中,為我們實現即時服務帶來了兩大好處: 1. Header 互相溝通的Header是很小的-大概只有 2 Bytes 2. Server Push 瀏覽器請求 技術分享
GET /WebSocket/LiveVideo HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:8080             (客戶端請求主機)
Origin: http://127.0.0.1         (來源網頁地址)
Sec-WebSocket-Key1: 23 asdfJKj,asdjk
Sec_WebSocket-Key2: wewerw234 jij998
0x13x10 + 8個字節Sec_WebSocket-Key3值,沒有鍵名(註意,這裏的0x13x10的額外的,也就說有兩個連續的0x13x10)
技術分享

服務器回應

HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Origin: http://127.0.0.1     (來源網頁地址)
Sec-WebSocket-Location: ws://localhost:8080/WebSocket/LiveVideo

Jmeter測試webocket協議

Jmeter本身不支持websocket協議的,所以需要安裝第三方的插件還有6個依賴包。下載地址:https://jmeter-plugins.org/

下載完成以後直接放到jmeter的\lib\ext\目錄下。重啟Jmeter就有此插件了。

啟動Jmeter,鼠標右鍵選擇測試計劃->添加->Threads(users)->線程組->Sampler->WebSocket Sampler

WebSocket Sampler頁面

技術分享

主要選項說明:

1、WebServer
(1)Server Name or IP:WebSocket發送的目標服務器的地址或者名稱
(2)Port Number:WebSocker服務器監聽的端口號。(一般是HTTP 80端口,可以通過WireShark數據包得到)


2、Timeout:
(1)Connection – 發送一個連接請求後,Jmeter等待連接完成的最長時間,單位是毫秒。
(2)Response - 對響應消息的最大等待時間。


3、WebSocket Request
(1)Implementation – 只支持RFC6455(v13) ,WebSocket協議標準的最新版。
(2)Protocol – 有ws與wss之分, ws前綴是WebSocket連接的辨別標識,wss前綴是WebSocket安全連接的辨別標識。根據自己的實際情況填寫
(3)Streaming Connection – 選擇這個TCP session要不要保持,如果勾上標識連接會一直存在,如果沒有勾上,那麽得到第一次響應後該鏈接就會被關閉。
(4)Request data:填入將要發送的請求,要跟開發溝通好,這個是什麽格式的消息。


4.WebSocket Response
(1)Response Pattern – 采樣器將等待含有該標識的消息並繼續通信(或者直到timeout,該連接關閉)
(2)Close Connection Pattern – 如果服務器返回的消息含有這樣的字符,就結束會話。
(3)Message Backlog – 定義服務器返回消息保留的最大長度。

進行測試

測試地址:http://www.websocket.org/echo.html

添加WebSocket Sampler後,再添加一個查看結果樹,運行後即可查看結果。

技術分享

轉自:http://www.cnblogs.com/liu-ke/p/6290257.html

Jmeter對基於websocket協議的壓力測試