一、前提
近日因工作需要,需对视频在线播放功能进行压测,视频播放使用的是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取样器时添加较多的关联和控制器实现脚本。

jmeter流媒体在线播放HLS插件BlazeMeter - HLS Plugin实现视频在线播放压测的更多相关文章

  1. Jmeter(三十六) - 从入门到精通进阶篇 - 设置负载阶梯式压测场景(详解教程)

    1.简介 在性能测试中,有时需要模拟一种实际生产中经常出现的情况,即:从某个值开始不断增加压力,直至达到某个值,然后持续运行一段时间,然后继续加压达到某个值持续运行,如此循环直到达到预期的峰值,运行一 ...

  2. 实现理论上无tps上限的分布式压测(基于Jmeter+InfluxDB+Grafana+Spring Boot)

    JMeter自身带有Master-Slave压测框架,对于并发量不是很高的压力情况下(比如tps低于5000),该方案是可行的,并且使用起来非常方便,只要在配置文件或者命令行工具的参数做一些补充,即可 ...

  3. jmeter进行分布式压测过程与 注意事项

    jmeter命令行运行但是是单节点下的, jmeter底层用java开发,耗内存.cpu,如果项目要求大并发去压测服务端的话,jmeter单节点难以完成大并发的请求,这时就需要对jmeter进行分布式 ...

  4. 在Linux CentOS上搭建Jmeter压测环境

    本文的主要内容是介绍如何在Linux CentOS 服务器上面搭建Jmeter的压测环境整个详细的流程,来满足我们日常工作中对于压力测试环境搭建.压力测试执行过程的需求. 一.首先我们要准备四个东西, ...

  5. jmeter导入csv压测

    压测csv数据源(设置为utf-8格式),jmeter不需要第一行参数名 新建一个线程组,根据压测数据调整设置需要的循环次数(测试数据有9行,设置循环次数为9) 添加http头信息 Content-T ...

  6. Jmeter压测Thrift服务接口

    此文已由作者夏鹏授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Apache Jmeter是基于Java开发的性能测试工具,支持多种协议的测试,包括:Web(HTTP/HTT ...

  7. 流媒体基础实践之——RTMP和HLS分发服务器nginx.conmf配置文件(解决了,只能播放RTMP流而不能够播放HLS流的原因)

    user www www; worker_processes ; error_log logs/error.log debug; #pid logs/nginx.pid; events { worke ...

  8. vue播放video插件vue-video-player实现hls, rtmp播放全过程

    1.安装插件 1 npm install vue-video-player -S 2.配置插件 在main.js里添加 1 import VideoPlayer from 'vue-video-pla ...

  9. EasyNVR H5直播流媒体解决方案前端构建之:如何播放自动适配RTMP/HLS直播播放

    之前在进行EasyNVR多屏开发的时候,由于多屏功能不需要在手机端展示出来(pc多播放为RTMP,手机端播放为HLS),因此只注意到了引用videojs来进行rtmp的播放.由于不同项目需求不同,对h ...

随机推荐

  1. C语言新手入门

    include<stdio.h> int main() { //输入一个数 输出它的反序列 c int a,b=0; scanf("%d",&a);//输入一个 ...

  2. [Docker]Docker与Linux ip_forward数据包转发

    背景 今天在一台新虚拟机上需要临时启动一个consul服务,安装Docker后使用docker启动,但是在执行启动命令后发现docker有一个警告: WARNING: IPv4 forwarding ...

  3. High-Resolution Image Inpainting using Multi-Scale Neural Patch Synthesis

    论文来源:CVPR 2017 摘要 之前方法的缺点:之前的方法是基于语义和上下文信息的,在填充较大holes的表现得很好,能够捕获更高级的图像特征,但是由于内存限制和难以训练网络的因素,只能处理分辨率 ...

  4. Django的路由分发与名称空间

    路由分发 django每一个app下面都可以有自己的urls.py路由层,templates文件夹,static文件夹 项目名下urls.py(总路由)不再做路由与视图函数的匹配关系而是做路由的分发 ...

  5. Spring 源码学习 04:初始化容器与 DefaultListableBeanFactory

    前言 在前一篇文章:创建 IoC 容器的几种方式中,介绍了四种方式,这里以 AnnotationConfigApplicationContext 为例,跟进代码,看看 IoC 的启动流程. 入口 从 ...

  6. 【五校联考1day2】JZOJ2020年8月12日提高组T1 对你的爱深不见底

    [五校联考1day2]JZOJ2020年8月12日提高组T1 对你的爱深不见底 题目 Description 出乎意料的是,幸运E 的小R 居然赢了那个游戏.现在欣喜万分的小R 想要写一张明信片给小Y ...

  7. NOIP2020退役记

    Day 0 这一次因为疫情仍然没有试机,但是允许提前打开虚拟机,减少了调试虚拟机的时间 开考时,吸取上一次 \(CSP\) 的教训,先把题面看了一遍 感觉 \(T1\) 比较可做,剩下的暂时没有思路 ...

  8. csv文件的写操作

    import csv sumbmit_csv_path = "submit_have_valid_SGD.csv" with open(sumbmit_csv_path, &quo ...

  9. I am George1123!

    我是 George1123,一名来自浙江省,杭州市的初三爆菜 \(\tt oier\) . 以下是蒟蒻逊逊的 OJ 账号: 洛谷 loj uoj bzoj spoj 彩蛋:Welcome to my ...

  10. 【题解】「CF675A」Infinite Sequence

    我用的是:分类讨论+暴力 其中分类讨论中,我用了一种namespace名命名空间.如果: \(c = 0\) : 当 \(a == b\) 时,输出 \(YES\) 否则 \(NO\) \(c < ...