性能测试的概念与分析_第1页
性能测试的概念与分析_第2页
性能测试的概念与分析_第3页
性能测试的概念与分析_第4页
性能测试的概念与分析_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件性能测试软件性能测试的目的: 通过测试确认软件是否满足产品的性能需求,同时发现系统中存在的性能瓶颈,起到优化系统的目的。 软件性能测试的基本概念: 软件性能测试是在交替进行负载和强迫测试时常用的术语。理想的“软件性能测试”(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。软件性能测试一般包括负载测试和软件压力测试。 通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。软件性能测试的几种方法和工具:1. 负载测试计划过程 目标:产生一个清晰、好理解、可验证的负载测试计划 内容:关注6个区域:目标、用户、用例、生产环境、测试环境、测试场景 工具:IBM、HP、Ope

2、nSource工具都支持。有相关文档配合 2. RBI方法 目标:快速识别性能瓶颈 内容:重点测试“吞吐量”指标,因为RBI认定80%的系统性能瓶颈由吞吐量造成。 按照网络、硬件、数据库、应用服务器、代码的顺序自上而下分析性能 工具:IBM、HP Loadrunner、OpenSource工具都支持。需使用分析模块、根据Weblogic、Oracle区别有专门的工具实现RBI。 3. 性能下降曲线分析法 目标:性能随着用户数的增加而出现下降趋势的曲线分析、查看性能下降的环境点与上下文。确定性能阀值。 内容:通过单用户区域、性能平坦区域、压力区域、性能拐点进行监控和分析。 工具:IBM、HP、O

3、penSource工具都支持。IBM报表功能更强。 4. HP(LoadRunner)性能分析法 特点:侧重于该厂商的性能分析方法、主要体现在需求收集、VU脚本。 软件性能测试的几个阶段: 对于互联网应用软件,性能是其质量的一个非常重要的组成部分。作为解决软件性能问题的重要手段,软件软件性能测试已经广为人们所熟悉,并受到很高的关注。一般而言,软件性能测试都是在项目的后期才开展,被测试的对象通常是已经具备一定稳定性的产品。而实际上,软件性能测试应贯穿于整个软件生命周期中,和功能测试一样,软件性能测试也分为几个阶段。 软件生命周期与软件性能测试 不论哪种软件生命周期模型,需求分析、设计、编码、测试

4、和运行维护这几个阶段都是其中的基本要素,只是在不同的软件生命周期模型中可能迭代、合并、拆分或重组这几个阶段,在此不做过多的描述。与其他几个阶段相对应,测试从软件开发过程按阶段可以划分为:单元测试、集成测试、系统测试,在其他的书上可能还能见到诸如确认测试、验收测试等名词,但是前3种测试确实是最基本的测试活动,而其他的测试活动只是在某些软件开发过程中会发生。 值得注意的是,通常在谈论单元测试、集成测试和系统测试时,其实仅仅谈论的是不同阶段的功能测试;而当讨论软件性能测试时,绝大多数的情况是,一个已经开发完毕或基本开发完毕的软件,测试人员用一种或几种软件性能测试工具,以尽量模拟真实用户行为的方式对该

5、软件进行并发操作,收集并比较不同场景的结果,然后对软件的性能进行分析,这个活动通常发生在系统测试阶段,甚至更往后的阶段,如运行维护阶段。 软件性能测试的几个术语 1. 响应时间 “响应时间”的概念确定为“对请求作出响应所需要的时间”,把响应时间作为用户视角的软件性能的主要体现。响应时间划分为“呈现时间”和“系统响应时间”两个部分。 其中“呈现时间”取决于数据在被客户端收到响应数据后呈现页面所消耗的时间、而“响应时间”指应用服务器从请求发出开始到客户端接受到数据所消耗的时间。软件性能测试一般不关注“呈现时间”,因为呈现时间很大程度上取决于客户端的表现。在这里我们没有使用很多软件性能测试定义中的概

6、念“系统响应时间”定义为“应用系统从请求发出开始到客户端接收到最后一个字节数据所消耗的时间”,没有使用这种标准的原因是,可以使用一些编程技巧在数据尚未完全接收完成时进行呈现来减少用户感受到的响应时间。 2. 并发 “并发”是指所有用户在同一时刻做同一件事或操作,这种操作一般针对同一类型的业务。3. 并发用户数 “并发用户数”与“同时在线数”进行区别对待,“并发用户数”的标准是:在同一时刻与服务器进行交互的在线用户数量。因此,在确定这个“并发用户数”前,必须(必要)先对用户的业务进行分解、分析出典型的业务场景(也就是用户最常使用、最关注的业务操作),然后基于场景采用某些方法(比如当前系统的注册用

7、户,活跃用户等)获得“并发用户数”。 4. 吞吐量 吞吐量定义为“单位时间内系统处理的客户请求的数量”,直接体现软件系统的性能承载能力,对于交互式应用系统来说、吞吐量反映的是服务器承受的压力、在容量规划的测试中、吞吐量是一个重要指标、它不但反映在中间件、数据库上、更加体现在硬件上。 5. 性能计数器 性能计数器式描述服务器或操作系统性能的一些数据指标、例如对WINDOWS来说使用内存数、CPU使用率、进程时间等都是常见的计数器。 6. 思考时间 思考时间确定为“休眠时间”。从业务系统的角度来说,这个时间指的是用户在惊醒操作时、每个请求之间的时间间隔、从自动化测试的角度来说、要真实的测试模拟用户

8、操作、就必须在测试脚本中让各个操作之间等待一段时间、体现在脚本上就是在操作之间放置一个Think的函数,体现为脚本中两个请求语句之间的间隔时间。 7. 点击率每秒钟用户向Web服务器提交的HTTP请求书。这个指标是Web应用特有的一个指标:Web应用是“请求-响应”模式,用户发出一次申请,服务器就要处理一次,所以“点击”是Web应用能够处理交易的最小单位。如果把每次点击定义为一次交易,点击率和TPS就是一个概念。不难看出,点击率越大,对服务器的压力也越大。点击率只是一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击不是指鼠标的一次“单击”操作,而是在一次“单击”操作中,客

9、户端可能向服务器发出多个HTTP请求数。 8. 资源利用率资源利用率指的是对不同系统资源的使用程度,例如服务器的CPU利用率、磁盘利用率等。资源利用率是分析系统性能指标而改善性能的主要依据,因此,它是Web性能测试工作的重点。资源利用率主要针对Web服务器、操作系统、数据库服务器、网络等,是测试和分析瓶颈的主要参数。在性能测试中,要根据需求采集具体的资源利用率参数来进行分析。软件性能测试注意要点: 1、软件性能测试是在功能测试完成或者在确保功能流程没有问题之后进行 2、软件性能测试计划、方案一般与测试用例统一在一个文档里 3、测试环境应尽量与用户环境保持一致,并且性能测试的环境应单独运行且避免

10、与其他软件同时使用4、软件性能测试一般使用测试工具和测试人员编制测试脚本来完成 5、软件性能测试的重点在于前期数据的设计与后期数据的分析6、软件性能测试是测试,开发,产品等多个角色的共同进行的 Loadrunner性能指标分析:1、软件性能测试的指标:服务器的各项指标(CPU使用率、内存占用率、硬盘占用率等)、后台数据库的各项指标和软件的响应时间: (1) 操作系统有关的指标:CPU平均利用率、内存平均占用率、硬盘占用率、I/O数量、网络时延 (2) 数据库有关的指标:I/Owait、Mem平均使用率、cpu平均使用率、在一次I/O操作中所读的最大BLOCKS数、Log的增长情况、数据库的访问

11、速度、数据库能支持的最大用户数、数据库CACHE命中率、不同数据库参数下的性能情况、锁的处理 (3) 软件有关的指标:平均响应时间(从接收请求到回复响应的时间)、每秒交易数量(单位时间里的执行次数)、对中间件功能的调用、远程处理延迟 用户事务分析是站在用户角度进行的基础性能分析。1、Transation Sunmmary(事务综述)对事务进行综合分析是性能分析的第一步,通过分析 时间内用户事务的成功与失败情况,可以直接判断出系统是否运行正常。2、Average TransacitonResponse Time(事务平均响应时间)“事务平均响应时间”显示的是测试场景运行期间的每一秒内事务执行所用

12、的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向。例:随着测试时间的变化,系统处理事务的速度开始逐渐变慢,这说明应用系统随着投产时间的变化,整体性能将会有下降的趋势。3、Transactions per Second(每秒通过事务数/TPS)“每秒通过事务数/TPS”显示在场景运行的每一秒钟,每个事务通过、失败以及停止的数量,使考查系统性能的一个重要参数。通过它可以确定系统在任何给定时刻的时间事务负载。分析TPS主要是看曲线的性能走向。将它与平均事务响应时间进行对比,可以分析事务数目对执行时间的影响。例:当压力加大时,点击率/TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器

13、开始出现瓶颈。4、Total Transactions perSecond(每秒通过事务总数)“每秒通过事务总数”显示在场景运行时,在每一秒内通过的事务总数、失败的事务总署以及停止的事务总数。5、Transaction PerformanceSunmmary(事务性能摘要)“事务性能摘要”显示方案中所有事务的最小、最大和平均执行时间,可以直接判断响应时间是否符合用户的要求。重点关注事务的平均和最大执行时间,如果其范围不在用户可以接受的时间范围内,需要进行原因分析。6、Transaction Response TimeUnder Load(事务响应时间与负载)“事务响应时间与负载”是“正在运行的

14、虚拟用户”图和“平均响应事务时间”图的组合,通过它可以看出在任一时间点事务响应时间与用户数目的关系,从而掌握系统在用户并发方面的性能数据,为扩展用户系统提供参考。此图可以查看虚拟用户负载对执行时间的总体影响,对分析具有渐变负载的测试场景比较有用。7、Transaction ResponseTime(Percentile)(事务响应时间(百分比))“事务响应时间(百分比)”是根据测试结果进行分析而得到的综合分析图,也就是工具通过一些统计分析方法间接得到的图表。通过它可以分析在给定事务响应时间范围内能执行的事务百分比。8、Transaction ResponseTime(Distribution)

15、(事务响应时间(分布))“事务响应时间(分布)”显示在场景运行过程中,事务执行所用时间的分布,通过它可以了解测试过程中不同响应时间的事务数量。如果系统预先定义了相关事务可以接受的最小和最大事务响应时间,则可以使用此图确定服务器性能是否在可以接受的范围内。 WebResources(Web资源分析)Web资源分析是从服务器入手对Web服务器的性能分析。1、Hits per Second(每秒点击次数)“每秒点击次数”,即使运行场景过程中虚拟用户每秒向Web服务器提交的HTTP请求数。通过它可以评估虚拟用户产生的负载量,如将其和“平均事务响应时间”图比较,可以查看点击次数对事务性能产生的

16、影响。通过对查看“每秒点击次数”,可以判断系统是否稳定。系统点击率下降通常表明服务器的响应速度在变慢,需进一步分析,发现系统瓶颈所在。2、Throughput(吞吐率)“吞吐率”显示的是场景运行过程中服务器的每秒的吞吐量。其度量单位是字节,表示虚拟用在任何给定的每一秒从服务器获得的数据量。可以依据服务器的吞吐量来评估虚拟用户产生的负载量,以及看出服务器在流量方面的处理能力以及是否存在瓶颈。“吞吐率”图和“点击率”图的区别:“点击率”图,是每秒服务器处理的HTTP申请数。“吞吐率”图,是客户端每秒从服务器获得的总数据量。3、HTTP Status Code Summary(HTTP状态代码概要)

17、“HTTP状态代码概要”显示场景或会话步骤过程中从Web服务器返回的HTTP状态代码数,该图按照代码分组。HTTP状态代码表示HTTP请求的状态。4、HTTP Responses per Second(每秒HTTP响应数)“每秒HTTP响应数”是显示运行场景过程中每秒从Web服务器返回的不同HTTP状态代码的数量,还能返回各类状态码的信息,通过分析状态码,可以判断服务器在压力下的运行情况,也可以通过对图中显示的结果进行分组,进而定位生成错误的代码脚本。5、Pages Downloader perSecond(每秒下载页面数)“每秒下载页面数”显示场景或会话步骤运行的每一秒内从服务器下载的网页数

18、。使用此图可依据下载的页数来计算Vuser生成的负载量。和吞吐量图一样,每秒下载页面数图标是Vuser在给定的任一秒内从服务器接收到的数据量。但是吞吐量考虑的各个资源极其大小(例,每个GIF文件的大小、每个网页的大小)而每秒下载页面数只考虑页面数。注:要查看每秒下载页数图,必须在R-T-S那里设置“每秒页面数(仅HTML模式)”。6、Retries per Second(每秒重试次数)“每秒重试次数”显示场景或会话步骤运行的每一秒内服务器尝试的连接次数。在下列情况将重试服务器连接:A、初始连接未经授权B、要求代理服务器身份验证C、服务器关闭了初始连接D、初始连接无法连接到服务器E、服务器最初无

19、法解析负载生成器的IP地址7、Retries Summary(重试次数概要)“重试次数概要”显示场景或会话步骤运行过程中服务器尝试的连接次数,它按照重试原因分组。将此图与每秒重试次数图一起使用可以确定场景或会话步骤运行过程中服务器在哪个时间点进行了重试。8、Connections(连接数)“连接数”显示场景或会话步骤运行过程中每个时间点打开的TCP/IP连接数。借助此图,可以知道何时需要添加  连接。例:当连接数到达稳定状态而事务响应时间迅速增大时,添加连接可以使性能得到极大提高(事务响应时间将降低)。9、Connections Per Second(每秒连接数)“每秒连接数”显示方

20、案在运行过程中每秒建立的TCP/IP连接数。理想情况下,很多HTTP请求都应该使用同一连接,而不是每个请求都新打开一个连接。通过每秒连接数图可以看出服务器的处理情况,就表明服务器的性能在逐渐下降。10、SSLs Per Second(每秒SSL连接数)“每秒SSL连接数”显示场景或会话步骤运行的每一秒内打开的新的以及重新使用的SSL连接数。当对安全服务器打开TCP/IP连接后,浏览器将打开SSL连接。Web Page Breakdown(网页元素细分)“网页元素细分”主要用来评估页面内容是否影响事务的响应时间,通过它可以深入地分析网站上那些下载很慢的图形或中断的连接等有问题的元素。1、Web

21、Page Breakdown(页面分解总图)“页面分解”显示某一具体事务在测试过程的响应情况,进而分析相关的事务运行是否正常。“页面分解”图可以按下面四种方式进行进一步细分:1)、DownloadTime Breaddown(下载时间细分)“下载时间细分”图显示网页中不同元素的下载时间,同时还可按照下载过程把时间进行分解,用不同的颜色来显示DNS解析时间、建立连接时间、第一次缓冲时间等各自所占比例。2)、ComponentBreakdown(Over Time)(组件细分(随时间变化))“组件细分”图显示选定网页的页面组件随时间变化的细分图。通过该图可以很容易的看出哪些元素在测试过程中下载时间

