一、引言
跟着收集手艺的迅速成长,尤其是WEB及其应用轨范的普及,各类基于WEB的应用轨范以其便利、快速,易操作等特点不竭成闻敉件开发的重点。与此同时,跟着需求量与应用规模的不竭扩年夜,对WEB应用软件的正确性、有用性和对WEB处事器等方面都提出了越来越高的机能要求,对WEB应用轨范进行有用的系统的测试也逐渐成为人们研究的主要课题。
今朝可以见到各类WEB处事器平台,然而按照Mereury的研究陈述,98%的WEB处事器都没能达到人们所期望的机能,平均只能阐扬人们所期望机能的1/6摆布。WEB机能测试能够确定影响WEB处事器机能的关头身分,年夜而可以有针对性地进行剖析和改良,避免WEB处事器研究和优化过程中的盲目行为;同时,它也是拔取分歧的WEB处事器的主要参考。
跟着WEB应用轨范使用越来越普遍,针对其机能测试的要求也越来越多,然而因为WEB轨范综合了年夜量的新手艺,诸如HTML、JAVA、Javascript、VBScript等,同时它还依靠良多其它的身分,好比Link、Database、Network等,使得WEB应用轨范测试变得很是复杂。例如:WEB压力测试是评价一个WEB应用轨范的首要手段,它的测试就是一个代表性的方面。
在整个web应用的测试中,机能测试占很是主要位置,因为机能直接纺暌钩了Web应用所供给处事的质量水平。Web应用设计的复杂性和用户使用的不成展望性给若何切确地展望它的机能带来了很年夜的挑战,而且跟着Web应用的规模越来越年夜、用户越来越多,这个挑战变得加倍严重。文中就若何切确地设计负载测试进行了深切研究,提出了对用户导航、用户延迟进行建模的体例来设计负载测试,以使负载测试能够切确地模拟现实用户情形和展望Web应用的机能。最后应用工具loadrunner进行负载测试拭魅战。
WEB应用轨范的测试有别于传统软件的测试,它有其自身的特点。下面我们进行斗劲深切的谈判。
二、WEB测试手艺
(一)WEB应用轨范系统结构
WEB应用轨范采用B/S结构,它是伴跟着Internet手艺的不竭前进,由C/S结构改良和成长起来的新型系统结构。在这种结构下,用户界面完全经由过程WWW浏览器实现,一部门事务逻辑在前端实现,可是首要事务逻辑则在处事器端实现,形成所谓3tier结构。B/S结构操作不竭成熟和普及的浏览器手艺实现原本需要复杂专用软件才能实现的强年夜功能,并节约了开发成本,是一种全新的软件系统机关手艺。这种结构更成为当今应用软件开发的首选系统结构,今朝最风行的mi?鄄crosoft.net也是在这样一种布景下被提出来的架构。
传统的软件一般采用C/S结构,此结构把数据库内容放在远程的处事器上,而在客户机上安装响应软件。C/S软件一般采用两层结构,C/S结构在手艺上很成熟,它的首要特点是交互性强、具有平安的存取模式、收集通信量低、响应速度快、利于措置年夜量数据。可是该结构的轨范是针对性开发,变换不够矫捷,维护和打点的难度较年夜。
(二)WEB测试的内容与目的
在很多时候我们都把测试的目的定位为寻找软件的BUG,而且是尽可能的找出BUG来,而测试人员所做的工作就是找软件的短处,只要找出短处就可以了,这样很轻易带了一系列的问题。好比测试人员给某网站做测试,并递交了一份简单的测试陈述:“当100用户配合按某提交按钮时,发生年夜量的提交失踪败”。对于测试人员来说,他已经完成了他自己的使命,找出了BUG,可是,这样的测试陈述对于开发人员和项目打点者却毫无用处。陈述中并未说起造成提交失踪败的原因,是硬件资本不足、收集问题、支撑软件参数设置错误仍是应用开发问题等等。
测试的目的是证伪,但不能片面的理解为简单的找不BUG就可以了。软件测试应该履历以下四个轨范:
1、测试人员描述发现的问题(找到BUG);
2、测试人员具体说明是在何种情形下测试发现的问题,搜罗测试的情形、输入的数据、发现问题的类型、问题的严重水平等情形;
3、测试人员协同开发人员一路去剖析BUG的原因,找出软件的缺陷地址;
4、测试人员按照解决的情形进行分类汇总,以便日后进行软件设计的时候供给参考,避免往后呈现近似软件缺陷。
(三)拟定WEB测试打算
当我们明晰了测试的目的之后,真正起头针对一个WEB应用轨范进行测试的时候,我们需要拟定一套具体的测试计划,这样才能顺遂的完成所有的测试内容,打算的内容归纳为以下几步:
1、首先对被测的WEB应用轨范进行需求剖析,即对你所做的测试做一个简要的介绍,搜罗描述测试的方针和规模,所测试的方针要实现一个什么样的功能,总结根基文档,首要勾当。
2、写出测试策略和体例,这里搜罗测试起头的前提,测试的类型,测试起头的尺度以及所测试的功能,测试经由过程或失踪败的尺度,竣事测试的前提,测试过程中碰着什么样的情形终止和怎么措置后恢复等。
3、确定测试情形的要求(搜罗软件和硬件方面),选择合适的测试工具。
4、首要针对你测试的行为,描述你测试的细节,搜罗测试用例列表,进度表,错误品级剖析,对测试打算的总结,和在测试过程会呈现的风险剖析等。
(四)测试的类型
WEB测试的类型搜罗内容测试、界面测试、功能测试、机能测试、兼容性测试、平安性测试等情形。内容测试、界面测试和兼容性测试都斗劲简单,在此不再细谈。WEB的功能测试与传统的软件测试区别不年夜,主若是在毗连测试方面有点区别,数据的传递方面会稍微复杂点。因为WEB软件都是采用B/S结构,客户端所需的处事都是由处事器供给的,所以主若是测试处事器上软件运行的机能。WEB应用轨范的测试搜罗客户端毗连处事器速度方面的测试和压力测试这两方面,机能测试的轨范:
第一,剖析产物结构,明晰机能测试的需求,搜罗并发、极限、设置装备摆设和指标等方面的机能要求,需要时基于LOAD测试的不异测略需同时考虑不变性测试的需求。
第一,剖析应用场景和用户数据,细分用户行为和相关的数据流,确定测试点或测试接口,列示系统接口的可能瓶颈,一般是先主干接口再支线接口,并完成初步的测试用例设计。
第三,依据机能测试需乞降确定的测试点进行测试组网设计,并明晰分魄鬃曾方案的主要水平或优先级作为取舍评估的依据,需要时在前期产物设计中提出撑持机能测试的可测试性设计方案和对测试工具的需求。
第四,完成机能测试用例设计、分类选择和依据用户行为剖析设计测试规程,并筹备好测试用例将用到的测试数据。
第五,确定采用的测试工具。
第六,进行初验测试,以主干接口的可用性为主,按照测试结不美观剖析机能瓶颈,经由过程迭代保证根基的指标等测试的情形。
第七,迭代进行周全的机能测试,完成打算中的机能测试用例的执行。
第八,完成机能测试评估陈述。
在进行机能测试的时候,我们需要知道一些有用的机能指标,下面我们来列出一些首要的机能指标:
一是,通用指标(指Web应用处事器、数据库处事器必需测试项):
● ProcessorTime:指处事器CPU占用率,一般平均达到70%时,处事就接近饱和;
● Memory Available Mbyte:可用内存数,如不美观测试时发现内存有转变情形也要注重,如不美观是内存泄露则斗劲严重;
● Physicsdisk Time :物理磁盘读写时刻情形。
二是,Web处事器指标:
● Avg Rps:平均每秒钟响应次数=总请求时刻/秒数;
● Avg time to last byte per terstion(mstes):平均每秒营业剧本的迭代次数;*Successful Rounds:成功的请求;
● Failed Rounds:失踪败的请求;
● Successful Hits:成功的点击次数;
● Failed Hits:失踪败的点击次数;
● Hits Per Second:每秒点击次数;
● Successful Hits Per Second:每秒成功的点击次数;
● Failed Hits Per Second:每秒失踪败的点击次数;
● Attempted Connections:考试考试链接数。
三是,数据库处事器指标:
● User 0 Connections :用户毗连数,也就是数据库的毗连数目;
● Number of deadlocks:数据库死锁;
● Butter Cache hit:数据库Cache的射中情形。
(五)测试工具介绍
1、ACT(或者MSACT)。ACT是微软的Visual Studio 和Visual Studio.NET带的一套进行轨范测试的工具,ACT不单可以记实轨范运行的具体数据参数,用图表显示轨范运行状况,而且安装和使用都斗劲简单,结不美观阅读也很便利,是一套较理想的测试工具。
Microsoft Web Application Stress Tool (WAS):这个工具和ACT一样是微软的产物,可是这个工具没有和Visual Studio集成,可以零丁使用。感受这个轨范此刻还在测试,可是一些根基的功能已经很完整,可以完成ACT几乎所有功能,而且WAS使用加倍简单,设置也加倍完整了然。这个工具的此吐矣闽特点是,它的报表是纯文本文件,而不是风行的HTML文件名目,但内容方面一点也不减色。
2、Open System Testing Architecture (OpenSTA)。OpenSTA的特点是可以模拟良多用户来访谒需要测试的网站,它是一个功能强年夜、自界说设置功能完整的软件,但这些设置年夜部门需要经由过程Script来完成,是以在真正的使用这个软件之前,必需进修好它的Script编写。如不美观需要完成很复杂的功能,Script的要求还斗劲高,当然,这也是它的利益,一些轨范员不会在意这些Script的。这个软件完全免费而且源代码可以下载,可以自己改削达到特定的要求。
3、PureLoad。PureLoad是基于Java的测试工具,它的Script代码完全使用XML,所以这些代码的编写很简单,它的测试报表包含文字和图形并可以输出为HTML文件。因为是基于Java的软件,所以可以经由过程Java Beans API来增强软件功能。
4、QALoad。QALoad不单单测试WEB应用,还可以测试一些后台的工具,好比SQL Server等,只若是它撑持的和谈,都可以测试;此外一点,QALoad不单可以测试Windows,而且可以测试AIX, HP-UX 和 Solaris等系统。可是,这款软件价钱很高。
5、LoadRunner。Mercury LoadRunner是一种展望系统行为和机能的负载测试工具。经由过程以模拟上万万用户实施并发负载及实时机能监测的体例来确认和查找问题,LoadRunner能够对折个企业架构进行测试。经由过程使用LoadRunner,企业能最年夜限度地缩短测试时刻,优化机能和加速应用系统的发布周期。
对于财年夜气粗的年夜公司而言,这款软件可能斗劲适合,它的功能和QALoad对比八两半斤,市道上驰誉的公司如IBM、SUN、Oracle等都用这个软件。可是它的价钱也高不成攀,和功能成正比。
三、进一步的工作与谈判
跟着周全质量打点思惟在软件开发规模的应用和不竭向前推进,软件测试也由最初的仅仅针对软件制品扩展到了针对软件半制品甚至过程产物的全过程测试,这是对软件测试的一种必然扩充。WEB测试也会跟着这一思惟,不竭地扩展到WEB软件的各个生命周期中去,这将使WEB应用轨范取得更高的质量,这也是我们往后需要进一步研究的内容。出格是对WEB压力测试自顺应模子的试探才刚刚起头,有良多不足之处,例如:今朝的测试人机交互较多,而自动完成的轨范较少等,这些都有待日后的改良。
除了前面介绍的WEB压力测试外,今朝WEB测试的首要研究热点还有:WEB应用测试的框架研究,WEB应用轨范测试的对象模子研究及其应用,WEB测试的高度自动化研究等等,都将是未来一段时代内的研究重点。