性能测试入门篇(1)

上一篇 / 下一篇  2007-09-15 12:31:55 / 个人分类:测试工具

一,软件性能

1、 概念

在段念老师的《软件性能过程详解语案例分析》一书中,是这样来定义性能的:首先,性能是一种指标,表明软件系统或构件对于其纪实性要求的符合程度;其次,性能是软件产品的一种特性,可以用时间来衡量。

这个定义还是比较抽象的,其实每个人都对性能有自己的见解和感受,一般用户都很关心产品的性能,但性能具体怎么解释,怎么评估可能每个人都有自己的衡量标准。下面就三种主要用户来谈谈软件性能的具体的概念。

1) 对于一般用户而言,他们并不关心软件内部构件的机理,而只看重个人在使用过程的感受。最直接的感受就是响应时间。比如按下按钮后,多久才出现网页画面。而 具体响应时间包括服务器间的耗时,网络延时等等,他们并不关心。这里需要指出的是现在很多网站就从用户角度出发,尽量让客户感觉这个“响应时间”更短,比 如采取“逐步呈现”的方法,让少部分资源更快的先显示,至于图片视频等材料慢慢呈现,只要看到一些静态框架,用户就会感觉网站已经有了响应。

2)对于开发人员而言,他们会从系统架构,数据库具体设计,代码设计等微层面来衡量软件性能。如:系统内存的使用方式是否合理,系统是否有不合理的线程同步,数据库设计是否合理,代码是否运行高效,是否有死锁等等。

3)对于管理人员,他会关心响应时间这样的客户体验,但并不局限于此,他还需要了解系统的可扩展性,稳定性等指标。

从以上三类典型用户对性能的理解来看,我们知道软件性能除了给抽象的定义外,我们更应该关注不同层次人员对性能的具体体验,从而具体的把握软件性能,继而研究如何提高性能。

 

2、 相关术语

其实我们在上面多次提到响应时间,它就是来描述软件性能的一个很重要的指标,那我们谈论到软件性能问题都不可避免的跟以下词语打交道:

(1)      响应时间

    响应时间即对一个具体请求做出响应所需的时间。响应时间可以具体分解为“网络传输时间”和“应用延迟时间”。网络传输时间主要是指数据在网络上传输所消耗的时间。应用延迟时间具体又可分为数据库延迟时间和应用服务器延迟时间。

     对于响应时间的要求并没有一个统一的界限,不同用户要求也不同。比如耐心的用户可能愿意等较长时间,而性情急躁的用户可能等5秒钟就闲多。但一般我们遵循2/5/10等原则。具体意识是:在2秒钟内给客户响应被认为是非常好的,在5秒钟内响应被认为是可以接受的,而10秒钟是用户可以接受的上限了。当然这是在美国和欧洲的统计数据,个人觉得在国内如果这样界定,很多网站都是难符合规范的。

(2)      并发用户数

    并发用户数即同一个时间段访问系统的用户总合。很容易理解,同一时刻,访问网站的用户数越多,那么这个网站受到的压力也就越大。所以,系统所能承受的并发用户数也是衡量系统性能的一个很重要的标志。

    在计算并发用户数时有两种公式:一般公式是

                              C= nL/T

                          C^=C+3    

C是指并发用户数,n是指login session的数量,Llogin session的平均长度,T是考察的时间段长度,典型为8小时。

    除此之外,对于企业使用的Web系统来说,一个更一般的经验公式为:

                  C = n/10

                  C^  =r*

r为调整因子,一般为2~3。

(3)      吞吐量

   吞吐量指单位时间内系统处理的客户请求的数量。吞吐量的计算公式为: 

             F=(Nvu * R)/T

 其中,F表示吞吐量,Nvu 表示虚拟用户的个数,R表示每个用户发出的请求数,T表示性能测试所用时间。 

(4)      性能计数器

所谓性能计数器即用来描述或表征系统性能的一些数据指标。例如对于Windows系统而言,内存数,进程时间就是性能计数器。

分析性能比如有内存分析法,处理器分析法,磁盘分析法等等,针对操作系统,应用服务器,数据库服务器等都有具体的性能指标,在具体分析中我们需要参照具体的文档来具体分析这些指标,从而定位性能问题。

(5)      思考时间

  思考时间是指请求之间的间隔时间。在自动化测试中为了真实的模拟用户操作就需要设置等待时间,即思考时间。

 


TAG:

 

评分:0

我来说两句

Open Toolbar