51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1722|回复: 5
打印 上一主题 下一主题

直播项目的性能测试怎么做?

[复制链接]
  • TA的每日心情
    擦汗
    前天 09:07
  • 签到天数: 527 天

    连续签到: 4 天

    [LV.9]测试副司令

    跳转到指定楼层
    #
    发表于 2020-8-10 10:50:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    1测试积点
    公司新开了一个直播项目,目前是PC端web界面的形式,使用的第三方SDK七牛云服务,现在需要性能测试,遇到问题如下
    1、既然使用了第三方sdk,还有必要测并发的直播人数之类的吗?这个不是按照收费情况来吗?
    2、开发要求测并发推拉流,我在网上找了一大堆,大部分是** srs-bench**,就实践了一下,可以实现拉流,但无法推流(查询发现srs-bench这个工具貌似是针对srs开源直播服务器的),对于这种第三方服务,应该使用什么工具呢或者说有没有办法测呢?
    3、直播项目性能测试应该怎么测,需要使用的工具和执行步骤那些具体是怎样的呢?
    接触测试不久,望各位同行不吝赐教!

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 07:28
  • 签到天数: 2812 天

    连续签到: 5 天

    [LV.Master]测试大本营

    5#
    发表于 2020-8-11 13:18:09 | 只看该作者
    1楼棒!!!
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 1801 天

    连续签到: 5 天

    [LV.Master]测试大本营

    4#
    发表于 2020-8-11 10:15:07 | 只看该作者
    需要的,静态资源加载、各接口的响应
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-10-22 14:23
  • 签到天数: 1007 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2020-8-11 10:10:39 | 只看该作者
    一楼回答的很全,学习了。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-9-30 15:02
  • 签到天数: 751 天

    连续签到: 2 天

    [LV.10]测试总司令

    2#
    发表于 2020-8-11 09:54:24 | 只看该作者
    哇塞,一楼说的很详细了
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-3-31 09:25
  • 签到天数: 273 天

    连续签到: 2 天

    [LV.8]测试军长

    1#
    发表于 2020-8-10 14:10:58 | 只看该作者
    1、直播测试涉及的专业术语:

    秒开:指直播页面的首屏快速的展现出来(1S左右)。
    分辨率:影响图像大小,与图像大小成正比;分辨率越高,图像越大;分辨率越低,图像越小。

    码率: 把每秒显示的图片进行压缩后的数据量,单位为 bps(Bit Per Second)。影响体积,与体积成正比;码率越大,体积越大;码率越小,体积越小。

    帧率:所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS)或“赫兹”(Hz)。影响画面流畅度,与画面流畅度成正比:帧率越大,画面越流畅;帧率越小,画面越有跳动感。

    清晰度:清晰度指影像上各细部影纹及其边界的清晰程度,现阶段对直播清晰度的考量还是主要通过人眼观察。

    分辨率:可以从显示分辨率与图像分辨率两个方向来分类。显示分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素有多少。图像分辨率则是单位英寸中所包含的像素点数,其定义更趋近于分辨率本身的定义。分辨率影响图像大小,与图像大小成正比:分辨率越高,图像越大;分辨率越低,图像越小。

    RTMP:即Real Time Messaging Protocol,基于flash无法在iOS的浏览器里播放,实时性较好。所以一般使用这种协议来上传视频流,也就是视频流推送到服务器。

    HLS:即Http Live Streaming,是由苹果提出基于HTTP的流媒体传输协议。HLS有一个非常大的优点就是HTML5可以直接打开播放,但是延迟较大。

    2、测试所涉及的关键点:

    1)播放:正常播放、快进、倍速、拖拽进行播放,查看播放的流畅性、加载速度及其卡顿情况;

    2)不同网络下面的(2G\3G\4G|Wifi等网络环境下的播放情况)的播放和加载情况;

    3)播放的延迟情况,对于直播,要求延迟再3秒内,最好是1秒;

    4)播放过程中切换课件、切换麦克、切换视频等;

    5)播放过程中,横屏、竖屏、互动、评价等是否正常;

    6)播放开始和结束时(横竖屏)是否正常;

    7)播放过程中上课、下课、退出、进入等是否正常;

    8)播放过程中被外界打断,如电话来电、按home键等;

    9)播放过程中网络切换,2G、3G、4G、Wifi之间网络切换,或者相同网络的信号的强弱,播放是否正常、断开后网络恢复能否继续播放;

    10)播放回放、缓存下载、下载完成播放、下载暂停继续下载;下载后删除再次下载;下载后重复下载等;下载后相同账号登录不同的机器后,再次下载和播放是否正常;


    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

    LR就能做
    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使用自带监控,压测方法使用上述的方法。希望上述方法能够帮助大家了解视频直播和性能测试。

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 很给力!

    查看全部评分

    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-17 17:44 , Processed in 0.065733 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表