一、引言
   
    跟着收集手艺的迅速成长,尤其是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 :物理磁盘读写时刻情形。