性能测试之Web篇

原创 2005年03月01日 15:16:00

性能测试之Web<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

作者:piaocl

关键字:性能测试,web测试

 

摘要:

随着网络世界的迅猛发展,网站的性能变得日益重要,性能不好的网站将被用户所抛弃。所以性能是用户对软件系统是否满意的一个重要方面。本文将对什么是性能,如何测试性能等方面进行论述。


    那么性能是什么呢,性能是特定功能占用的时间和资源。他可以是功能的开销或者是同步运行功能的数目。Web性能测试就是模拟大量用户操作给网站造成压力,并评测web系统在不同负载和不同配置下能否达到已经定义的标准。性能测试更加关注分析和消除与软件结构中相关联的性能瓶颈。

性能是每个软件系统必须考虑的指标,在性能测试中我们通常注意以下四方面数据:.负载数据 二.数据流量  ..软件本身消耗资源情况 四.系统使用情况。由于性能测试的特殊性,一般情况下都是利用特殊的测试工具(如LoadRunner,TestManagerACT等)模拟多用户操作,对需要评测的系统造成压力。找出系统的瓶颈,并提交给开发人员进行修正。所以性能测试的目的是找出系统性能瓶颈并纠正需要纠正的问题。

制定WEB性能测试的策略可以遵循对系统中最重要的模块,经常使用的模块,系统开销最大的地方(代码最复杂的部分),对用户来说最重要的部分进行测试。我们从整体的角度分析一下性能可能出现问题的地方,作为web程序不管是两层,还是多层系统架构的程序。系统都是通过http协议(超文本传输协议(Hypertemx Transfer Protocol, HTTP)是一个“请求-回应”的应用协议,这个协议支持一套固定的方法如 Get, Post, Put, Delete等)来传输数据,发送命令。中间的过程大致为客户端(浏览器)发送数据操作请求给服务器,服务器接收命令请求后进行处理,然后把结果返回给客户端,客户端处理响应结果。这个过程中客户端发送请求进行数据处理的过程一般不是系统的性能瓶颈,这个时候一般是大量用户同时操作,发送数据请求才是系统的瓶颈。系统的服务器硬件资源最有可能是软件系统的瓶颈。我们需要调整软件和环境(最优化响应时间和资源),确认应用和系统可以处理的高负载和压力条件。而这个时候系统硬件中最可能的是cpu造成的瓶颈。系统中其他硬件资源所造成的瓶颈,我们可以替换相应的硬件资源,进行调整。而系统中另一个瓶颈可能是服务器把处理数据发送给客户端,这个过程硬件资源就不可能是性能的限制因素,最有可能是带宽的原因。

其实性能的问题大多数情况下是由于软件体系结构或设计不合理造成的,而不是编码引起的。如果在性能测试中发现CPU占用率居高不下,内存占用异常,经常报错的情况问题的时候,排除上边分析的原因外,应及时提交情况汇总给开发人员,让开发人员察看代码中出错环节是否有死循环等逻辑错误 ,检查应用部署后所使用的数据连接驱动是否有误或者代码未及时更新,查看数据库查询或者其他语句是否有异常,中断测试,只运行响应时间最长的页面并验证结果。分析系统可能的性能瓶颈。

我们需要在测试中注意不同的带宽条件对测试结果所造成的结果,所以应该在性能测试前要制定系统性能标准,这样才能合理分析测试结果。把不同带宽的测试结果进行分析量化,找到测试系统瓶颈。

一般性能测试中最常见的基本类型为基准测试,配置测试,负载测试,压力测试,我们知道在软件测试的过程中,不同阶段,不同类型所进行的性能测试关注测试目标是不同的,不同软件架构也决定了性能测试存在差异。这样就要对所进行的测试类型有一定的了解,才能更好的进行性能测试工作。下边是各种测试类型的具体概念:

基准测试——把新服务器或者未知服务器的性能和已知的参考标准进行比较

配置测试——确认服务器在不同的配置下性能的可接受性。(操作条件不变)

负载测试——确认服务器在不同的负载条件下性能的可接受性。(操作条件不变)

压力测试——确认服务器在异常或者极限的条件时性能的可接受性,例如,减少资源或大数量的用户。

竞争测试——确认服务器可以处理多个客户对同一个资源的请求竞争

通过系统基准测试提供的一定条件下服务器如何处理数据的基线,作为评估其他性能指标的参考数据起点。进行配置测试则是测试系统配置在不同的机器上能否正常运行。用配置测试来确保系统在多个平台上正常运行。而负载测试用来测试在不同负载条件下客户端或者服务器端的响应时间。帮助测试人员计算在限定时间内服务器响应处理的请求的最大数量的事务数。压力测试则是在极限条件下运行系统的过程,检查什么条件下服务器或者客户端崩溃。竞争测试则是在一台或者多台pc上操作系统功能来模拟实际环境。

部分测试人员可能面对的是一个已经发布的Web系统,这种情况如何进行性能测试呢。在没有进行测试之前,可以通过网站的管理人员收集测试数据,为以后进行性能测试做好准备,收集的信息包括每小时在线用户数量,平均每小时的在线用户数量,不同时段的在线用户峰值比较,收集被访问次数最多的的页面,系统正常运行时CPU的使用率。所有这些作为性能测试的依据,避免盲目进行性能测试。在不了解系统的真实情况下进行的性能测试,很可能是错误的测试。把过多的精力放在了错误的地方。那样测试结果就不具有真实性,并且会浪费大量的测试资源。

