JMeter中Websocket接口測試


  一、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包為:

  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,在sampler下,可以查看到websocket sampler
  
   三、Websocket sampler說明

  在jmeter中,創建websocket sampler,界面如下;

  

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

  1、WebServer

(1)Server Name or IP:WebSocket發送的目標服務器的地址或者名稱
(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中填入對應的值

  

  運行后,查看結果樹如下所示:

  

 

 

 

 

  


免責聲明!

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



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