22、不稳定。该图特别适用于需要在客户端下载控件较多的页面,通过分析控件的响应时间,很容易就能发现那些控件不稳定或者比较耗时。3)、DownloadTime Breakdown(Over Time)(下载时间细分(随时间变化))“下载时间细分(随时间变化)” 图显示选定网页的页面元素下载时间细分(随时间变化)情况,它非常清晰地显示了页面各个元素在压力测试过程中的下载情况。“下载时间细分”图显示的是整个测试过程页面元素响应的时间统计分析结果,“下载时间细分(随时间变化)”显示的事场景运行过程中每一秒内页面元素响应时间的统计结果,两者分别从宏观和微观角度来分析页面元素的下载时间。4)、Timeto Fi

23、rst Buffer Breakdown(Over Time)(第一次缓冲时间细分(随时间变化))“第一次缓冲时间细分(随时间变化)”图显示成功收到从Web服务器返回的第一次缓冲之前的这段时间,场景或会话步骤运行的每一秒中每个网页组件的服务器时间和网络时间(以秒为单位)。可以使用该图确定场景或会话步骤运行期间服务器或网络出现问题的时间。First Buffer Time:是指客户端与服务器端建立连接后,从服务器发送第一个数据包开始计时,数据经过网络传送到客户端,到浏览器接收到第一个缓冲所用的时间。2、Page Component Breakdown(页面组件细分)“页面组件细分”图显示每个网页及其组件的平均下载时间(以秒为单位)。可以根据下载组件所用的平均秒数对图列进行排序,通过它有助于隔离有问题的组件。3、Page ComponentBreakdown(Over Time)(页面组件分解(随时间变化))“页面组件分解(随时间变化)”图显示在方案运行期间的每一秒内每个网页及其组件的平均响应时间 (以秒为单位)。4、Page Download TimeBreakdown(页面下载时间细分)“页面下载时间细分”图显示每个页面组件下载时间的细分,可以根据它确定在网页下载期间事务响应时间缓慢是由网络错误引起还是由服务器错误

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论