最新基于Web的性能测试分析学生公寓管理系统课程设计.docx
《最新基于Web的性能测试分析学生公寓管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《最新基于Web的性能测试分析学生公寓管理系统课程设计.docx(25页珍藏版)》请在冰豆网上搜索。
最新基于Web的性能测试分析学生公寓管理系统课程设计
目 录
一、前言2
二、性能测试概述3
三、系统分析8
四、规划测试10
五、性能测试的实现15
六、运行结果处理分析22
七、课设小结及心得体会27
八、查考文献28
一、前言
作为一个以软件测试为专业的在校大学生,在没有全面掌握软件测试的技术和经验前,接触软件测试的实践机会是很少的,所以开设软件测试课程设计是在学生走向软件测试师之前必要的锻炼方式。
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保障的关键步骤。
其定义可简略概括为:
为了发现错误而运行程序的过程。
随着软件规模的不断扩大,软件质量问题已成为制约计算机发展的主要因素之一。
作为保证软件质量和可靠性的手段,软件测试起着不可替代的作用。
在开发大型软件的漫长过程中,面对极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺。
因此,在软件生命周期的每个阶段都不可避免地会产生差错。
测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错误。
目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明.设计和编码的最后复审,也是必不可少的关键步骤。
随着电力信息化的发展和技术的进步,电力信息化软件的架构也由C/S结构发展到了现在的B/S架构,如今电力信息化软件的主流正是通过Internet访问,基于Web的应用程序。
与以往的软件相比,基于Web的信息化软件有着不同于以往软件的特点
A集中包括数据库集中,信息系统管理集中,业务管理集约化。
B大分布按照地域广泛分布,这与“集中”的特点是对立统一的。
C大量包括数据量大,业务量大。
正是由于以上的特点,基于Web的信息化软件相比传统软件,带来了非常大的优越性,但同时也带来了很多挑战,这是因为基于Web的信息系统的大分布,决定了Web服务器要同时接受大量的数据请求。
这样一旦Web服务器瘫痪即将造成巨大的损失。
这就对Web系统的性能提出了要求,要求产品在出厂前必须接受严格的性能测试。
有鉴于此,本课设将基于Web的性能测试作为主要研究方向,本文将以“学生公寓管理系统1.3版”作为对象,以美国Mercury公司生产的LoadRunner软件为工具进行外部性能压力测试。
二、性能测试概述
2.1软件测试概述
软件开发和使用的历史留给了使用者很多由于软件缺陷而导致的巨大财力、物力损失的经验教训。
这些经验教训迫使软件开发者们必须添加一个相应的流程,并在此流程中采取强有力的检测措施来检测未发现的隐藏的软件缺陷,也就是软件测试。
从宏观意义讲,软件测试可以划分为以下三个方面:
A软件测试管理:
测试流程管理、测试职业管理,测试技能方法管理等。
B软件测试技术方法:
根据软件测试的不同阶段周期、不同测试类型、不同软件类型等,深入研究软件测试的技术及方法。
C软件测试自动化:
自动化测试流程、自动化测试管理、自动化测试工具等。
软件测试大致分为以上三类,每类还可以细化为更多子方面,例如第二类根据测试类型还可细化为功能测试、性能测试、安全测试等,根据测试方法可细化为黑盒测试、白盒测试、灰盒测试等。
之所以将软件测试自动化单独列出来,是考虑到软件测试自动化既包括技术方法方面,又包含管理方面;更重要的是,软件测试自动化是软件测试领域无法逾越的发展阶段。
2.2性能测试
性能测试用于测试应用程序在各种情况下的处理和响应时间。
在性能测试期间,测量和记录性能目标指定的度量标准值,达到全部性能度量标准(如思考时间,事务混合等)非常重要。
在各种约束下,西测试应尽可能实际。
例如,对应用程序进行测试,确定它在许多客户端同时访问它时的性能。
多线程测试应用程序可以用可复制的方式模拟多个客户端,每个线程代表一个客户端。
如果应用程序访问数据库,则数据库应包含实际数目的记录,并且测试应使用数据项的随机(但有效)值。
如果测试数据库太小,数据库服务器的缓存效果将产生不符合实际情况的测试结果。
如果输入或访问数据的方式不符合实际情况,则结果也可能不符合实际情况。
例如,在主键上按字母顺序创建新数据是不太可能的。
通常,测试装置必须接受用户指定的输入参数,如事物混合,思考时间,客户端数目等。
然而,测试装置本身也可以规定创建实际的随机数据规则。
性能测试通过模拟多客户端同时访问服务器的方式对被测试应用程序进行测试并搜集相关数据,分析如线程数量,系统池资源,进程工作集,系统队列,异常,进程资源,事务处理响应时间等类型的数据,最终得出性能测试报告。
2.3主流性能测试工具比较
随着软件测试的地位逐步提高,测试的重要性逐步显现,测试工具的应用已经成为了普遍的趋势。
目前用于测试的工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具。
总的来说,测试工具的应用可以提高测试的质量、测试的效率。
但是在选择和使用测试工具的时候,应该看到,在测试过程中,并不是所有的测试工具都适合使用,同时,有了测试工具、会使用测试工具并不等于测试工具真正能在测试中发挥作用。
下文将针对一些主流黑盒性能测试工具进行比较介绍:
2.3.1MicrosoftWebApplicationStressTool(WAS)
MicrosoftWebApplicationStressTool(WAS)是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。
透过这套功能强大的压力测试工具,可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响。
WAS可以以数种不同的方式建立测试指令:
包含以手动,录制浏览器操作步骤,或直接录入IIS的记录文件,录入网站的内容及录入其他测试指令的方式。
同时,该工具也支持多种客户端接口:
标准的网站应用程序C++的客户端,使用ActiveServerPage客户端,或是使用WebApplicationStress对象模型建立定义的借口。
WAS也可以利用多种不同的认证方式妨真实际的情况,包含DPA,NTLM及SSL等。
WAS使用简单,配置也完备明了,它所生成的报表是纯文本文件,而不是流行的HTML文件格式。
2.3.2OpenSystemTestingArchitecture(OpenSTA)
OpenSTA是一个免费的,源代码开放的性能测试工具,主要用于测试Web站点负载能力,可根据测试需求而建立测试条件,跟踪站点,综合分析测试运行情况。
OpernSTA的特点是可以模拟很多用户来访问需要测试的网站,它是一个功能强大,自定义设置功能完备的软件,但是,这些设置大部分需要通过Script来完成,因此要求测试人员掌握其Script编写,并且,随着需要完成功能的复杂化,起对应的要求也越高。
作为一个开源软件,OpenSTA完全免费并且原代码可下载,有需要的情况下测
试人员可以修改其源代码以达到自身要求。
2.3.3QALoad
QALoad是客户/服务器系统,企业资源配置(ERP)和电子商务应用的自动化负载测试工具。
QALoad是QACenter性能版的一部分,通过可重复的,真实的测试能够彻底地度量应用程序的可扩展性和性能。
QACenter汇集完整的跨企业的自动测试产品,专门为提高软件质量而设计,可以在整个开发周期,跨越多种平台自动执行测试任务。
准确仿真复杂业务的进行,对于预测电子商务应用软件的功能至关重要。
运用QALoad可以迅速创造出一些实际的安装测试方案,而不需要手动编写脚本或有关应用中间软件的详细知识和协议。
在对结合了多种传输协议的应用软件进行负载测试时,为了准确仿真这些应用软件产生的流量,QALoad可以捕获多种协议并在同一测试过程中执行它们。
基于浏览器的应用经常打开与服务器的多个连接以缩短网页下灾时间,导致服务器的额外流量,QALoad能准确地仿真出浏览器与服务器之间的交互,包括多重连接,使负载更加准确。
QALoad不单单可以测试WEB应用,还可以对后台进行测试,如SQLServer等,只要是它支持的协议都可以测试;另外,QALoad不但可以测试Windows,还可以测试AIX,HP-UX,Solaris等系统。
该软件价格十分高昂。
2.3.4IBMRationalTeamTest(Teamtest)
RationalTeamTest提供一系列工具进行全方面的软件测试,包括测试规划和准备,自动生成测试脚本,缺陷追踪及更正,测试报告,测试结果制图和测试进度评估等。
高端可伸缩的RationalTeamTest可以帮助测试人员隔离性能瓶颈的原因,应用RationalTeamTest测试人员可以分析商务事务处理,客户呼叫和系统资源等引起性能恶化的因素。
RationalTeamTest还包含:
1)RationalRobot-业界领先的自动测试工具,可以生成,修改和运行功能,分布式功能,衰退等测试。
2)RationTestManger-可以从一个中心桌面计划,管理,组织,执行和报告所有类型的测试活动,无论手动还是自动。
它将使得整个开发组更容易的共享测试结果和报告。
3)RationalClearQuest-一个功能强大且高度灵活的缺陷和变更跟踪系统,可以捕获,跟踪和管理所有类型的变更请求。
RationalTeamTest支持包括MicrsoftVisualStudio.NETOracleDeveloper/2000DelphiPeopleSoftPowerBuilder在内的多种IDE和包括ActiverX,JAVA/JavaScript,HTML/DHTML/XML,VisualBasic/C++在内的多种语言。
2.3.5WebLoad
RadView公司开发的WebLoad性能测试分析工具旨在测试Web应用和Web服务的功能,性能,程序漏洞,兼容性,稳定性和抗攻击性,并且能够在测试的同时分析问题原因和定位故障点。
WebLoad专为测试在大量用户访问下的WEB应用性能而设计,控制中心运载在Windows2000/xp/2018系统上,负载发生模块(loadmachine)可在windows,solaris和linux系统上运行,模拟出的用户流量支持.NET和J2EE两种环境。
WebLoad的测试脚本采用Javascript脚本语言实现,完全支持DOM,在此基础上,WebLoad可以将测试单元组织成树形结构,对Web应用进行遍历或者选择性测试。
该工具的专利技术还可以让测试人员为系统设定最低可接受性能门限,采用自增用户数的循环方式进行测试以自动测得系统的最大用户容量。
它还能通过直观的图形界面直接连接到数据库测试数据库性能,还可以测试多种Internet协议如Ftp,tenet,SMTP,POP等的性能。
WebLoad还有一个特点就是它可以模拟DDoS攻击,该功能可以模拟诸如Tfn,Tfn2K,Trinoo,Smurf,Flitz,Carko,Omega3和TCPFlood(SYN,ACK),UDPFlood,ICMPFlood等攻击测试Web系统在面临DDoS的时候可用性和反应时间的受影响情况。
同时WebLoad提供有关DOS攻击测试的详细报告,帮助用户分析系统漏洞和弱点,为加固系统提供依据。
2.3.6LoadRunner
本文所用工具LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。
LoadRunner的测试对象是整个企业的系统,可以通过模拟实际拥护的操作行为和实行实时性能监测,来帮助测试人员更快的查找和发现问题。
此外,LoadRunner支持广泛协议和技术,为特殊环境提供特殊的解决方案。
较其他测试软件,LoadRunner可以更加方便的创建虚拟用户和创建真实的负载以定位性能问题,并通过重复测试以保证系统发布的高性能。
作为高效可靠的工业标准级负载测试工具,LoadRunner的生产者Mercury公司也是全球企业测试市场的绝对领导者。
除LoadRunner外,Mercury公司的主要产品还包括业界知名的WinRunner,TestDirector和QuickTestPro等,在全球市场上占有绝大部分的份额。
基于以上理由,本文在针对学生公寓管理系统的性能测试中将使用此项工具。
LoadRunner软件可大致分为三个组件:
1)VirtualUserGenerator:
通过VirtualUserGenerator用户可简便创建起系统负载。
该引擎能生成虚拟用户,以虚拟拥护的方式模拟真实用户的业务操作行为,记录业务流程然后将其转化为测试脚本。
2)Controller:
通过Controller,测试人员可以通过它快速组织起多拥护的测试方案(负载方案,业务流程组合与虚拟用户数量),使测试过程自动化。
同时,Controller也可以用来限定负载方案。
3)Analysis:
Contoller使用VirtualUserGenerator生成的脚本对目标软件进行模拟场景测试,场景运行后,所有的数据将保留,此时则使用Analysis组件对所得数据进行分析。
三、系统分析
3.1背景概述
学生公寓管理系统是学校为统一化管理公寓的入住情况,加强对学生宿舍固定资产的管理,方便学生,老师查询水电费及其他讯息建立的互联网站。
该产品功能为:
根据学生学号,姓名,系部,班级,年级查询学生所在宿舍,水电费交费情况,以及学生的其他基本信息,包括:
系部,班级,辅导员,电话,邮箱,备注(如宿舍财产损坏赔偿信息)和老师的入住情况。
对用户密码,数据库参数,住宿费,水电费基本数据(单价等)维护,公寓信息维护(增/删/改),统计每学年住宿费与每月水电费交费情况。
3.2功能概述
学生公寓管理系统功能需求为以下两类:
(1)普通用户模块:
包括普通用户登录模块,普通用户查询模块和信息发送模块。
学生与老师可通过相应的用户名/密码登陆个人资料界面,并在此界面下进行有关调配,维修,水电费等信息的查询与发送。
(2)高级用户模块:
包括超级管理员模块,后勤部操作模块,辅导员与学工部操作模块,维修信息确认模块,财务部操作模块。
各个部门可通过以上模块对相应信息进行添加,删除,修改,查询和确认。
3.3系统组件与配置
(1)硬件逻辑结构与软件体系结构
“学生公寓管理系统”是一个典型的三层Browser/Server(浏览器/服务器)架构的MIS系统,但应实际情况,目前该系统硬件采用两层模式即单机服务器模式,Web服务器,数据库系统和应用程序均驻留在一台主机中。
如下图
(2)系统主要开发技术
①系统开发语言采用网站设计语言ASP.NET
②数据库访问技术采用WebService
3加密技术采用SSL和数字证书技术
4页面设计技术使用XHTML技术
(3)运行环境
①服务器软件环境
a操作系统:
Windowsxp
bWeb服务器:
Apache+TomCat+JDK1.5
c数据库管理系统:
SQL(StructuredQueryLanguage)Server2000
d处理器型号:
酷睿2处理器及内存容量2G
e外存容量:
120G硬盘
②客户端配置预计
a连接到系统应用程序客户端数量:
预计为50-300
b最低硬件内存:
奔腾1.7G处理器+128M内存
c操作系统及版本:
WindowsXP
d客户端浏览器:
InternetExplorer7.0
3.4分析使用模型及任务分布
学生公寓管理系统的开发主要为方便老师及学生对宿舍资料,调配,水电费和维护等信息进行查询,同时也提供学校各个部门权限对相应信息进行确认和管理。
结合本校实际情况,预计高级用户人员约5-20人,实际同时操作人数最大值在10以下。
主要操作用户为普通用户,主操作模块为普通用户模块。
该管理系统的宿舍调配,维修申请确认等功能因客观原因使用率均有局限,以实际情况为考量,月底交纳水电费时期用户对本系统的使用量将剧增,主任务为水电费查询,预计使用时间为相应通知发布后24小时以内,本校人员基数较大,但结合时间跨度,预计特定时间活动人数为50-400人。
负载期内典型活动为登陆,页面切换与水电费查询。
四、规划测试
4.1定义负载测试目标
概括来说,LoadRunner在负载下对基于Web的应用程序进行测试的过程大致分为以下六个步骤:
在任何类型的系统测试中,制定完善的测试计划都是成功完成测试的基础,一个明确的测试计划将确保制定的方案可完成预定的测试目标。
负载测试计划的过程可分为三步:
在开始测试之前,应精确地定义想要实现的目标。
以下是LoadRunner测试的常规应用程序测试目标,
学生公寓管理系统为SOVO为方便师生对水电费,调配,维修等进行查询,管理而开发的软件系统,结合实际情况定义水电费查询为主任务,本次测试时间确定为2018年1月1日至2018年1月10日,主测试目标为检验该系统在正常峰值下相应模块的响应速度,检验该系统的可靠性,系针对实际应用需求的基础复杂测试。
该系统实际性能需求为:
静态指数需求
支持的终端数:
50
支持同时操作用户数:
300
动态指数需求
非动态网页打开时间要求:
1S
动态网页打开时间要求:
2S
本次测试将通过LoadRunner软件进行以对上述需求进行检测,并在此基础上进行延伸以对该系统负载容量,瓶颈进行评估。
4.2测试思路与测试方案设计
4.2.1设计压力应用思路
设计试图对Web服务进行压力测试的压力测试系统时,必须使它们以某种特定的方式运行代码,这些代码超越了功能验证,目的是要弄清楚被测试的Web服务器是不是仅能做我认为它能做的事,而且在被施加了某些高强度压力的情况下仍然继续正常运行。
概括来说,压力测试必须对相应服务应用以下四个关键条件:
(1)重复(Reptition):
测试的重复就是一遍又一遍地执行某个操作或功能,比如重复调用一个Web服务。
压力测试将确定一个操作能否正常执行,而且能否在每次执行时都正常。
这对于推断一个产品是否适用于某种情况至关重要。
(2)并发(Concurrency):
并发就是同时执行多个操作的行为。
换句话说,就是在同一个服务器上同时调用许多Web服务。
由于引入并发意味着一个线程中的代码有可能被其他线程中的代码中断,所以错误只在一个指令集以特定的顺序执行时才会被发现。
(3)量级(Magnitude):
压力测试系统应该应用于产品的另一个条件考虑到了每个操作中的负载量。
压力测试可以重复执行一个操作,但是操作自身也要尽量给产品增加负担。
(4)随机变化:
任何压力系统都多少带有随机性。
使用重复时,在重新启动或者重复连接服务之前,可以改变操作间的间隔,重复次数,或者也可以改变被重复的Web服务的顺序。
针对学生公寓管理系统的实际运用分析,可得出该项目在实际运用中将具有以下特点:
(1)高级用户模块使用率偏低,常用模块为普通用户模块。
(2)主任务为登陆,水电费查询与页面切换。
(3)使用高峰期为水电费相应通知发布后24小时以内及其他特定时段。
(4)负载期内,将有大量用户同时登陆,相应模块(登陆,水电费查询,页面切换)的工作强度也将增加。
(5)结合本校人员数量,特定时段登陆/活动人数预计为50-400人。
以上为学生公寓管理系统的实际运用特点,针对学生公寓管理系统的测试方案也将在此基础上生成。
4.2.2测试方案设计
通过使用模型分析得出主操作模块为普通用户模块,结合学生公寓管理系统需求规格说明书,可确定主任务为登陆,水电费查询,页面切换。
并在此基础上,得出基本流程:
a.用户为普通权限用户,登陆学生公寓关系系统主页面,输入相应用户名和密码并登陆。
b.进入住户主页,并显示公告信息及自身调频情况,维修状况,包含连接调配信息发送,维修信息发送,学生水电费查询。
b1.用户点击学生水电费查询,进入水电费查询页面,进入c流程。
b2.用户根据其特别需要点击其他连接。
c.用户在水电费查询界面,选择相应的年份和月份并提交。
界面输出相应信息。
d.用户返回住户主页并退出。
结合典型任务,测试目标与主流程图,本次测试将创建复数Vuser脚本以模拟典型最终用户的不同操作,结合测试目标需衡量的任务(如登陆,查询,页面切换)定义相应事务,并在此基础上,通过在脚本中使用集合点来模拟峰值期活动,即多个Vuser在同一时刻执行任务以搜集相关数据。
4.2.3性能测试用例
测试用例1
测试场景描述:
1.用户登陆进入用户主页,总共登陆50个用户(不同IP),登陆模式为每5秒5个用户并发操作。
2.用户点击水电费查询连接。
3.用户在水电费查询模块中活动,过程包括:
选择相应的年月份并提交,界面输出相应数据,此过程重复三次。
4.用户点击维修信息发布连接,进入维修信息发布页面,填写维修信息并提交。
5.用户点击调配宿舍连接,进入调配宿舍申请界面,填写信息并提交。
6.返回用户主页并退出
附:
用户所有行为(登陆,页面切换,查询)间隔为5秒。
测试用例2
测试场景描述:
1.用户登陆进入用户主页,总共登陆300个用户,登陆模式为每5秒10个用户并发操作。
2.用户点击水电费查询连接。
3.用户在水电费查询模块中活动,过程包括:
选择相应的年月份并提交,界面输出相应数据,此过程重复两次。
4.用户点击维修信息发布连接,进入维修信息发布页面,填写维修信息并提交。
5.用户点击调配宿舍连接,进入调配宿舍申请界面,填写信息并提交。
6.用户进行界面切换,顺序为:
发送维护界面,水电费界面,调配宿舍界面。
7.返回用户主页并退出
附:
用户所有行为(登陆,页面切换,查询)间隔为2.5-7.5秒(随机)。
测试用例3
测试场景描述
1.用户登陆进入用户主页,总共登陆300个用户,登陆模式为每5秒60个用户并发操作。
2.用户点击水电费查询连接。
3.用户在水电费查询模块中活动,过程为:
查询水电费×1,点击维修信息发布连接并进入维修信息发布页面。
4.用户点击水电费查询连接,进入水电费查询页面。
5.用户在水电费查询模块中活动,过程为:
查询水电费×3。
6.用户返回用户主页。
7.已经到达此步骤的用户在用户主页等待,当300个用户都到达该处时,300个用户同时退出。
附:
用户所有行为(登陆,页面切换,查询)间隔为2.5-7.5秒(随机)。
五、性能测试的实现
5.1创建用户脚本
LoadRunner使用用户脚本模拟实际用户来访问网站,该工具提供了录制方法来产生用户脚本,模拟多个用户点击与使用目标网站的各个页面和功能。
学生公寓管理系统采用(浏览器/服务器)软件体系结构,主要测试目标为Web应用,因此在本次测试中脚本录制选择Web(HTTP/HTM