1、测试背景

随着直播业务的兴起,越来越多的直播平台开始涌现,这火热的程度好像一个应用不带上直播业务出来都不好意思跟人打招呼。

公司也在赶时髦,做了一个直播平台,直播内容是面向公司内部员工的,还有少量外部用户。直播平台好不好,最重要的一点是观众观看是否流畅是否清晰,能否满足较多的人观看。平台需要进行测试是否满足大量用户观看直播,这么重要的事情当然要交给性能测试人员来做。

2、直播技术

一般来说,我们常把视频直播的流程可以分为如下几步:

采集 —>处理—>编码和封装—>传输(推流到服务器、服务器流分发)—>播放器流播放

简单描述起来就是:主播端把音视频数据采集编码后通过网络传送到观众端,观众进行观看。视频直播就相当于是把图像数据打包,从一个地方运输到另一个地方。我们本次关注的就是流媒体的性能测试。

网络直播面向对象在全国各地,在网络传输方面全部自己来做基本不现实,找提供推流服务的CDN服务商提供解决方案是最好的选择,但是我们这次测试的直播系统主要针对公司内部员工,走的内部网络,所已就不需要使用CDN技术。

在开始之前,我先把流媒体服务中的双端关系说一下。在一个完整的流媒体服务框架中,角色就是"两端加一服"。推流端、拉流端加上媒体服务器。同时按照应用场景的不同,协议又分推流协议和拉流协议

下面介绍一下主要的直播技术,国内的面向大众的直播平台都是采用的rtmp、httpflv和hls技术:

httpflv:这种直播传输实际上就是利用的flv文件的特点,只需要一个matedata和音视频各自header,后面的音视频数据就可以随意按照时间戳传输,当然视频得按照gop段来传输,这种直播数据实际上就是一个无限大的http传输的flv文件,视频地址类似:http://live.iflytek.com/live.flv,客户端利用flv特性,可以一边接受数据边解码播放。

rtmp:rtmp是adobe研发的开放协议,rtmp其实实质上也是传输的flv格式的数据,同样是flv tag,只不过rtmp在传输上封装了一层,比如rtmp不仅可以直播,也可以推流。rtmp的直播原理同样也是利用了flv文件的特性,只需要一些头信息,后面就可以随意传输音视频数据,达到边传输边播放。

hls:hls是苹果公司开发的协议,http轮询传输,该协议主要的数据格式是ts视频文件,大致就是将裸流h264和音频直播数据,切片封装成ts段,形成无数的ts小文件,客户端先请求一个m3u8文件,该文件内部会有一列ts文件的地址,客户端按照顺序依次播放ts,以此类推,hls地址类似:http:// live.iflytek.com /live.m3u8,hls在大部分的浏览器利用html5 video是可以直接播放的。

它的工作原理简单来说就是把一段视频流,分成一个个小的基于HTTP的文件来下载。当媒体流正在播放时,客户端可以根据当前网络环境,方便地在不同的码率流中做切换,以实现更好的观影体验HLS的出现是为了解决苹果原生环境中的流媒体播放,这个协议可以方便地让Mac和iPhone播放视频流,不依赖Adobe,

RTMP HLS HTTP-FLV三者的关系使用场景所依赖的插件延时在下表中给出

大部分教程在介绍这三个协议的时候,都忽略了一点,就是协议的应用场景到底是什么? RTMP 可以用在双端,但 HLS 只能用在拉流端。

3、测试方法
上面说了那么多是为了下面的测试方法做铺垫,视频直播性能测试可以拆分为两种测试,流媒体测试和普通的网页测试。页面就是我们平常进行web页面性能测试使用的方法,不需要过多的阐述,当然还是推荐使用loadrunner进行测试。视频直播也会存在交互界面,主持人与用户的互动,这个性能测试过程中需要注意并进行测试,下面主要讲述性能测试工具和方法

3.1、RTMP和HLS压力测试工具配置安装和使用

我们使用的测试环境是centos6.5,首先在环境中安装依赖软件包,使用git下载最新版本st-load源码包

[root@localhost ~]# yum install git unzip patch gcc gcc-c++ make[root@localhost ~]# git clone https://github.com/winlinvip/st-load.git

