jmeter流媒体在线播放HLS插件BlazeMeter – HLS Plugin实现视频在线播放压测

一、前提
近日因工作需要,需对视频在线播放功能进行压测,视频播放使用的是HLS协议,传输内容包括两部分,一是用来控制播放的m3u8文件,二是TS媒体文件。(HLS协议和m3u8详解可参考此链接://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取样器时添加较多的关联和控制器实现脚本。