软件测试中性能测试在Web测试中的应用-1

上一篇 / 下一篇  2011-12-09 17:06:02 / 个人分类:性能测试

根据Mereury的研究报告,98%WEB服务器都没能达到人们所期望的性能,平均只能发挥人们所期望性能的1/6左右。对WEB应用程序进行有效的系统测试也逐渐成为人们研究的重要课题。WEB性能测试能够确定影响WEB服务器性能的关键因素,从而可以有针对性地进行分析和改进,避免WEB服务器研究和优化过程中的盲目行为;同时,它也是选取不同的WEB服务器的重要参考。51Testing软件测试网7W-Of\m'w3C8O C

然而由于WEB程序综合了大量的新技术,诸如HTMLJAVAJava scriptVB Script等,同时它还依赖很多其它的因素,比如LinkDatabaseNetwork等,使得WEB应用程序测试变得非常复杂。例如:WEB压力测试是评价一个WEB应用程序的主要手段,它的测试就是一个代表性的方面。在整个web应用的测试中,性能测试占非常重要位置,因为性能直接反映了Web应用所提供服务的质量水平。

,o"W,p5Pk+{I0

Web应用设计的复杂性和用户使用的不可预测性给如何准确地预测它的性能带来了很大的挑战,而且随着Web应用的规模越来越大、用户越来越多,这个挑战变得更加严重。WEB应用程序的测试有别于传统软件的测试,它有其自身的特点。文中就如何准确地设计负载测试进行了深入研究,提出了对用户导航、用户延迟进行建模的方法来设计负载测试,以使负载测试能够准确地模拟现实用户环境和预测Web应用的性能。最后应用工具loadrunner进行负载测试实战,下面我们进行比较深入的讨论。

X)A}vm0

一、WEB测试的内容与目的51Testing软件测试网gY v wU:uo

在很多时候我们都把测试的目的定位为寻找软件的BUG,而且是尽可能的找出BUG来,而测试人员所做的事情就是找软件的毛病,只要找出毛病就可以了,这样很容易带了一系列的问题。比如测试人员给某网站做测试,并递交了一份简单的测试报告:“当100用户共同按某提交按钮时,发生大量的提交失败”。对于测试人员来说,他已经完成了他自己的任务,找出了BUG,但是,这样的测试报告对于开发人员和项目管理者却毫无用处。报告中并未提及造成提交失败的原因,是硬件资源不足、网络问题、支撑软件参数设置错误还是应用开发问题等等。51Testing软件测试网 j u0RW_[]

测试的目的是证伪,但不能片面的理解为简单的找不BUG就可以了。软件测试应该经历以下四个步骤:

o-nM3Y9mJv0

1.测试人员描述发现的问题(找到BUG);51Testing软件测试网,my7?6Cu'_.C0j

2.测试人员详细阐明是在何种情况下测试发现的问题,包括测试的环境、输入的数据、发现问题的类型、问题的严重程度等情况;51Testing软件测试网2E Hb!T8jmj6Ff3z|

3.测试人员协同开发人员一起去分析BUG的原因,找出软件的缺陷所在;