执行配置和编译

[root@localhost st-load]# ./configure[root@localhost st-load]# make

查看生成的文件和目录

[root@localhost st-load]# ls objs/http-parser-2.1 src st_hls_load st_rtmp_load st_rtmp_publishMakefile st-1.9 st_http_load st_rtmp_load_fast[root@localhost st-load]#

模拟RTMP用户

./st_rtmp_load -c 1 -r rtmp://127.0.0.1:1935/live/livestream

模拟HLS直播用户

./st_hls_load -c 1 -r http://127.0.0.1:3080/hls/hls.m3u8

模拟HSL点播用户

./st_hls_load -c 10000 -o -r http://127.0.0.1:3080/hls/hls.m3u8

模拟RTMP推流用户

./st_rtmp_publish -i doc/source.200kbps.768x320.flv -c 1 -r rtmp://127.0.0.1:1935/live/livestream

模拟RTMP多路推流用户

./st_rtmp_publish -i doc/source.200kbps.768x320.flv -c 1000 -r rtmp://127.0.0.1:1935/live/livestream_{i}

支持RTMP流播放测试,一个进程支持5k并发
支持RTMP流推流测试,一个进程支持500个并发。

那么多并发前提是我们的压力机能够满足,压力机达不到要求建议使用较少的并发,较多的压力机。

3.2、HTTP传输测试测试
LR脚本原理:测试工具服务器会一直从服务器端下载推流数据,我们使用压力机进行压力测试,当然我们设置的事物不会成功,我们不需要担心,我们测试的是网络宽带流量。

测试代码

