性能测试入门

上传人:lcm****801 文档编号:44141242 上传时间:2018-06-08 格式:DOC 页数:5 大小:55.50KB
返回 下载 相关 举报
性能测试入门_第1页
第1页 / 共5页
性能测试入门_第2页
第2页 / 共5页
性能测试入门_第3页
第3页 / 共5页
性能测试入门_第4页
第4页 / 共5页
性能测试入门_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《性能测试入门》由会员分享,可在线阅读,更多相关《性能测试入门(5页珍藏版)》请在金锄头文库上搜索。

1、性能测试入门篇 一,软件性能 1、 概念 在段念老师的软件性能过程详解语案例分析一书中,是这样来定义性能的:首先, 性能是一种指标,表明软件系统或构件对于其纪实性要求的符合程度;其次,性能是软件 产品的一种特性,可以用时间来衡量。 这个定义还是比较抽象的,其实每个人都对性能有自己的见解和感受,一般用户都很 关心产品的性能,但性能具体怎么解释,怎么评估可能每个人都有自己的衡量标准。下面 就三种主要用户来谈谈软件性能的具体的概念。 (1)对于一般用户而言,他们并不关心软件内部构件的机理,而只看重个人在使用过 程的感受。最直接的感受就是响应时间。比如按下按钮后,多久才出现网页画面。而具体 响应时间包

2、括服务器间的耗时,网络延时等等,他们并不关心。这里需要指出的是现在很 多网站就从用户角度出发,尽量让客户感觉这个“响应时间”更短,比如采取“逐步呈现” 的方法,让少部分资源更快的先显示,至于图片视频等材料慢慢呈现,只要看到一些静态 框架,用户就会感觉网站已经有了响应。 (2)对于开发人员而言,他们会从系统架构,数据库具体设计,代码设计等微层面来 衡量软件性能。如:系统内存的使用方式是否合理,系统是否有不合理的线程同步,数据 库设计是否合理,代码是否运行高效,是否有死锁等等。 (3)对于管理人员,他会关心响应时间这样的客户体验,但并不局限于此,他还需要 了解系统的可扩展性,稳定性等指标。 从以上

3、三类典型用户对性能的理解来看,我们知道软件性能除了给抽象的定义外,我 们更应该关注不同层次人员对性能的具体体验,从而具体的把握软件性能,继而研究如何 提高性能。 2、 相关术语 其实我们在上面多次提到响应时间,它就是来描述软件性能的一个很重要的指标,那 我们谈论到软件性能问题都不可避免的跟以下词语打交道: (1)响应时间响应时间即对一个具体请求做出响应所需的时间。响应时间可以具体分解为“网络传 输时间”和“应用延迟时间” 。网络传输时间主要是指数据在网络上传输所消耗的时间。应 用延迟时间具体又可分为数据库延迟时间和应用服务器延迟时间。对于响应时间的要求并没有一个统一的界限,不同用户要求也不同。

4、比如耐心的用 户可能愿意等较长时间,而性情急躁的用户可能等 5 秒钟就闲多。但一般我们遵循 2/5/10 等原则。具体意识是:在 2 秒钟内给客户响应被认为是非常好的,在 5 秒钟内响应被认为 是可以接受的,而 10 秒钟是用户可以接受的上限了。当然这是在美国和欧洲的统计数据, 个人觉得在国内如果这样界定,很多网站都是难符合规范的。 (2)并发用户数并发用户数即同一个时间段访问系统的用户总合。很容易理解,同一时刻,访问网站 的用户数越多,那么这个网站受到的压力也就越大。所以,系统所能承受的并发用户数也 是衡量系统性能的一个很重要的标志。在计算并发用户数时有两种公式:一般公式是C= nL/T C

5、=C+3 C 是指并发用户数,n 是指 login session 的数量,L 是 login session 的平均长度,T 是考察的时间段长度,典型为 8 小时。除此之外,对于企业使用的 W系统来说,一个更一般的经验公式为: C *为调整因子,一般为。 (3)吞吐量吞吐量指单位时间内系统处理的客户请求的数量。吞吐量的计算公式为: ( )其中,表示吞吐量, 表示虚拟用户的个数,表示每个用户发出的请求数,表示性能测试所用时间。 (4)性能计数器 所谓性能计数器即用来描述或表征系统性能的一些数据指标。例如对于 系统而言,内存数,进程时间就是性能计数器。 分析性能比如有内存分析法,处理器分析法,磁

6、盘分析法等等,针对操作系统,应用 服务器,数据库服务器等都有具体的性能指标,在具体分析中我们需要参照具体的文档来 具体分析这些指标,从而定位性能问题。 (5)思考时间思考时间是指请求之间的间隔时间。在自动化测试中为了真实的模拟用户操作就需要 设置等待时间,即思考时间。二,软件性能测试 1、 概念软件性能测试即是针对与衡量软件性能的测试方法。网上常有朋友说性能测试是最有 前途的测试职业,我想这也从侧面表现了性能测试的重要性吧。2、 方法论 在进行性能测试时,有一些比较常见的方法。具体有: SEI 负载测试计划过程,RBI 方法,性能下降曲线分析法等等,这些方法对于我们实施 测试很有帮助,在段念老

7、师的书中解释的很具体,具体实施过程中只要按部就班就可以了。 书中作者还提出了一个 PTGM 模型,后面的案例分析方法就是利用这个方法进行的。3、 内容 性能测试属于一个比较大的范畴,具体而言,它又包括这样一些内容,内容也可看作 是性能测试的具体方法: () 性能测试( )这是个小概念的性能测试,即通过模拟生产运行的业务压力和使用场景组合,测试 系统的性能是否满足生产性能的要求。其实我开始有点不明白,为什么用一样的名字,容 易混淆,但我想它必然有他的道理吧,从它的测试手段和过程来看,应该是性能测试这个 大概念中最基本的测试。 具体而言,有以下特点: 主要目的是验证系统是否有系统宣称的能力;需要事

