基于Web系统的性能测试
摘要:Web应用系统具有方便、快速、易操作性等特点,使得社会中的各行业越来越倾向于使用Web应用系统开展自身业务以及扩大社会影响力。
随着Web应用系统的广泛使用,用户对性能的要求越来越高。
该文主要介绍了Web应用系统的关键性能指标及测试方法,结合案例评估和分析Web应用系统性能的过程。
关键词:Web应用系统性能测试性能指标LoadRunner 中图分类号:TP311 文献标识码:A 文章编号:
1007-9416(2014)04-0156-02
基于Web的应用系统在当今互联网盛行的时代被广泛应用于社会的各个领域,比如:教育行业、交通系统、移动通信、金融系统以及政府部门等各个领域。
由于Web系统所具有的快捷、易使用的特点,使得社会中人们对Web系统更加依赖,也促使了社会各个领域对Web应用系统的重视,纷纷把原有的业务操作模式网络化。
但是在网络化的过程中,随着工作流的增加、使用人员的增多以及业务数据量的剧增,问题也随之而来:如果交互的信息量过大,经常会导致系统反应速度骤降或者系统宕机。
因此,社会各领域中的Web应用系统能否承受住大量的数据访问以及业务操作、并
能够快速地响应使用者的请求、系统能否长时间稳定地运行,系统的性能瓶颈所在,这些都是用户所关心的性能表现。
性能测试的目的是检测系统性能是否符合用户的需求,有无性能方面的瓶颈;所以性能测试是项目建设过程中重要的一环。
测试方法一般采用负载测试、压力测试等方法。
1 性能测试简介
性能测试考察的是通过性能指标验证系统有无性能问题。
测试方法主要包括负载测试、压力测试、大数据量测试、疲劳强度测试等。
在测试过程中通常是模拟真实用户使用环境下的负载量,统计分析系统各方面的性能数据,得出性能测试结论。
在实际的测试工作中,通常要结合几种测试方法,综合分析测试过程中体现出来的各种数据。
1.1 性能测试类型
(1)负载测试:是在系统真实的用户环境下或模拟系统真实运行环境及用户真实业务使用场景情况下,通过不断给系统增加压力,在一定压力下延长系统运行时间,来验证系统各项性能指标的变化情况,直到系统性能出现拐点。
目前一般采用业内经常使用的测试工具LoadRunner来执行测试。
当然也可以采用其他的测试工具。
本文是利用LoadRunner进行测试。
(2)压力测试:是对系统不断增加负载,让系统在处于极限负载的情况下或者是某项指标已经处于饱和的状态
下,继续增加负载量或运行时间,观察系统性能表现,验证系统是否出现内存泄露、系统宕机等异常情况。
通常压力测试伴随着负载测试。
(3)大数据量测试:包含两层意思,既可指在某些容器(如数据库、存储设备)中有较大数量的数据记录情况下对系统进行的测试,也可指进行并发或某些操作时创建大量数据来动态的开展测试。
大数据量测试主要是指用大批量数据对系统产生压力或影响,同时验证系统各项指标运行是否正常。
(4)疲劳强度测试:被测应用系统是否可以长时间的运行正常,一般伴随着压力测试或者是以日常普通压力运行很长一段时间,系统能否运行稳定。
1.2 性能测试指标简介
性能测试是保证软件质量的重要一环,通过不同的负载,观察系统运行过程中的性能指标,发现问题所在,并不断解决问题、优化系统。
以达到客户的性能方面的要求。
应用系统的性能主要通过各项性能指标来体现。
Web应用系统项目性能测试主要有以下几个性能指标:
(1)吞吐量:是指在一次性能测试过程中网络上传输的数据量总和。
吞吐率:是吞吐量/传输时间,通常用来表示单位时间内传输的数据量,吞吐率是一个非常重要的性能指标,一个系统的负载能力越强,那就意味着系统在单位时间
内处理的数据量就越大,吞吐量也越大。
当用户请求数达到足够大时,系统性能会发生变化,吞吐量会逐渐处于饱和状态并有可能出现拐点。
(2)最大并发用户数:系统能够在某一特定的时间段内能同时正确处理并及时处理的最大用户数。
一般采用负载测试或压力测试,获得系统比较合理的并发数据量,达到客户的性能需求。
(3)响应时间:是指对请求做出响应所需要的时间。
当系统在高负载的作用下出现某一种或几种资源耗尽时,响应时间随之急剧增加,进而观察其他性能数据的变化。
发现系统可能存在的瓶颈。
(4)资源利用率:指的是在一段时间内资源平均被占用的情况,例如内存利用率、CPU占用情况等。
分析某个系统性能最重要的一个指标是资源利用率,通过分析各资源的使用情况做出改善系统性能的决策。
由于Web系统结构非常复杂,所以性能测试是一项复杂的工作,涉及到的性能指标较多,测试过程中应明确测试目的,考察重要的性能指标,借助于自动化测试软件监控性能指标数据。
1.3 web项目体系结构
Web应用系统一般是三层的体系结构,即客户端---应用服务器---数据库服务器三层体系结构。
在该体系结构中,Web
浏览器作为客户端,提供图形用户界而,负责与客户进行交流。
它通过HTTP协议从应用层的HTTP服务器下载超文本页面,同时下载并执行内嵌在页面中的客户端程序或中间代码。
向应用服务器中有关服务对象发出请求。
Web服务器收到请求后,调用数据库服务器和其它服务器,处理请求、返回结果并把结果显示到客户端的浏览器上。
依据Web应用系统的体系结构.Web应用系统性能测试主要可从三方面进行:应用系统在浏览器端的性能测试、应用系统在网络上传输时的性能测试、应用系统在服务器端的性能测试,本文主要讨论应用系统在浏览器端的性能表现,主要包括负载测试、压力测试。
1.4 测试过程与结果分析
性能测试过程主要包括性能测试需求分析、测试设计、测试执行、测试结果分析等步骤。
系统性能测试是评估系统运行能力、分析系统瓶颈的一个重要手段,通过性能测试用户能够了解在不同的情况下系统业务的响应时间。
以及系统能够处理的最大并发用户数。
下面通过实例说明测试Web应用系统性能的步骤与结果分析,本文借助自动化测试工具LoadRunner,采用负载测试、压力测试方法评估系统性能。
2 测试背景
“某经营管理系统”采用的是B/S结构,该经营管理系统实现集团对经营过程的监控与管理,减少重复录入工作
量,确保数据的唯一性、准确性和安全性,实现各中心(部门)之间的数据交互,结合相关中心(部门)的要求,经过对业务需求的梳理,将某集团经营需求进行整理。
在采集准确数据的基础之上,经过对数据统计、分析为经营管理和经营决策者提供准确数据。
根据需求大纲与前期调研用户规模预先估计在大量用户访问时,系统的可靠性及响应时间。
压力测试就是通过模拟大量的并发用户对系统进行操作,同时采集、监测系统的性能数据,用以预计系统在实际应用时的性能情况,同时可以协助开发人员发现并确认系统瓶颈,进行性能调优。
实际的用户规模是100人,数据库SQL server 2005,测试工具为LoadRunner 9。
该系统设定并发数为200,应用服务器1台(Windows server 2008),具体性能指标要求如下:系统响应时间<=5秒、CPU 使用率为<70%、内存使用率<70%。
2.1 测试过程
采用负载测试、压力测试方法:
《某经营管理系统》登录模块操作一般集中于每天9点左右。
用户一般会在8:50到9:20左右集中进行登录操作。
那么设计业务场景如下:
(1)打开《某经营管理系统》网页
(2)打开“登录系统”链接;
(3)输入用户名及密码,点击“确定”;
(4)所以业务操作完成后,退出系统。
测试过程中并发数设计为200个,采取逐步增加的策略,首先模拟2个用户登录,以后每隔5秒增加2个用户,直到指定的用户个数后,持续运行20分钟左右的时间。
2.2 测试结果分析
通过测试,在并发数为200个虚拟用户的访问下,被测服务器的CPU平均使用率在45%,在场景执行至约8分38秒时出现了一次峰值,CPU的使用率约为80%,总体看来,CPU在整个测试过程中表现均衡。
在测试过程中,在30分钟的测试时间里,内存的变化并不大,可用物理内存维持在4.2G左右,内存的使用率在(8G-4.2G)/8G=47.5%左右。
未产生明显的性能瓶颈,总体看来,内存足够使用。
在整个测试过程中,总体来说,服务器处理提交操作的响应时间为4秒。
本次测试结果如表1所示:
从测试结果中可以看出,《某经营管理系统》服务器性能达到了我们预期的期望结果。
3 结语
本文通过《某经营管理系统》案例,介绍了了典型的测试方法以及性能测试中重要的性能指标。
Web项目系统性能测试是一个复杂的过程。
应依据测试目标设计场景。
监控重
要性能指标,分析系统可能存在的性能瓶颈。
测试过程中应尽可能的模拟真实的用户环境及用户真实的业务操作,反复执行测试保证测试数据的有效性。
参考文献
[1]浦云明,王宝玉.基于负载性能指标的Web测试.计算机系统应用,2010,19(5).
[2]杨萍,李杰.利用LoadRunner实现Web负载测试的自动化.计算机技术与发展,2007,17(1).
[3]邓小鹏,等.Web应用测试技术进展.计算机研究与发展,2007,44(8):1273-1283.
[4]段念.软件性能测试过程详解与案例剖析.北京:清华大学出版社.2006.。