JMeter流媒體線上播放HLS外掛BlazeMeter - HLS Plugin實現視訊線上播放壓測

林中有雨發表於2020-12-21
一、前提
近日因工作需要,需對視訊線上播放功能進行壓測,視訊播放使用的是HLS協議,傳輸內容包括兩部分,一是用來控制播放的m3u8檔案,二是TS媒體檔案。(HLS協議和m3u8詳解可參考此連結:https://blog.csdn.net/aoshilang2249/article/details/82012187
 
二、不使用HLS外掛進行JMeter視訊播放
通過了解HLS協議和m3u8檔案,可發現使用JMeter進行壓測時,我們必須:
  1. 拿到m3u8路徑
  2. 傳送m3u8檔案請求
  3. 解析m3u8請求返回的資料(這一步在瀏覽器中是瀏覽器自動解析的,單看介面是看不出解析方法的,需要了解HLS協議)
  4. 傳送解析m3u8得到的全部ts視訊檔案

在不使用HLS外掛BlazeMeter - HLS Plugin的情況下,實現指令碼需要用到多個http請求器、ForEach控制器、迴圈控制器,_split函式、_matchNr函式、__V函式、__counter函式等才能實現一個視訊播放,如下圖所示:

 

三、使用HLS外掛實現JMeter視訊播放

而在使用HLS外掛BlazeMeter - HLS Plugin的情況下,實現指令碼則很簡單,傳送m3u8請求和ts檔案只需要用到一個取樣器,且不用自己用很多控制器和函式等去解析m3u8返回的內容,HLS取樣器會自動解析m3u8請求並自動傳送ts檔案請求,類似瀏覽器,無需再進行手動關聯解析。所以使用HLS Plugin實現指令碼只需要兩步:

  1. 拿到m3u8路徑
  2. 使用HLS取樣器自動傳送m3u8和ts檔案請求,完成視訊播放

指令碼如下圖,結果和上面自己寫關聯是一致的:

 

四、HLS外掛BlazeMeter - HLS Plugin的介紹和使用

 1、外掛管理器搜尋BlazeMeter - HLS Plugin進行下載,完成安裝後重啟jMeter

 

 2、新增取樣器bzm - Streaming Sampler

 

 3、填寫bzm - Streaming Sampler取樣器內容

 

 4、新增監聽器或斷言等,執行檢視結果

 

以上就是HLS外掛BlazeMeter - HLS Plugin外掛的介紹,通過使用該外掛,可簡單地實現流媒體播放,不需要再像使用http取樣器時新增較多的關聯和控制器實現指令碼。

相關文章