qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

流媒体服务器的自动测试系统

 摘要:随着网络带宽的日益增加,流媒体应用的规模与范围也日益扩大,如何测试评 价流媒体服务器的功能性与性能就成为一个亟待解决的问题。本文设计与实现了一种流媒体服务器的自动测试系统。该系统通过输入的测试任务,利用测试服务器与 测试客户端的两层架构对流媒体服务器进行测试。该系统能够测试流媒体服务器对于RTSP协议的支持情况,接收和分析RTP包中帧数据的准确性,并且可以测 试流媒体服务器的性能。实验表明,该系统具有良好的可用性,可以实现高效灵活的测试需求。

  引言

  目前,随着移动增值业务的快速发展和第三代数字通信技术的实施,移动增值业务已经不再仅仅局限于短信、彩信、彩铃等窄带业务,用户对于在移动网络环境下点播和观看视频的需求越来越迫切。流媒体技术作为在互联网上实时传输音、视频的主要方式,成为一种在数据网络上传递多媒体视频数据的主流技术。如此,流媒体服务系统对于作为承载多媒体基本业务的流媒体服务器的评估也显得由为重要。

   当前的流媒体系统包含了多种网络接入方式,多种软件体系架构,及多种应用场景如电视会议系统、网络电视(IPTV)系统等。如何有效的测量各种系统所提 供的视频业务支撑能力就成为一个有待研究的问题,此类问题直接关系到各流媒体系统的优越性、实用性以及其重大革新意义的展现。并且当前的各个流媒体系统都 面临不断升级的需求,对于系统升级前后的兼容性、一致性也需要给出评价。

  由于音频、视频信号很难量化表示,目前对流媒体服务器的测试方法一般还是通过人工“察言观色”的方式完成,即测试人员通过STB (Set-Top-Box,机顶盒) 或Web页面与流媒体服务器建立连接,由测试人员发起测试,并对测试结果进行主观判断,分析系统的工作情况。但是由人工来测试工作量将非常大,并且人工测试也很难提取服务器的各种性能响应参数,验证检查力度不够,测试有效性低,不够全面,可维护和可扩展性差,测试效果不理想。

  这里列举几个常见的问题实例:

  1、手工测试过程中,大量的精力花在输入数据、执行测试用例,监听观看系统的音视频输出是否正常上,无法集中精力到关键问题,如提高测试的有效性,编写更多更好的测试用例等。

  2、由于采用人工判断的方式,所以无法对系统的性能指标进行量化分析。

  3、测试工作中许多操作是重复性的、非智力性的和非创造性的,并要求准确细致地完成,对于重复性手工测试很难保证每一次测试的效率与有效性。

  4、如果有大量(如几千)的测试用例,需要在短时间内(如1天)完成,手工测试几乎不可能做到

  为解决手工测试存在的问题,我们很自然的就想到了自动化测试。自动化测试的优点有很多,如快速、可靠、可重复性、可重用性等等,这些优点使得自动化测试在流媒体服务器测试过程中的地位不断提高,成为评价流媒体服务器的重要方法。

  本文研究的主题就是如何设计实现针对流媒体服务器的自动化测试系统,达到快速量化的判定流媒体系统的目的。该测试系统包括以下内容:

  ● 流媒体操作功能测试

  ● 流媒体数据有效性正确性验证;

  ● 流媒体系统性能测试

  流媒体技术概述及研究现状

   在流媒体(Streaming Media)技术出现之前,人们若想从网络上观看影片,必须先将影视文件下载到本地,然后才可进行播放。流媒体技术的出现客服了这个限制,它可以让用户不 需要将整个影音文件下载到用户机器,而是一边下载一边播放。所以流媒体是指在数据网络上按时间先后次序传输和播放的连续音、视频数据流。流媒体数据流具有 3个特点:连续性、实时性、时序性,即其数据流具有严格的前后时序关系。这种提供一边下载一边播放的服务系统称为流媒体服务系统。所以对于流媒体服务系统 的评价需要测试系统的数据延时,丢包率,比特率等指标;不仅如此为不断提升移动环境下流媒体业务的服务质量,需要通过不断提升服务器能力,提升终端能力, 增加传输和编码效率等办法来多方面地提升整个移动流媒体系统的性能。而提升系统性能的前提是对目前系统性能可以进行准确地测试和评价。

   目前,对流媒体服务器的测试多关注与流媒体服务器的性能测试。流媒体服务器性能测试指标主要有最大并发流数目、带宽波动、丢包率和平均响应时间等,其中最 大并发流数目是关注的最多的。最大并发流数目是指流媒体服务器能够支持的有效的、能够同时在线正常观看节目的最大用户数目。

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/56/n-811856.html

  3.3 RTP流的测试

  流媒体服务器通过RTP协议封装音频和视频流。流媒体自动化测试系统通过捕获发送的RTP流并分析这些RTP流来判断流媒体服务器的性能。

   RTP流中封装的是流媒体服务所需的音频流和视频流,其中音视频都是通过特定的压缩技术对音视频流进行编码,目前视频流传输中最为重要的编解码标准有国 际电联的H.261、H.263,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准。这些标准都采用帧作为每一幅画面 的单位,为了支持多种协议的编码格式,本文论述的流媒体自动化测试系统不直接按照各种协议分析帧数据,而是对所有的协议采用统一的处理方法,这样增加了测 试系统的通用性。

  具体的方法,按照PTS建立每一帧的索引,对每一帧的数据应用MD5算法产生信息摘要;然后对接收的媒体流与预存的媒体流中相同帧进行一次MD5校验,从而得出结论当前帧是否完全。

  RTP流中另一个重要的指标为丢包率,由于流媒体服务器需要经过对流媒体数据的编码和加密后将数据压缩到RTP数据包中,所以测试系统无法从简单的统计RTP包的个数中得到丢包率。本文论述的流媒体自动化测试系统根据RTP流中每个RTP包必须顺序传送来计算丢包率。

   具体的方法,根据当前RTP包的序号判断下一个RTP包的序号,如果RTP包的序号不符合,则丢包加一;然后在根据新的RTP包的序号判断下一个RTP 包的序号。在数据流结束时,根据丢包数与总的RTP包数计算丢包率。这样丢包率数据同时也可以反映数据传输的乱序问题。

 流媒体自动化测试系统采用分级分析的策略,针对测试不同任务的需要,按照不同的分析级别给出不同详细程度的测试结果分析。具体的,流媒体自动化测 试系统采用如下表的三层分级策略级别,即活跃级,探测级,完整级。其中完整级提供最详细的RTP包分析结果,这一级对它所包含的全部帧数据进行信息分析, 可用于需要对流媒体服务器进行详细的功能测试;探测按照设定的抽样间隔对整个RTP流进行抽样检测,可用于性能测试及稳定性测试等需要消耗较高资源的测试 任务;活跃级检查RTP包的延时,丢包率,比特率等基本信息的分析,可用于压力测试等消耗很高资源的测试任务。完整级与探测级需要使用预先设定的流媒体 源,这样才能比较客户端接收到的RTP流中的帧数据是否完全正确。

