摘要:网络化为高校教学管理注入了活力,彻底改变了管理的效率,作为学分制核心思想的选课制度目前已逐步采用了基于web的方式进行,如何保证选课系统的稳定性,为学分制的进一步全面推行奠定基础,其意义重大。压力负载测试是在软件的正式使用前模拟真实的使用环境,对软件开展的检查,通过测试可以详细掌握软件的稳定性,从而为改进软件更好满足用户需求提供保障,对于选课系统的压力负载测试为选课工作的顺利开展打下了基础。
关键词:web;选课系统;压力负载测试
一、 引言
随着高校学分制的广泛实行,选课这一核心思想越来越受到普遍重视,如何最大限度实现资源的合理分配,科学合理得做好选课工作对于学分制的重要性不言而喻,选课工作作为高校教务管理工作的重要组成部分,其重要性日趋明显。
开发基于web的选课系统,取代手工的选课方式已经为众多高校所采纳,然而面对海量的选课数据处理,选课系统的瘫痪现象也时有发生,给选课工作带来了重大影响。1月20日青年时报上关于某高校“学生查分心切致教务网‘瘫痪’数小时”让人为教学管理系统的负载能力捏了一把汗。如何防范此类事情的发生,在系统的使用前期开展压力负载测试势在必行。
二、 压力负载测试概述
软件测试中的负载测试是指模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如cpu、内存)等,以检验系统的行为和特性,发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。WWw.133229.Com负载测试更多地体现了一种方法或一种技术。
压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。通过压力测试,可以更快地发现内存泄漏问题,还可以更快地发现影响系统稳定性的问题。例如,在正常负载情况下,某些功能不能正常使用或系统出错的概率比较低,可能一个月只出现一次,但在高负载(压力测试)下,可能一天就出现,从而发现有缺陷的功能或其它系统问题。
三、 选课系统压力负载测试
压力负载测试如果单纯地依赖手工操作是很难完成的,利用性能测试工具如loadrunner等,可以高效地帮助我们完成选课系统压力负载测试的自动化。
(一) 压力负载测试自动化
顾名思义,压力负载测试自动化即采用自动化的方法和手段实现系统的压力负载测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。相对于软件测试的其他环节测试,压力负载测试由于其往往需要在大负荷量,甚至在极限状态下才能了解系统的稳定性,同时将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例,压力负载测试自动化势在必行。
自动化测试的一般定义为各种测试活动的管理与实施,包括测试脚本的开发与执行,以便使用一种自动化测试工具来验证测试需求,测试活动的自动化在许多情况下可以提供其最大的价值,如测试脚本被重复的地方或测试脚本在程序被生成后被许多测试脚本重复调用的地方,也可以说,自动化测试就是使用软件工具来代替手工进行的一系列动作,通常是使用脚本或其他代码驱动应用程序。由于软件测试的工作量很大,测试的许多操作是重复性的、非智力创造性的、需求细致注意力的工作,计算机最适合人类去完成这些任务,但是自动化测试是一个很广泛的概念,目的不同需要的工具也不一样,每种工具都有自己独特的属性,当自动化测试开展到一定精细程度的时候,合理选择工具是很重要的。
常用的压力负载测试工具有loadrunner,webload,qaload等,主要的内容都是编写出测试脚本,脚本中一般包括用户常用的功能,然后运行,得出报告。使用压力测试工具进行压力测试。测试可以帮助找到一些大型的问题,如死机、崩损、内存泄漏等,因为有些存在内存泄漏问题的程序,在运行一两次时可能不会出现问题,但是如果运行了成千上万次,内存泄漏得越来越多,就会导致系统崩滑。
(二) 测试工具loadrunner
目前,业界中有不少能够做性能和压力测试的工具,mercury(美科利)interactive公司的loadrunner是其中的佼佼者,也已经成为了行业的规范,目前最新的版本8.1。loadrunner 是一种预测系统行为和性能的负载测试工具,通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,loadrunner 能够对整个企业架构进行测试,loadrunner 适用于各种体系架构,能支持广范的协议和
技术(如web、ftp、database等),能预测系统行为并优化系统性能。它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。loadrunner是一个强大有力的压力测试工具,它的脚本可以录制生成,自动关联。测试场景面向指标,实现了多方监控。而且测试结果采用图表显示,可以自由拆分组合。通过loadrunner的测试结果图表对比,你可以寻找出系统瓶颈的原因,一般来说可以按照服务器硬件、网络、应用程序、操作系统、中间件的顺序进行分析。
(三) 使用loadrunner对选课系统进行负载测试
loadrunner包含很多组件,其中最常用的有visualuser generato(以下简称vugen)、controller、analysis。使用loadrunner进行压力负载测试的一般过程为:制定负载测试计划、开发测试脚本、创建运行场景、运行测试、监视场景、分析测试结果。开发测试脚本要使用vugen组件,脚本要完成的内容有每一个虚拟用户的活动、定义结合点、定义事务。运行场景描述在测试活动中发生的各种事件,利用controller创建,一个运行场景包括一个运行虚拟用户活动的loadrunner机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组,而analysis则用于在最后分析测试结果。
目前我院的选课系统主要用于专业选修课的预选、公共选修课和公共体育课的选课,专业选修课的预选在选课容量上未做限制,学生选课相对分散,对于选课系统的性能要求不是很高;公共选修课采用2轮筛选制加1轮优先制,系统的压力主要集中在第3轮的优先制选课,但由于前2轮的筛选分担了近7层的选课数据量,故总体而言系统出现响应滞后甚至瘫痪的几率较低;我院根据教学计划安排,学生在第2、3、4学期需要自行登录选课系统选择体育项目课程,相比公共选修课,公共体育课由于受教学场地、时间、教师等资源限制较多,尤其是从专业的排课角度而言,需要同一专业同一班级的课程上课时间必须保持一致,以便其他课程的合理安排,极大限制了学生选课的自由度,故结合实际情况采用完全优先制,即先选先得,即使经过年级分开选的方式缓解压力,每次选课人数也维持在一届学生的2000人左右,对于选课系统的负载能力要求极高。
使用loadrunner对选课系统进行压力负载测试,从而预先了解选课系统的承载能力,针对问题改进系统,对于科学合理安排选课工作,最大限度保证学生的权利至关重要。下文将从测试环境、测试过程、分析结果等方面进行阐述。
1、 测试环境
(1) 测试系统运行环境
目前我院的选课系统从属于教务管理系统,系杭州正方软件股份有限公司与浙江大学联合制作研发的高校教学管理软件,其数据库服务器为ibm公司的产品ibm system x3850,cpu配置为4*xeon em64tmp 3.0ghz 7120n,内存配置为4*2gb ddr2 ecc校验,运行的操作系统为unix系统;由于条件有限,目前web服务器和应用服务器为同一台服务器——ibm system x3650,ibm ia构架机架服务器中的主力机型,cpu配置为为2*xeonem64t dual core 2.00g/2*2mb l2,1333mhz,2-smp,内存配置为4*1024mb pc2-5300 ddr2,操作系统为microsoft windows server 2003 enterprise edition。(2) 客户端运行环境
客户端为普通pc,cpu配置为intel(r) core (tm)2duoe7500 2.93ghz,内存配置为1.93gb,运行的操作系统为microsoft windows xp professional。
2、 测试过程
(1) 测试脚本录制、编写与调试。录制用户进行选课的脚本,分别录制登录系统、选课提交等两个脚本。然后对登录帐号密码和选择课程进行参数化,将查询结果显示操作设定为事件。
(2) 运行loadrunner的conrroller,选择录制的脚本,由于选课相关操作具有特殊性,实际过程中进行操作的用户名密码不尽相同,而且选课的课程也不相同,故使用常用的设置虚拟用户数量并运行的方法并不适用,
故此,复制脚本,修改其中的参数,从而并发进行系统访问
操作。选课的实际情况为学生预先登录系统,在选课时间到达时进行选课,那么登录系统这一环节的并发数相对较少,根据选课系统目标在线用户约2000个,初步估算登录系统的并发数为100,根据访问量和数据量分析可按“并发用户数=在线用户数*30%”公式折算,选课提交并发用户数约个。&n
bsp; (3) 记录成功登录系统及选课提交完成所需的时间,并关注系统资源占用情况。表2即测试过程中所记录
的部分数据(时间:ms)。
3、 分析结果
(1) 系统对于登录和选课提交操作的响应速度因处理过程不同而相差较大,当登录系统的并发数达到150时,其成功率开始降低,而选课提交操作当并发数达到500时,其成功率依然很高,故可以得出结论,系统不同环节对于性能的要求不同,整个系统的瓶颈可能出现的环节也视程序复杂性和使用情况而不同。
(2) 登录系统最大并发量在100左右,当增加到150时,系统即会出现连接被拒绝的错误。
(3) 选课提交的最大并发量在500左右,成功率较高,当并发量往上增加时,成功率出现明显下降。
由于系统本身架构技术的限制,同时受数据库服务器、应用服务器甚至网络本身的制约,当访问量达到较大值时,系统并不能很好地持续工作,其整体压力负载能力还有待提高。
四、 总结
对基于web的选课系统进行的压力负载测试是教务管理系统质量保证的重要环节,采用自动化的测试工具不仅可以提高工作的效率,还可以充分保证测试工作的准确性,是软件质量保证体系不可缺少的一环。
参考文献:
[1]款服务器压力测试软件http://www.51testing.com/?uid-239896-action-viewspace-itemid-106418
[2]角燕琼.web系统负载测试的实现 学术讨论网络与通信
[3]李媛.web应用程序的压力负载测试——《科技信息(科学教研)》2008年21期
[4]jack shirazi.关注性能: 压力负载——压力测试及为项目选择正确的工具所要考虑的因素http://www.ibm.com/developerworks/cn/java/j-perf10283/
[5] 旋极科技.电子商务性能压力负载测试compuware-qaload http://www.watertek.com/templets/wt_sp/dzsw_nr_x_01.html
论文网在线