一、前提
近日因工作需要,需對視訊線上播放功能進行壓測,視訊播放使用的是HLS協議,傳輸內容包括兩部分,一是用來控制播放的m3u8檔案,二是TS媒體檔案。(HLS協議和m3u8詳解可參考此連結:https://blog.csdn.net/aoshilang2249/article/details/82012187)
二、不使用HLS外掛進行JMeter視訊播放
通過了解HLS協議和m3u8檔案,可發現使用JMeter進行壓測時,我們必須:
- 拿到m3u8路徑
- 傳送m3u8檔案請求
- 解析m3u8請求返回的資料(這一步在瀏覽器中是瀏覽器自動解析的,單看介面是看不出解析方法的,需要了解HLS協議)
- 傳送解析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實現指令碼只需要兩步:
- 拿到m3u8路徑
- 使用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取樣器時新增較多的關聯和控制器實現指令碼。