Jmeter測試webocket協議


Jmeter本身不支持websocket協議的,所以需要安裝第三方的插件還有6個依賴包。

首先,我們需要准備Jmeter的WebSocket協議的支持插件:

 

JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar
這插件依賴一下幾個jar包
1、jetty-http-9.1.2.v20140210.jar
2、jetty-io-9.1.2.v20140210.jar
3、jetty-util-9.1.2.v20140210.jar
4、websocket-api-9.1.1.v20140108.jar
5、websocket-client-9.1.1.v20140108.jar
6、websocket-common-9.1.1.v20140108.jar

我們准備好這些jar包后,講它們拷貝到Jmeter目錄的\lib\ext\目錄下,重新啟動jmeter,就可以看到WebSocket Sampler(如果還是沒有,有可能是JDK的版本太低,我用的是1.8)

操作步驟如下

鼠標右鍵選擇測試計划->添加->Threads(users)->線程組,如下圖

 

再次,選擇鼠標右鍵選擇上步添加的線程組->添加->Sampler->WebSocket Sampler,如下圖

接下來看看websocket的頁面

解釋一下各項的意思

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

 

Jmeter測試實戰

使用谷歌瀏覽器抓取WebSocket包(按下F12,選擇NetWork,篩選WS)

測試計划樹如下圖

 

其中添加了參數化文件(Jmeter有幾種參數化方式,此處以CSV舉例)

在Configure the CSV Data Source組中:
1、Filename:上步中要求建立的.bat文件的全路徑;
2、File encoding:文件的編碼格式,根據實際情況來;
3、Variable Names(comma-delimited):字段名,多個以逗號分隔
4、Delimiter(use'\t' for tab):定義分隔符,例如逗號的話,直接填寫 逗號的符號即可
5、Allow quoted data?:選項選為“true”的時候對全角字符的處理出現亂碼
6、Recycle on EOF:是否循環讀入,CSV Data Set Config一次讀入一行,分割后存入若干變量中交給一個線程,如果線程數超過文本的記錄行數,那么可以選擇從頭再次讀入
7、Stop thread on EOF ?:當Recycle on EOF為False時,當讀取文件到結尾時,停止進程,當Recycle on EOF為True時,此項無意義
根據實際情況進行設置。將所有的設置完成后,保存。
值得注意的是,如果不確實配置是否正確,可以暫緩參數化,直接在WebSocket頁面填入Request data,運行,查看結果,如果成功返回,在開始參數化。
 
執行Jmeter測試計划,在結果樹中可以查看發送和服務器返回的結果,如下圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM