数字电视融合业务互联网门户的压力测试研究

2012-09-17 07:54于鉴桐曹三省
电视技术 2012年24期
关键词:测试工具测试人员浏览器

于鉴桐,曹三省

(中国传媒大学,北京 100024)

近年来,为了提高经营管理和服务水平,及适应新业务发展的需求,有线运营商开始采用先进的信息管理技术来提高自身竞争力,构建自己的运营支撑系统框架和模式,在此基础上,BOSS系统应运而生[1]。同时由于数字电视融合业务互联网门户的独特性,人们对BOSS系统性能的要求越来越高。系统常常是大量终端用户同时访问,无论是从人员、技术上,还是从时间、资源上,性能测试的挑战也越来越大,从而无法预测多用户并发时应用系统的运行情况。性能测试的难点就在于如何仿真和模拟成千上万的真实用户并发对服务器造成的压力情况、如何监控和统计服务器端的性能变化、如何从千差万别的测试数据中分析并获取有效的测试结果。传统的简单的手工测试已经不能有效满足压力测试的需求,因此必须借助于自动化工具来完成[2]。

1 概述

1.1 数字电视融合业务互联网门户概述

业务运营支撑系统(BOSS,Business Operation Support System)[3-4]融合了BSS(业务支撑系统,Business Support Systems)与 OSS(运营支撑系统,Operation Support Systems),是一个综合的业务运营和管理平台,它融合了传统数据业务与增值业务,主要由网络管理、系统管理、计费、营业、账务和客户服务等部分组成,系统间通过统一的信息总线有机地整合在一起[5]。OSS包含用于运行和监控网络的所有系统,如报告或计费系统。它是整个运营基础结构,是业务开展和运营时所必须的支撑平台,包括运营网络系统和客户服务系统。BSS负责客户支持,提供和满足客户需求。

本文所述的数字电视融合业务互联网门户是基于BOSS系统建立起来的一套广电与通信融合的业务支撑平台,用户可利用Web服务进行节目互动参与,并且利用轻量级的支付模块,实现充值付费业务。普通Web门户访问流稳定,不易出现波动,而由于数字电视融合业务互联网门户的上述功能特点,预计会在每月月初或月末因办理充值付费业务人数较多出现突发的流量峰值。正因如此,数字电视融合业务互联网门户的压力测试研究更为重要紧迫。

1.2 压力测试方法概述

压力测试是性能测试中的一个重要方面。它是通过逐步增加访问系统的线程数,观察测试系统性能变化,确定系统所能承受的压力。通过压力测试往往能找到其他测试方法难以发现的错误,例如内存泄漏、并发与同步的问题。因此利用压力测试可以有效地测服务器的运行状态和响应时间等。国外的压力测试技术经过十几年的发展已突飞猛进,但是在国内实施压力测试的时候,存在以下问题[6]:

1)压力测试工具有待改善

目前国内现有的压力测试工具收费较高,测试人员难以接触优秀的测试工具,即使接触到了也是一些试用版,易得、易用的测试工具较少。另外,这些测试工具界面简单,需要开发更好的人机交互以方便操作以及自动化执行。

2)测试结果缺少分析

在一个项目中,开发团队与测试团队往往是分离的,测试人员不能充分了解程序的内部结构,尤其是BOSS系统较普通Web系统更为复杂,再加上与开发人员缺乏沟通,即使测试人员使用测试工具发现了性能参数所存在的问题,也难以分析测试结果以改善系统性能。

3)缺少专门的培训机会

虽然测试工作近几年在国内逐渐增多,但测试仍被认为是一个项目的补充工作。测试人员多为自学,缺乏系统的培训自动化测试工具的机会。社会上的不重视也严重影响测试人员的积极性,这一些也使得测试工作发展缓慢。

在针对BOSS系统的测试方面,问题尤为突出。BOSS系统自身复杂,开发周期长,能够给予测试的时间较短,因此BOSS系统的测试总是在较为紧急的情况下完成。另外,BOSS系统的客户服务子系统所有的业务模块都基于Web应用。测试人员通过Web页面按照业务流程依次进行操作,测试业务模块是否按照业务需求正确完成各种业务请求。整个过程都采用手工测试,测试人员往往需要在一个业务界面上进行多次重复地操作,测试工作量大[7]。基于上述实际情况,目前迫切需要一种适合BOSS系统测试的自动化测试工具,用以减少工作量,提高测试效率和效果。

2 压力测试方法及实例

2.1 WAST工具简介

主流压力测试工具有WAST,LoadRunner,Webload,QALoad等 。 WAST(Microsoft Web Application Stress Tool)是由微软测试人员所开发,专门用来进行实际网站压力测试的一套工具[5],它提供了一种简便的方法模拟大量用户访问目标网站,并在测试结束后提供详细的性能参数文档。

与其他测试工具相比,WAST具有以下主要特点:

1)WAST可以免费下载使用,并且简单易操作,人机界面友好。

2)有多种不同的方式建立测试脚本:手动、录制浏览器操作步骤、直接录入IIS的记录文件、录入网站的内容及录入其他测试程序的指令等方式。

3)可以设置随机延迟(思考时间),以更接近真实环境的方式进行测试。

4)支持带宽调节以更真实地模拟显示情形。

5)设置Page group以调整客户组访问的合理分配。

另外,WAST可以通过一台或多台客户机模拟大量用户访问Web网站的活动。WAST支持身份验证、加密、Cookies,也能够模拟各种浏览器类型和Modem速度。使用WAST时,为了更加接近真实的情况进行负载测试,通常推荐运行WAST的测试机和Web服务器分开。

2.2 测试环境

由于项目工作需要,对一台Web服务器上的系统进行测试作为实例。这里给出两台机器的配置。一台作为服务器,其基本配置为:Intelxeon(R)E335@2.00 GHz、4 Gbyte内存,操作系统为Windows Server2003。

另一台为测试客户端,其基本配置为:Intel(R)Core(TM)i3-2310M CPU@2.10 GHz双核处理器,操作系统为Windows7,内存2 Gbyte,浏览器为IE 8.0。校园网内网使用WAST测试。

2.3 测试条件及参数设置

安装WAST后,运行该软件。此处弹出窗口为4种录制脚本方式:手动录制、记录浏览器活动、导入IIS日志、导入网站内容文件。最常使用的方法为记录浏览器活动,这种方法简便且易于生成较真实的录制脚本。当然在开始录制之前,要清除IE的缓冲区以保证录制脚本的准确度。选择IE浏览器工具的Internet选项,点击常规标签中的删除文件按钮即可完成这一步。

点击Record之后,出现界面选取需要记录内容的界面。其中包括请求之间的延迟以及用户会话的内容。一般用户在访问系统时,请求之间会产生延迟,即用户的思考时间等,选择该项可以模拟真实场景中用户的操作,如果不选择,将加大服务器测试的压力,从而发现Web应用程序的承受极限。这里测试人员可以根据自己的需要作出取舍。

选择之后进入第二步,点击Finish,即可开始录制脚本。系统会自动弹出默认浏览器窗口,如果要利用IE浏览器进行录制,需提前将IE浏览器设置为默认浏览器。在浏览器的地址栏输入需要测试的网址,模拟真实用户进行一些常规操作,包括点击页面、登陆、提交表单等操作。

操作完成后,关闭浏览器,返回查看WAST。点击Stop Recording,WAST即停止录制脚本文件(见图1)。

在左边栏点击New Recorded Script,即可查看刚刚录制的脚本文件。在脚本文件中删除无用的链接,包括图片链接、无效链接、空白、重复脚本、延迟数过大或过小的脚本等。

删除后,在上方Server栏添加服务器的IP地址。若选择本机作为服务器,IP地址即为Localhost(见图2)。

如果服务器和客户端选用的是同一台机器,测试过程会对客户端产生很大的压力,从而影响最后的测试结果,因此不建议在一台机器上做压力测试。

点击New Recorded Script前方的加号,开始进行负载参数的设置,如图3所示。由于服务器与客户端是分开的,第一项Content Tree不需要进行设置。点击Setting,开始负载选项设置。其中一些重要参数说明如下:

1)Current Connections:通过这一选项来设置访问服务器并发连接的数量。其关系如下:

总并发请求数=总的Socket数=Stress Level(threads)*Stress multiplier

2)Test Run Time:设置测试时间,选择常规的10 min。有一些大型测试为测试服务器的稳定性,会将测试时间定为一个月之久。

3)Request Delay:请求随机延迟。由于已经在录制脚本时录制了延迟时间,这一项就不做设置。

4)Suspend:WAS 允许设置 Warmup Time(热身时间)和Cooldown Time。Warmup Time是为了给服务器数据库、磁盘缓冲等一个准备时间。Warmup Time在正式测试时间之前执行,而Cooldown Time在测试时间之后执行。这两段时间内WAST执行脚本,但并不记录数据。一般将这两段时间设置为30 s~1 min,本文将其都设置为30 s。

其余设置均保留缺省值。

Page Groups选项:用于设置用户访问Web应用流量的比例分布,不同页面受到用户的点击频率不同。如图4所示,这里设置的用户组比例为1∶2∶4∶5∶7。点击脚本页面在Group栏设置不同分组信息。

Users:WAST允许设置不同用户,可以添加用户名和密码,方便访问页面。

Clients:设置不同客户端。本文中测试只需一台客户机,如要添加其他客户端输入IP地址即可,但要保证添加的客户端已安装WAST软件且能正常运行。

Cookies:软件自动保存用户设置的Cookies,不用测试人员设置。

2.4 压力测试过程

以上设置完成后,返回脚本页面,点击灰色三角按钮即可开始运行测试。此时可在服务器端查看任务管理器中的性能,如图5所示。CPU使用率是关注重点,一般要求在最大压力情况下应保证CPU使用率稳定在70%左右,过高则系统性能不稳定。在服务器端机器的运行中输入netstat–an,可以查看客户机向服务器发出的连接请求情况,如图6所示。

3 测试结果及分析

测试完成之后,点击view选单中的reports按钮,可以查看系统自动生成的测试报告。下面对几个重要部分作具体分析。

首先通过图7,可以查看本次测试的基本信息,包括测试名字、测试时长、测试客户机数。另外,全部点击数为17 767,每秒请求数为29.61。

在测试报告中最重要的部分就是Socket Errors(请求错误,见图8)和Result Codes(结果代码,见图9)。

在Socket Errors中,4个数值分别为:

1)Connect表示客户端不能与服务器取得连接的次数;

2)Send表示客户端不能正确发送数据到服务器的次数;

3)Recv表示客户端不能正确从服务器接收的次数;

4)Timeouts表示超时的线程数目。

如果这4个数值都比较小,甚至为0,则说明服务器是经得起考验的;如果数值居高不下,甚至接近设置的并发数,那么服务器就需要进一步的检查。这些数据也可以作为是否增加进程数继续测试的标准之一。

图9为Result Codes部分,如果Code列表下的数值都为200,那么表示所有请求都经服务器成功返回;如果数值出现400或400以上,如404,那么则需要在左侧找到“Page Data”节点,查看具体的错误项目。在这里,测试结果出现了404的错误提示,查看“Page Data”节点,发现404错误均出现在重复的check_outchain.php当中,检查此链接,发现此链接为某软件生成的与本测试系统无关的错误链接,导致脚本错误。经过检查之后重新测试,就会得到更准确的结果。

图10为Page Summary部分,在这一部分可以查看每一个链接的点击数。另外两个参数分别为:

1)TTFB Avg:从第一个请求发出到测试工具接收到服务器应答数据的第一个字节之间的平均时间。

2)TTLB Avg:从第一个请求发出到测试工具接收到服务器应答数据的最后一个字节之间的平均时间。

在用户访问页面时,并不是页面可以打开、浏览器不会崩溃就是合格的指标,如果用户在页面打开的过程中等待时间过长,这也是不合格的。在测试报告的Page Data中可以看到如图11的数据表,由表中可以分析,此页面的平均响应时间为0.9 s,最快反应时间为0.6 s,最长反应时间为3.8 s,同样在其他页面数据记录表中也可以看到它们的反应时间。如果反应时间均在5 s以内,则测试结果还是可以接受的。

上述测试只是压力测试的一小部分,通常为了发现系统所能承受的最大线程数,需要逐步增加或减少线程数,观察测试结果中性能参数的变化。在性能参数出现大的问题的边缘数处,要减小线程数的增幅,以细致观察系统能够承受的最大压力。

本系统之后的测试以200进程数为增量,当进程数由800增加到1 000的时候,与服务器的连接出现连接失败的情况,则减小测试进程增量,变为100,由900进程数开始测量,可以看到一直到进程数增加到940时,再次出现访问服务器连接失败的情况,再改变进程数增量,直到进程数增加到935时,访问服务器正常,当进程数增加为936时,出现连接服务器失败的情况。并且在935进程数时,页面响应时间最长平均访问时间为5.8 s,其他页面的平均访问时间也在5 s以下,服务器端的CPU使用率也在30%~40%之间较为平稳。因此可以判断,此次Web压力测试的结果为935进程数。

对于一般的系统而言,服务器承载的进程访问量在600~700之间,最高可达到800左右,当压力测试过程中,设置进程数为1 000时,服务器基本处于崩溃状态,且CPU使用率将高达100%峰值,而本系统服务器所能承载的进程访问量已经超出这个范围且各参数在可以接受的范围内,具有较好的系统性能,即可以满足用户的正常以及超负荷使用。

4 总结

虽然使用WAST测试简单,测试结果分析方便,但是它还是存在一些缺陷。其中一个很重要的方面就是,目前使用的测试工具都是黑盒测试,测试人员不能了解其中的算法流程,使用不同的测试工具得出的结果肯定也是不尽相同,测试工具自身的稳定性也无处得知。因此,压力测试工具的改善还是很值得期待的。

本文对BOSS系统架构下数字电视融合业务互联网门户的压力测试的重要性进行了阐释,并进行了较为详尽的压力测试步骤以及结果分析。另外,在BOSS系统测试领域,除了压力测试,还有BOSS系统测试框架的研究、用户体验研究、对象模型研究等,这些都将是未来一段时间内的研究重点。

[1]王箫笛.基于数字电视平台BOSS系统的应用[J].中国数字电视,2011(12):52-54.

[2]曹三省,刘剑波,蒋青苗,等.互动新媒体业务生成系统技术框架与关键策略[J].电视技术,2008,32(11):61-63.

[3]邹林辉.广电BOSS架构与关键技术探讨[J].电视技术,2010,34(7):82-85.

[4]吕廷杰,杨宁,吴海军,等.电信运营支撑系统OSS——理论、策略与实践[M].北京:人民邮电出版社,2003.

[5]周丹.IPTV业务运营支撑系统(BOSS)的测试方法研究与实施[D].北京:北京邮电大学,2009.

[6]吴为根.基于Web的压力测试[D].上海:复旦大学,2006.

[7]施卫娟,窦如林.基于WAST的Web网站压力测试[J].电脑知识与技术,2008,3(23):888-890.

猜你喜欢
测试工具测试人员浏览器
移动应用众包测试人员信誉度复合计算模型研究
反浏览器指纹追踪
Http并发连接测试工具
浅析软件测试中的心理学应用
手车式真空断路器回路电阻测试电流线接头研究
环球浏览器
福禄克推出先进的连接式测试工具系统
犯罪心理测试人员素质要求分析
犯罪心理测试人员素质要求分析
浏览器