[浅谈LoadRunner在网络流媒体中的应用]中国有哪些流媒体

  摘 要:随着互联网的迅猛发展和普及为网络流媒体业务发展提供了强大市场动力,网络流媒体技术也得到了广泛的应用,用户对流媒体业务的质量需求也日益高涨。本文首先简单介绍什么是LoadRunner和它的工作原理以及什么是网络流媒体和网络流媒体的工作原理,然后介绍如何运用LoadRunner对网络流媒体的播放操作进行压力测试,研究分析测试结果,提出相应的解决方案。
  关键词:LoadRunner 网络流媒体 压力测试
  中图法分类号:TP316.8 文献标识码:a DoI: 10.3969/j.issn.1003-6970.2012.02.023
  Talking about the LoadRunner in the network streaming media application LI Li(Hebei Quantong Communication Co., Ltd. Shijiazhuang City, 050021)
  【Abstract】with the rapid development of the Internet and the popularity of network streaming media business development with a
  powerful market power, network stream media technology has been widely applied, the user streaming media service quality demand is also growing.This paper briefly introduced what is LoadRunner and its principle of work as well as what is a network streaming media and streaming media network working principle, then introduced how to use Loadrunner on the network streaming media, pressure test, analysis of test results, and puts forward the corresponding solutions.
  【Key words】Loadrunner network streaming media pressure test
   0 引 言
  随着互联网的迅猛发展和普及为网络流媒体业务发展提供了强大市场动力,网络流媒体技术也得到了广泛的应用,用户对流媒体业务的质量需求也日益高涨。下面简单介绍什么是LoadRunner和它的工作原理以及什么是网络流媒体和网络流媒体的工作原理,然后介绍如何运用LoadRunner对网络流媒体播放操作进行压力测试,研究分析测试结果,提出相应的解决方案。
   1 LoadRunner及其工作原理
  首先简单介绍一下LoadRunner,LoadRunner是一种预测系统行为和性能的负载测试工具。LoadRunner主要针对基于浏览器相关的业务,通过模拟上千用户,实施并发负载测试及实时监测性能的方式来确认和查找系统存在的问题和瓶颈。运用 LoadRunner进行性能自动化测试,项目能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
  下面对LoadRunner的原理简单阐述,LoadRunner主要是先模拟单用户操作,记录、解释并执行脚本,最后通过多用户并发执行脚本,找出系统中最薄弱的环节即瓶颈的地方。下面来简单认识一下LoadRunner的内部结构,如图1.1所示,是LoadRunner的总体结构图,包括了主要的三个部分,VUGen,
  
  图1.1
  简单描述一下之间的工作原理:
  Vugen进行基本脚本的记录。
  Controller 是一个中央控制台管理和监控负载测试,数以千计的虚拟用户通过Controller执行的应用测试,模拟流量。
  Analysis对Controller的运行结果进行分析。
   2 网络流媒体
   2.1 网络流媒体的定义:
  网络流媒体是以流的方式在网络中传播音频、视频或多媒体 文件的形式。 流媒体用流式传输方式将视频和音频等多媒体文件经过特殊的压缩方式打成一个个压缩包,由Server向用户机连续、实时传送。在采用流式传输方式时,用户不必等到整个文件全部下载完毕后才能看视频或者音频内容,而只需经过很短的启动时间即可播放压缩的视频或音频等流式媒体文件,剩余的部分将继续进行下载,直至播放完毕。 这个过程的一系列相关的Packge称为“流”。流媒体实际指是一种新的媒体传送方式, 该技术全面应用后,人们在网上聊天可直接语音输入,并可以进行视频聊天,大大满足了用户远程可视的愿望。
   1.2 网络流媒体的工作原理:
  要想对网络流媒体进行性能测试,首先要对网络流媒体的工作原理有所了解,以便我们能选择相应的协议,如本次测试需要选择Real、windows sockets、web(HTTP/HTML)等协议,一个完整的网络流媒体解决方案应是相关软硬件的完美集成,大致包括: 互联网服务、传送内容的采集、编辑、存储、播放、视音频捕获和压缩编码、应用服务器内容管理发布及用户管理等,在流式传输的实现方案中,一般采用HTTP/TCP协议来传输控制信息,而用RTP/UDP协议来传输实时声音数据。如图2.1所示:
  
  图2.1
  简单描述:
  (1)Web Brower与Web Server之间使用HTTP/TCP交换控制信息。
  (2)通过HTTP从Web Server检索出相关数据,并进行初始化。
  (3)从Web Server检索出来的相关服务器的地址定位A/ V Server。
  (4)A/V Play与A/V Server之间交换传输所需要的实时控制协议。
  (5)一旦数据抵达客户端,A/V Play就可播放。
  因为数据流是以包传输为基础,进行连续或断续的异步传输,在播放时,流式传输的实现需要缓存,在传输中它们要被分解为许多包,由于网络是动态变化的,各个Package也会选择不同的路由方式,故到达客户端的时间延迟也就不等,甚至先发的数据包还有可能后到。为此,使用缓存来弥补延迟和抖动,并保证数据包的按照正确的顺序发出,从而使媒体数据能连续输出,不会因为网络暂时拥塞使播放出现停顿。
  目前主流的流媒体技术有三种,分别是RealNetworks公司的RealMedia、Microsoft公司的WindowsMediaTechnology和Apple公司的QuickTime。这三家的技术都有自己的专利算法、专利文件格式甚至专利传输控制协议。
   3 运用LandRunner对网络流媒体进行压力测试
  LoadRunner的工作原理很简单,但是该如何运用LoadRunner对网络流媒体进行压力测试, 首先了解什么叫压力测试,压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别的测试。通俗地讲,压力测试是为了发现在什么条件下应用程序的性能会变得不可接受。其次是要有测试脚本也就是Script,由于LoadRunner对网络流媒体的记录方式虽然是支持的,但是大部分功能需要手动编写脚本去实现。
   3.1 测试脚本的编写
  Loadrunner中是使用RealPlayer LREAL函数仿真RealPlayer协议进行客户端和服务器之间的通信功能,每个实时播放功能有LREAL前缀。VuGen 能自动记录在Real Player在session有效期内的 LREAL功能列表, 但是由于大多录制内容不完全,对于主要的函数功能如:lreal_close_ player、lreal_current_time、lreal_get_property需要进行人工编写方可实现。
  根据我实际测试的经验,网络流媒体测试步骤可分为以下几步:
  使用Web(HTTP/HTML) 和 WindowsSocket双协议来录制,在产生的Script中找到播放的流媒体文件名。
  然后将脚本中Web的部分拷贝到事先准备的Web 和MMS或者Web和Real脚本模板中(具体选择哪个模板,根据自己要测试的流媒体格式类型)再手工编写Real或MMS的播放代码。
  最后添加关闭代码。(这个很重要,如果不加关闭代码,会导致内存泄漏)。
  图3.1列举笔者实际测试网络流媒体的一个脚本实例,由于篇幅所限只显示重要的代码片段。
   3.2 脚本运行结果
  从图3.2脚本运行结果中可以看到clip size is 1271360 milliseconds 和clip current time is 394 milliseconds 等的时间属性。
  接下来可以进入controll控制台,在仿真环境进行模拟多用户使用流媒体进行压力测试。
  通过测试可以看到,当用户数为60person时,用户全部通过。
  
  
  
  从实测图4的数据中可以看到CPU和内存的使用情况。
  %Processor Time:如果该值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。
  % DPC Time:在多处理器系统中,如果这个值大于50%,并且CPU值很大,可加入一个网卡可能会提高性能,提供的网络已经不饱和,该值越小越好。
  Memory:内存使用情况可能是系统性能中最重要的因素。如果系统“页交换”频繁,说明内存不足。
  page/sec: 表明由于硬件页面错误而从磁盘取出的页面数,或由于页面错误而写入磁盘以释放工作集空间的页面数。一般如果pages/sec持续高于几百,可能需要增加内存,以减少换页的需求。Pages/sec 的值很大不一定表明内存有问题,而可能是运行使用内存映射文件的程序所致。
  从实测图4中可以看到CPU和内存基本处于正常状态。
  但当连续三次压100人时只有部分通过。(红色代表没通过的用户数)
   3.3 分析结果:
  从实测图1可以看出;
  并发10~60人时,通过率还比较高,从并发10人起,随数增加,通过人数变化平稳,说明并发60人以内时,流媒体播放比较稳定。
  从实测图2可以看出:
  当第一次并发100人时,100人均通过。并且系统保持平稳。
  从实测图5和实测图6可以看出:
  连续三次并发100人时性能明显下降,只有85人通过,平均响应时间15.896s,已经超过的容忍度。分析原因,是后台播放流媒体没有关闭,后台进程已占满所致,如实测图7所示,没有一个进程能正常运行,说明有内存溢出现象,需要修改脚本代码把状态改为close。
   3.4 容易出错的地方以及出错原因及解决方案
  错误现象1:Action.c(12): Error:Connection to the server has timed out. You may be experiencing network problems
  错误分析:可能是由于网络不可达或本地文件路径出错,或mdrv.exe进程都被挂起。
  解决办法:可以先检查一下服务是否可用,本地访问路径是否输入正确。一定要把地址写全,前边的file不能丢。
  错误现象2:模拟录制后,脚本的Action内容为空。
  错误分析:可能没有选择正确的协议,也可能协议选择不全。
  
  
  解决办法:首先熟悉被测试软件所用的协议,然后根据协议进行选取,注意不能多选,也不能少选,多选容易造成协议间的不兼容现象。
  错误现象3:并发后会PASS大幅度减少,ERROR大幅度增加。
  解决办法:查看后台进程表,可能原因就是在写脚本时,没有及时关闭相应的操作。在写代码最后需要关闭流媒体为close状态。
   4 结束语
  本文首先简单介绍什么是LoadRunner和它的工作原理以及什么是网络流媒体和网络流媒体的工作原理,然后通过一些实际测试的方法和步骤,以及测试的图表和数据,证明LoadRunner能成功应用到网络流媒体的性能测试中,并研究分析测试结果,提出相应的解决方案。此次对网络流媒体的性能测试只针对real协议进行测试,对于非real协议的流媒体有待进一步的研究。
  参考文献
  [1] 邵梅,赵旭,刘学佳.谈如何提高非计算机专业高职学生计算机应用能力[J].中国科教创新导刊,2009(8).
  [2] 于涌 主编.软件性能测试与loadrunner实践[M].人民邮电出版社.
  [3] 石硕 主编.计算机网络试验技术[M].电子工业出版社.
  [4] 柳纯录 主编.软件评测师教程[M].清华大学出版社.

推荐访问:流媒体 浅谈 网络 LoadRunner