一、前提
近日因工作需要,需對視頻在線播放功能進行壓測,視頻播放使用的是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取樣器時添加較多的關聯和控制器實現腳本。