级别

功能

粒度

活跃级

检查RTP包的延时,丢包率,比特率等基本信息

基本

探测级

需设定采样率;除统计活跃级的信息外,还需要按照采样率分析关键帧的数据。

较详细

完整级

除统计活跃级的信息外,还要对所有的帧进行分析。

详细

  3.4 性能测试

  性能测试主要是测试被测的流媒体服务器在预期用户量或者打用户量情况下系统的稳定性、可靠性和响应时间。本测试系统通过逐渐增加并发流的数目的方法观察各个性能参数的变化从而得出服务器的最大服务能力。

  目前本测试系统对于流媒体服务器的性能参数定义如下:

  1)最大并发流数目:流媒体服务器可以长时间支持的客户端数目。

  2)聚合输出带宽:流媒体服务器发送的总的带宽。

  3)请求响应时延:从用户发出RTSP点播开始到接收第一个RTP数据包之间的时间间隔。

  4)丢包率:客户端接收到的不连续的数据包的比率。

  测试系统通过多线程的客户端以及可以配置多个客户端这些灵活的方案实现对流媒体服务器的测试。

  4、流媒体自动化测试系统实现

  4.1 测试服务器的实现

  本文所述的测试服务器完成测试任务的管理与测试数据的统计分析工作。它由主线程、调度线程、配置线程、定时线程和输 出线程组成。主线程完成其他线程的创建工作,然后轮询是否有新的任务,如果监测到新的任务,交由配置线程读取新任务的各种配置参数。调度线程负责将新的测 试任务分配给某个测试客户端进行执行。定时线程会定时触发分析线程读取测试客户端送上来的测试结果进行分析。最后交由输出线程保存测试结果的磁盘文件中。

  分析线程需要根据测试任务的需要根据不同的测试级别进行分析,当进行完整级的测试分析时会消耗较大的CPU与内存资源,所以使用时间片强制使得分析线程让出系统资源使得测试服务器可以响应外部的输入,并且可以使用定时器使得分析线程在特定的时间继续分析测试数据。

  测试服务器的内部线程实现如下图所示

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/56/n-811856.html

  4.3 自动化测试系统的部署

  本文所述的流媒体自动化测试系统,基于测试服务器与测试客户端的实现,能够支持分布式的部署。在具体部署测试时,可以根据测试的流媒体服务器的能力进行灵活的部署配置。

  当测试的流媒体服务器系统可以支持多台服务器同时提供流媒体服务,可以将测试服务器与测试客户端部署在不同的硬件服务器,并且可以部署多个测试 客户端用于测试不同的服务器。当测试的流媒体服务器为单服务器或者提供的并发负载能力较低时,可以将测试服务器与测试客户端部署在同一个硬件服务器。由于 单个测试客户端就可以支持与多个流媒体服务器建立流媒体服务会话连接,所以一般情况下,单台测试服务器就可以支持对含有多个流媒体服务器的流媒体服务系统 进行测试。

  ……

  查看全文请点击下载:http://www.51testing.com/html/56/n-811856.html

  本文收录于《51测试天地》电子杂志第二十五期。

  版权声明:本文出自51Testing软件测试网电子杂志——《51测试天地》第二十五期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任

posted on 2012-05-18 10:45 顺其自然EVO 阅读(1271) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