Action(){//lr_think_time(3);lr_start_transaction("load");web_url("mp4","URL=http://127.0.0.1:5021/live/2","Resource=0","RecContentType=application/octet-stream","Referer=http:/127.0.0.1:5021/live/2","Snapshot=t6.inf","Mode=HTML",LAST);lr_end_transaction("load",LR_AUTO);return 0;}

测试直播流的性能其实就是测试视频下载速度, rtmp hls 和http这些数据传输速度是我们所关注的点,我们做的是性能测试,功能测试关注点和性能测试所关注的有所不同。性能测试之前首先要确认测试环境的网络带宽,直播服务器推流的码率,帧数,交换机的带宽等一系列数据,获取这些数据后我们可以推算在此网络下我们能支持的并发数量,满足多少用户能够观看视频直播。

压力工具准备,我们这次要满足5000路并发观看720p视频,数据会以1mb/s速度传输,网络环境是万兆网络双万兆网卡,粗略估算能够满足并发数据传输。传输速度达到5000mb/s,这当当然是相当大的数据量。一般的网络和压力机是承载不了的,我们需要较多的压力机进行负载,同时测试一台压力机的负载量。根据单台压力机的压力量进行分配压机机,比如我们单台压力机最多能达到1000mb/s,我们至少需要5台压力机。流量监控工具linux推荐使用iftop,windows使用自带监控,压测方法使用上述的方法。希望上述方法能够帮助大家了解视频直播和性能测试。

————————————————
版权声明:本文为CSDN博主「itest_2016」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/itest_2016/article/details/80383090

视频直播平台性能测试相关推荐

  1. 来自520的福利----视频直播平台性能测试

    1.测试背景 随着直播业务的兴起,越来越多的直播平台开始涌现,这火热的程度好像一个应用不带上直播业务出来都不好意思跟人打招呼. 公司也在赶时髦,做了一个直播平台,直播内容是面向公司内部员工的,还有少量 ...

  2. 新手主播在一对一视频直播平台更容易发展,轻松月入过万!

    很多不了解直播行业的人,都很想了解网络主播到底是怎么赚钱的?作为直播行业的内行人士今天我就来给大家讲讲网络主播到底是如何通过网络直播平台实现收益的.传统的一对多直播平台网络主播主要是靠粉丝送礼物赚钱. ...

  3. GB/T28181国标视频直播平台LiveGBS支持录像回放吗云端录像录制在哪里

    LiveGBS支持录像回放吗云端录像录制在哪里 1.搭建GB28181视频直播平台 2.支持录像回放吗? 3.设备录像 4.云端录像 5.实时录像 1.搭建GB28181视频直播平台 支持 Windo ...

  4. 企业视频直播平台有哪些呢

    随着"互联网+"时代的来临,越来越多的企业想要走上数字化转型道路.而在摸索前行中,盛行的直播为企业迎来了新的机遇.一时间,越来越多的企业都投身到直播浪潮中.线上直播的出现,解决了企 ...

  5. 一对一视频直播源码|手机视频直播平台android源码/可打包视频直播

    源码介绍 一对一视频直播源码|手机视频直播平台android源码集视频.语音.动态.直播.社交等功能于一身. 前端功能说明: 登入注册:手机验证码登入.编辑个人信息.上传头像 首页直播:查看主播用户. ...

  6. 网络摄像头RTSP拉流协议网页无插件视频直播平台EasyNVR为什么无法获取通道接口数据?

    TSINGSEE青犀视频的技术支持最近给我反馈了一个问题,关于代理EasyNVR获取通道接口返回为空的问题.代理EasyNVR的过程也是将EasyNVR集成进其他平台的过程,这个问题在集成过程中还是比 ...

  7. 《游戏视频主播手册》——第2章 视频直播平台 2.1 主流游戏视频直播平台

    本节书摘来自异步社区<游戏视频主播手册>一书中的第2章,第2.1节,作者 王岩,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第2章 视频直播平台 游戏视频直播 ...

  8. 网络视频直播平台怎么开发、有什么难点

    "网络视频直播平台怎么开发.有什么难点"这类文章实在是太难写了,因为开发直播APP软件需要至少全国用户能够跨平台流畅观看,这其中涉及到的点太多太复杂了,所以讲清楚网络视频直播平台怎 ...

  9. 视频直播平台源码关于Facebook登录、分享接入流程

    现在,视频直播平台移民三方账号登录.分享功能是最基本的功能设置,而且随着互联网技术的发展,很多视频直播平台源码需要对Facebook.Twitter.Line等国外APP进行接入,从而实现用户流量的增 ...

最新文章

  1. JDK8 Stream操作 collectingAndThen:根据对象的属性去重
  2. eclipse工具连接mysql_eclipse工具中使用Data Source Explorer连接数据库(MySQL)
  3. MySQL连接查询—笛卡尔乘积
  4. 《机器学习》 周志华学习笔记第二章 模型评估与选择(课后习题)
  5. 智能机维修暴利大起底:触摸屏成本30维修300元
  6. Sublime Text 2安装插件的方法
  7. Java爬坑 -- 解决redis序列化java8 LocalDateTime错误的问题
  8. IDEA 不愧为神器,结合 Groovy 脚本,简直无敌!
  9. 1.不同角度的性能测试
  10. jet-cp4005,linux双面打印,如何使用Linux(Ubuntu 13.04)在HP 7610上启用双面打印
  11. 如何去掉高CAD选择集对话框(高版本才有)
  12. 工业互联网平台TOP15发布!附15个平台详细介绍!
  13. 网上图书商城项目学习笔记-017结算,跳转结算页面
  14. linux 安装bt下载软件,CentOS 7 利用安装源安装Deluge,PT,BT下载工具
  15. 【Spring Boot 2.0学习之旅-15】SpringBoot2.0响应式编程
  16. [渝粤教育] 无锡商业职业技术学院 团队管理 参考 资料
  17. 【AICG】动漫女主AI绘图的学习笔记
  18. 在职计算机培训班,计算机科学与技术在职研究生招生院校有哪些?
  19. vscode 使用ES6调试js
  20. AD中怎样修改原理图图纸大小

热门文章

  1. 正态性/方差齐性检验及stata实现
  2. vultr连接不上ssh的解决方案
  3. 今天来聊一聊互联网35岁梗,这个行业真的不需要35岁以上从业人员?
  4. 学计算机学费一万多吗,计算机专业的学费是多少
  5. MySQL数据库命令行
  6. Linux——MySQL安装及配置环境变量
  7. 内存对齐以及如何关闭内存对齐
  8. 制作一幅扑克牌系列三---动起来
  9. Unity基础篇:Serializable总结与深入研究。
  10. AGM AG16K FPGA介绍