8、先了解被测试系统的典型场景, 并具有确定的性能指标;要求在已经确定的环境下运行。() 负载测试 负载测试是通过给被测系统不断施加压力,直到系统达到处理极限。该测试可以理解 为破坏性的测试,它不断施压以至于达到崩溃地步。 该测试的特点为: 主要目的是找到系统处理能力的极限;需要在给定的测试环境下进行;用来了解系统 的性能容量或是配合性能调优来使用。() 压力测试压力测试容易和负载测试混淆。压力测试是测试系统在一定饱和状态下,系统能够 处理的会话能力,以及系统是否会出现错误。不过这里的压力一般是既定的,不像负载那 样不断施压。压力测试的特点:主要目的是检查系统处于压力情况下应用的表现。一般通过模拟

9、负载等方法,使得系统资源使用达到较高的水平;压力测试一般用于 测试系统的稳定性。() 配置测试 配置测试是通过对被测系统的软/硬环境的调整,了解各种不同环境对系统性能影响的 程度,从而找到系统各项资源的最优分配原则。配置测试的特点: 主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优 操作;一般在系统性能状况有初步了解后进行配置测试;一般用于性能调优和规划能力。() 并发测试 并发测试是通过模拟用户的并发访问,测试多用户访问同一个应用,同一个模块或者 数据记录是否存在死锁或者其他性能问题。并发测试的特点: 主要目的是发现系统中可能隐藏的并发访问时的问题,主要关注系统可能

10、存在的并发 问题,例如内存泄露,线程锁等;这种测试方法可以在开发的各个阶段使用,需要相关的 测试工具的配合和支持。() 可靠性测试可靠性测试是通过系统加载一定的业务压力的情况下,让应用持续运行一段时间,测 试系统在这种条件下是否能够稳定运行。可靠性测试的特点: 主要目的是验证系统是否能够支持长期稳定的运行,其原理在前面用非常粗糙的方式 进行了一个解释;这种测试需要在压力下持续一段时间的运行;测试过程中需要关注系统 的运行状况。() 失效恢复测试 失效性测试是针对有冗余备份和负载均衡的系统设计的。用来检验系统发生故障时用 户是否能够继续使用系统。失效性恢复测试的特点: 主要目的是验证在局部故障情

11、况下,系统能否继续使用;该测试方法还需指出当问题 发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案。而且一般来讲, 只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试。 4、 应用领域 () 能力验证能力验证就是要验证系统在既定条件下能否满足某种能力需求。一般采用的测试方法 有:性能测试,可靠性测试,压力测试和失效性测试。 能力测试的两个特点是:要求在已确定的环境下运行;需要根据典型场景设计测试方案和用例。 () 能力规划规划能力是要回答“系统能否支持未来一段时间内的用户增长或性能需求”的问题。 一般采用的方法有:负载测试,配置测试,压力测试。能力规划的两个特点:能力

12、测试是 一种探索性的测试;用来了解系统的性能已经获得扩展性能的方法。 () 性能调优性能调优就是通过一些调整,如硬件环境,软件环境等,来达到优化性能的目的。一 般采用的方法有:配置测试,负载测试,压力测试和失效性测试。性能调优的过程:确定 基准环境,基准负载和基准性能指标;调整系统运行环境和实现方法,执行测试(包括硬 件环境,系统设置以及应用级别的调整;纪录测试结果,进行分析。 () 缺陷发现发现缺陷顾名思义就是通过测试来发现系统存在的缺陷。主要用的是并发性测试。有 时也用压力测试和失效性测试。我们看到测试方法是和具体的应用领域紧密联系的,下面我们归纳下它们之间的关系;能力验证规划能力性能调优

13、发现缺陷性能测试 负载测试压力测试 配置测试并发性测试可靠性测试失效性测试三,软件性能测试的开发过程 1、 过程模型 今天在看软件配置管理策略与 一书中提到这样一个观点:认为仅仅靠 SCM 工具就可以解决 SCM 问题或支持 SCM 需求, 这是错误的!就像你买了锤子和钉子,但画不会自己挂到墙上。工具本身并不能解决问题, 应用工具才能解决问题,这就是 SCM 过程的作用。其实在软件测试中也是这样的。前两天 也有朋友在发帖子讨论性能测试工具和性能测试。我很赞成这种说法,一个只会用工具而 不思考如何改进使用工具过程的人并不是一个真正会用工具或真正懂测试的人。所以学习 并掌握然后使用过程模型就很重要

14、了。下面我就选择几种比较常见的过程模型来描述下。 1) SEI 负载测试计划过程SEI 负载测试计划过程着重考虑的是如何建立清晰的负载测试计划,它从目标,用户, 用例,生产环境,测试环境和测试场景六个区域来考虑,关注生产环境与测试环境的不同 点,用户分析,以及用例。2) RBI 方法 这里主要强调 RBI(快速瓶颈识别方法)的原理: 发现的系统的性能瓶颈都由吞吐量制约; 并发用户数和吞吐量瓶颈之间存在一定的关联; 采用吞吐量测试可以更快速定位问题。3) 性能下降曲线法性能下降曲线法就是通过性能曲线上的单用户区,性能平坦区,压力区域以及性 能拐点几个关键因素来分析性能瓶颈问题。4) LR 性能测试过程 5) PTGM 模型2、 以 PTGM 来描述测试过程(1)测试前准备(2)测试工具引入(3)测试计划(4)测试执行(5)测试分析

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号