而对于一个开发中的web系统进行性能测试,就要根据开发目标和用户需求在体系结构的迭代过程中,不断调整测试目标,对系统性能有个很好的评估。那么如何才能成功的进行性能测试呢,我觉得进行性能测试前应有一个测试计划,这样才能保证性能测试有序的进行。下边的图例给出了性能测试的一般步骤:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


1-1 性能测试步骤

n         评估系统:在这个阶段,主要是明确确定系统期望目标,包括:确定系统功能,确定用户活动,确定系统架构,确定可接受的极限,验证可接受的极限,确定系统风险等。

开发测试资源:进行性能测试的资源,主要覆盖三种活动:开发风险减低计划,开发测试策略,开发自动化脚本。

n         执行基准测试:利用基线对比将来的测试结果对系统评估负载,压力,竞争测试结果中的相关性能。主要通过压力场景验证自动化测试脚本的正确性。在测试周期早期中标示可见的性能指标。性能工程包括个体脚本基线,建立初始化基准。

n         分析测试结果:对结果进行分析是为了决定是否对系统继续进行测试,是否结果达到了期望值。这个阶段包含评估结果,确定是否是可接受的极限,确定是否继续进行测试,确定需求调整。

n         预定测试:强制验证系统性能,这些测试是必须执行的即使性能和需求都没有调整的情况下。它包含执行用户体验测试,执行稳定性测试,执行产品确认测试等活动。

n         结束测试:实际工作中由于软件架构和其他资源限制,软件无法继续优化,此时建议将测试资源转移,测试其他方面,避免测试资源浪费。

通过上边一系列阐述,大家对Web性能测试的目的方法应该有了一定了解。实际工作中千差万别,需要大家具体问题具体分析,才能做好性能测试。

 

参考文献:

1.   Performance_Engineering_Strategy_Template

2.   <web测试指南>- John Wiley & Sons

Web性能测试工具推荐

WEB性能测试工具主要分为三种: 一种是测试页面资源加载速度的, 一种是测试页面加载完毕后页面呈现、JS操作速度的, 一种是总体上对页面进行评价分析 ~~~~如果谁有更好的工具也请一起分享下 ...
  • damys
  • damys
  • 2014年03月04日 11:40
  • 15454

关于做web前端性能测试一些原则的心得分享

今天做测试的时候犯了一点原则性的低级错误,记录下来和大家分享、共勉之!这里我尽量详细描述出自己的思考方式,希望对测试新人有所帮助。不足之处请老前辈提出,共同学习。 前两天项目更新了版本(B/S架构)...
  • u010051887
  • u010051887
  • 2017年01月17日 16:50
  • 2944

五款资深高效的开源Web性能测试工具

专业的软件测试工程师至少要掌握一到两种测试工具,而作为普通软件开发者,或多或少掌握一些测试方法和技巧。随着用户对科技产品用户体验度的上升,产品发布前的测试工作变得尤为重要。 工欲善其事必先利其器...
  • u012572955
  • u012572955
  • 2016年08月18日 10:58
  • 4260

python-web加载性能测试(初级)

首先不得不承认这只是一种很基础的web性能加载测试,因为之前一直没有专业的学过应该如何测试。原因是我们公司的网站快完成了,但是感觉打开的速度很慢啊,后来自己写了一个简单的python脚本主要模拟对we...
  • cracker_zhou
  • cracker_zhou
  • 2015年12月26日 14:43
  • 741

Web性能测试基本性能指标及案例分析

Web性能测试的部分概况一般来说,一个Web请求的处理包括以下步骤:   (1)客户发送请求   (2)web server接受到请求,进行处理;   (3)web server向DB获取数据;...
  • Sunnyyou2011
  • Sunnyyou2011
  • 2015年01月14日 17:53
  • 1213

论基于java的web应用程序的性能测试

论基于java的web应用程序的性能测试
  • javaniuniu
  • javaniuniu
  • 2016年08月06日 10:57
  • 1549

五款资深高效的Web性能测试工具

专业的软件测试工程师至少要掌握一到两种测试工具,而作为普通软件开发者,或多或少掌握一些测试方法和技巧。随着用户对科技产品用户体验度的上升,产品发布前的测试工作变得尤为重要。 工欲善其事必先利其器,下...
  • wo541075754
  • wo541075754
  • 2016年09月20日 09:45
  • 3879

十大最优秀的Web网站性能测试软件工具

随着互联网技术和理念的快速发展和迅速普及,很多企业越来越重视互联网,把互联网当作一种更为高效的资源和工具,并建立起一系列基于Web的网站服务。企业在建立或使用基于Web的网站服务时,都很难模拟出大批量...
  • Kevinlou2008
  • Kevinlou2008
  • 2014年03月15日 00:22
  • 1138

WEB前端性能测试优化指标

加快您的网站的最佳实践 1、Make fewer HTTP requests (最大限度地减少HTTP请求) 终端用户响应的时间中,有80%用于下载各项内容。这部分时间包括下载页面中的图像、样式表...
  • cc297322716
  • cc297322716
  • 2016年09月11日 18:00
  • 924

WEB性能测试之重要指标讲解

Web性能测试之术语   作为一性能测试工作者,其应该具备更多的技能,大致如下:   掌握常见自动化测试工具的使用;   具备一定的编程能力;   掌握基础的数据可知识;   掌握常见的操作...
  • fuwu527751246
  • fuwu527751246
  • 2013年08月05日 15:14
  • 849
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:性能测试之Web篇
举报原因:
原因补充:

(最多只允许输入30个字)