jmeter測試webSocket接口
webSocket就是長連接協議,一直保持着tcp連接,一般用在聊天工具,或者實時顯示最新數據的頁面里面。
可以在jmeter plugins manager里面安裝WebSocket Sampler by Maciej Zaleski插件來測試webSocket接口。
測試的網站為:http://www.websocket.org/echo.html

下面是jmeter腳本(沒有填寫WebSocket Response)



總結:
1,sampler111,sampler222,sampler444,sampler555共用一個連接,這個連接就是sampler111最開始創建的連接。
2,由於sampler333沒有勾選streamingConnection,所以sampler333無法使用sampler111之前創建的連接,sampler333需要自己重新創建一個連接,等到請求結束后,sampler333會自動關閉自己創建的連接。
下面是jmeter腳本(填寫了WebSocket Response)



總結:
1,WebSocket Response會對后面的每個接口(同一個連接)都有效
2,response pattern 一般會默認為空,默認為空表示:沒有設置匹配條件,也就是說后面所有的接口都符合,都會有返回值
3,當某個接口response pattern匹配成功之后,就不會再進行close connection pattern的匹配,即使符合close connection pattern的值,也不去匹配了
4,如果response pattern的值設置錯了,特別是設置為亂碼的時候,就會導致后面所有的接口都沒有返回值
5,如果想設置第4個接口請求結束后關閉連接,就必須將response pattern的值設置的和第4個接口不匹配,將close connection pattern的值置的和第4個接口匹配
關鍵詞說明:
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 – 定義服務器返回消息保留的最大長度。
參考文章:
