Jmeter對基於websocket協議的壓力測試
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協議的壓力測試