JMeter中Websocket介面測試

2022-08-27 03:09:11 字數 2468 閱讀 2797

一、websocket協議簡介

websocket是乙個持久化的協議,相對於http這種非持久的協議來說;

http協議:

http的生命週期通過 request 來界定,也就是乙個 request 乙個 response ,那麼在 http1.0 中,這次http請求就結束了。

在http1.1中進行了改進,使得有乙個keep-alive,也就是說,在乙個http連線中,可以傳送多個request,接收多個response。但是請記住 request = response , 在http中永遠是這樣,也就是說乙個request只能有乙個response。而且這個response也是被動的,不 能主動發起。

websocket協議:

websocket是一種雙向通訊協議。在建立連線後,websocket伺服器端和客戶端都能主動向對方傳送或接收資料,就像socket一樣;

websocket只需要經過一次http請求,就可以做到源源不斷的資訊傳送了(在程式設計中,這種設計叫做**,即:你有資訊了再來通知我,而不是我傻乎乎的每次跑來問你)

二、新增websocket外掛程式

jmeter中測試websocket協議介面,需要先安裝websocket外掛程式和依賴包;

需新增的外掛程式為:

jmeterwebsocketsampler-1.0.2-snapshot.jar

外掛程式依賴的jar包為:

準備好這些jar包後,將它們拷貝到jmeter目錄的\lib\ext\下。

開啟jmeter,在sampler下,可以檢視到websocket sampler

三、websocket sampler說明

在jmeter中,建立websocket sampler,介面如下;

針對介面中各選項說明如下:

1、webserver

(2)port number:websocker伺服器監聽的埠號。(http和ws一般是80埠,https和wss一般是433埠)

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 – 定義伺服器返回訊息保留的最大長度。

四、應用例項:

專案場景:

**專案

進入frames標籤頁,可檢視websocket通道傳送和接收的資料

接下來,依據上述資訊,在jmeter的websocket sampler中填入對應的值

執行後,檢視結果樹如下所示:

spring boot整合websocket模組

size medium color red b 1.什麼是websocket b color size 首先,color blue b websocket是乙個持久化的協議,相對於http這種非持久的協議來說。b color 簡單的舉個例子吧,用目前應用比較廣泛的php生命週期來解釋。1 http的...

k8s ingress配置websocket支援

問題分析 表現形式 websocket鏈結 報錯 200 1copywebsocket connection to ws faile error during websocket handshake unexpected response code 200 猜測引起原因以及應對方式 解決方案 由於k...

k8s ingress配置websocket支援

具體來說,使用的ingress controller不一樣,有關的設定也不太一樣 參考 在 nginx ingress controller 中預設已經支援websocket訪問,官方文件中說明websocket不需要特別的配置,但需要在註解中配置以下三項 網上看到的另一種寫法配置 沒實踐過,若是配...