0@B O+T[8e/|0

4.测试人员根据解决的情况进行分类汇总,以便日后进行软件设计的时候提供参考,避免以后出现类似软件缺陷

8jP Ix8D0

二、WEB应用程序体系结构51Testing软件测试网[j~tzO(r&[

WEB应用程序采用B/S结构,它是伴随着Internet技术的不断进步,由C/S结构改进和发展起来的新型体系结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑则在服务器端实现,形成所谓3tier结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。这种结构更成为当今应用软件开发的首选体系结构,目前最流行的mi?crosoft.net也是在这样一种背景下被提出来的架构。51Testing软件测试网2c3c)U]GtoIa;i

传统的软件一般采用CS结构,此结构把数据库内容放在远程的服务器上,而在客户机上安装相应软件。CS软件一般采用两层结构,CS结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。51Testing软件测试网 i'Q1yu G3K ^xe

三、制定WEB测试计划51Testing软件测试网SSB4b(I u m4C&s

当我们明确了测试的目的之后,真正开始针对一个WEB应用程序进行测试的时候,我们需要制定一套详细的测试计划,这样才能顺利的完成所有的测试内容,计划的内容归纳为以下几步:51Testing软件测试网(^N%zb1})st[vx

1.首先对被测的WEB应用程序进行需求分析,即对你所做的测试做一个简要的介绍,包括描述测试的目标和范围,所测试的目标要实现一个什么样的功能,总结基本文档,主要活动。51Testing软件测试网sQx$~~$f%v

2.写出测试策略和方法,这里包括测试开始的条件,测试的类型,测试开始的标准以及所测试的功能,测试通过或失败的标准,结束测试的条件,测试过程中遇到什么样的情况终止和怎么处理后恢复等。51Testing软件测试网+\-XubF^ [

3.确定测试环境的要求(包括软件和硬件方面),选择合适的测试工具。

E3O ^~Q5TZI-VF0

4.主要针对你测试的行为,描述你测试的细节,包括测试用例列表,进度表,错误等级分析,对测试计划的总结,和在测试过程会出现的风险分析等。51Testing软件测试网 W@Tw4M%i

四、WEB测试的类型51Testing软件测试网"C7F'|m8m$q.hF^*N'|

WEB测试的类型包括内容测试、界面测试、功能测试、性能测试、兼容性测试安全性测试等情况。内容测试、界面测试和兼容性测试都比较简单,在此不再细谈。WEB的功能测试与传统的软件测试区别不大,主要是在连接测试方面有点区别,数据的传递方面会稍微复杂点。由于WEB软件都是采用B/S结构,客户端所需的服务都是由服务器提供的,所以主要是测试服务器上软件运行的性能。WEB应用程序的测试包括客户端连接服务器速度方面的测试和压力测试这两方面,性能测试的步骤:

)_`x(au:XR] t?j*A0

第一,分析产品结构,明确性能测试的需求,包括并发、极限、配置和指标等方面的性能要求,必要时基于LOAD测试的相同测略需同时考虑稳定性测试的需求。

Nc5AL)nVo j3xfsC0

第一,分析应用场景和用户数据,细分用户行为和相关的数据流,确定测试点或测试接口,列示系统接口的可能瓶颈,一般是先主干接口再支线接口,并完成初步的测试用例设计

n8^K%p [*{u [$Q0

第三,依据性能测试需求和确定的测试点进行测试组网设计,并明确不同组网方案的重要程度或优先级作为取舍评估的依据,必要时在前期产品设计中提出支持性能测试的可测试性设计方案和对测试工具的需求。

+qwSUG0

第四,完成性能测试用例设计、分类选择和依据用户行为分析设计测试规程,并准备好测试用例将用到的测试数据。51Testing软件测试网OeikBmD-_ x7Z

第五,确定采用的测试工具。51Testing软件测试网6\:H'ifE$]

第六,进行初验测试,以主干接口的可用性为主,根据测试结果分析性能瓶颈,通过迭代保证基本的指标等测试的环境。

(o2sK@Fku _M-K.M0

第七,迭代进行全面的性能测试,完成计划中的性能测试用例的执行。51Testing软件测试网y$l+q#TR_k:w)S

第八,完成性能测试评估报告。

APL vNCAG0

在进行性能测试的时候,我们需要知道一些有效的性能指标,下面我们来列出一些主要的性能指标:51Testing软件测试网E GbPN)L];p`

一是,通用指标(指Web应用服务器、数据库服务器必需测试项):

^h'|^"\f0

*ProcessorTime:指服务器CPU占用率,一般平均达到70%时,服务就接近饱和;

*q-\M,Jx:N_0

*Memory Available Mbyte:可用内存数,如果测试时发现内存有变化情况也要注意,如果是内存泄露则比较严重;

pD_|4z I]J0

*Physicsdisk Time:物理磁盘读写时间情况。

Xk0z ^)E(~ZU8{^}0

二是,Web服务器指标:

Qn,I KPL8j0

*Avg Rps:平均每秒钟响应次数=总请求时间/秒数;51Testing软件测试网"Z#U4c/ZC,` oyez#^

*Avg time to last byte per terstionmstes):平均每秒业务角本的迭代次数;*Successful Rounds:成功的请求;

9R7f1n%K(b I E0

*Failed Rounds:失败的请求;51Testing软件测试网H{.]Z$d*@

*Successful Hits:成功的点击次数;51Testing软件测试网(AC.K6y$k@*L{

*Failed Hits:失败的点击次数;

J$[US xWZ0

*Hits Per Second:每秒点击次数;51Testing软件测试网c2o'D(jFz E q%D8j

*Successful Hits Per Second:每秒成功的点击次数;51Testing软件测试网Ds-b7jN/x

*Failed Hits Per Second:每秒失败的点击次数;

j?caBM6fj9x0

*Attempted Connections:尝试链接数。51Testing软件测试网[:q lb6\&`[4nQ

三是,数据库服务器指标:51Testing软件测试网 CnIQ^n z"k

*User 0 Connections:用户连接数,也就是数据库的连接数量;51Testing软件测试网4}&zUPSQ5{

*Number of deadlocks:数据库死锁;

HK L G hw0

*Butter Cache hit:数据库Cache的命中情况。

fA(Ga/f"`2s0

五、WEB测试工具介绍

0Eh7]$}n;sq0

1ACT(或者MSACT)。ACT微软Visual StudioVisual Studio.NET带的一套进行程序测试的工具,ACT不但可以记录程序运行的详细数据参数,用图表显示程序运行状况,而且安装和使用都比较简单,结果阅读也很方便,是一套较理想的测试工具。

,x~3Tx3O0

Microsoft Web Application Stress Tool ( WAS ):这个工具和ACT一样是微软的产品,但是这个工具没有和Visual Studio集成,可以单独使用。感觉这个程序现在还在测试,但是一些基本的功能已经很完备,可以完成ACT几乎所有功能,而且WAS使用更加简单,设置也更加完备明了。这个工具的另外一个特点是,它的报表是纯文本文件,而不是流行的HTML文件格式,但内容方面一点也不逊色。

9g"CE(TVW8Oz%j8d?0

2Open System Testing Architecture (OpenSTA)OpenSTA的特点是可以模拟很多用户来访问需要测试的网站,它是一个功能强大、自定义设置功能完备的软件,但这些设置大部分需要通过Script来完成,因此在真正的使用这个软件之前,必须学习好它的Script编写。如果需要完成很复杂的功能,Script的要求还比较高,当然,这也是它的优点,一些程序员不会在意这些Script的。这个软件完全免费而且源代码可以下载,可以自己修改达到特定的要求。

?4s(W4@\8a0XJ0

3PureLoadPureLoad是基于

TAG:

 

评分:0

我来说两句