性能测试从零开始:LoadRunner入门(4)

发表于:2014-10-11来源:uml.org.cn作者:柳胜点击数: 标签:性能测试
资源的利用和回收就是马儿少吃草。软件系统的草料就是其依存的硬件和软件资源,硬件资源包括客户端硬件、服务器硬件和网络硬件;软件资源包括操作

  资源的利用和回收——就是马儿少吃草。软件系统的“草料”就是其依存的硬件和软件资源,硬件资源包括客户端硬件、服务器硬件和网络硬件;软件资源包括操作系统、中间件和数据库等。其中要特别说的是,运行软件系统需要使用到的服务器内存数量,对于整个系统的性能表现是至关重要的。因此,软件系统能否在运行时有效地使用和释放内存是我们考察软件性能的一个重要因素。

  对计算机来讲,计算机内存为程序提供运行空间(有代码区和数据区),如果内存不够大,CPU就不能把全部的数据和程序放到内存里,只好放一部分在内存,一部分放在硬盘中,现用现取,而读取内存和读取硬盘数据的速度要差好几个数量级,这就大大影响了计算机的工作效率。如果还不能理解内存的重要性的话,可以用个形象的例子来说明:

  如果CPU是个画家,那么内存就是他的工作台。工作台上放着画布(被操作的数据),还有各种画笔、刷子等各种工具(运行的程序)。如果工作台(内存)不能足够大,容纳不下绘画所使用的所有工具,那么画家就需要不时地去储藏室(硬盘等存储设备)里取所需的工具,这就会大大影响绘画的速度。

  所以在评价一个系统性能的时候,要特别关注这个系统对内存的使用。

  启动时间——这是马儿的加速度问题。用户希望系统进入正常工作状态的时间越短越好,尤其在主备系统中,软件的启动时间直接影响主备的切换效率。而不同软件系统启动时间会不同的。J2EE系统在第一次启动的时候一般会比较慢,因为期间涉及缓存的加载、JSP页面的编译、Java class编译成机器指令等。所以在第一次启动应用感到非常慢是比较正常的,这也是J2EE或者Java应用的一个特点。而C/C++程序直接运行的是二进制机器代码,启动速度就要快一些。

  伸缩性——马儿要能快能慢。伸缩性是分析系统性能经常被忽略的一个方面。比如一个系统在50个并发用户访问的时候表现正常,但是当并发用户达到1000的时候,系统表现如何?服务器的性能是逐渐下降呢,还是在某个拐点附近急剧下降呢?

  如图1-1所示,该图是一个伸缩性不好的系统的表现,随着并发用户的增加,平均相应时间越来越长。系统最终会达到一个不可用的程度,没有一个用户会接受系统这样的性能表现。

  图1-1 伸缩性不好的用户 - 响应时间图

  如图1-2所示就是一个伸缩性较好的系统的表现,随着并发用户的增加,平均响应时间逐渐稳定下来。

  图1-2 伸缩性良好的用户 - 响应时间图

  稳定性——千里马能够“路遥知马力”,而黑马只能够一时跑得快。用户希望自己的软件系统是千里马,而不是黑马。尤其是金融和电信系统,这些系统基本上都是每天24小时运转,时时刻刻准备着为用户提供服务。如果它们在运行一段时间后出现了问题,不能响应用户的请求甚至破坏或丢失了数据,那么系统为用户带来的损失是巨大的。这种稳定性问题应该在软件系统上线之前就被考虑并得到解决。

  “快”、“好”这只是用户的主观体验,如果能让这些感觉和要求被其他人正确地理解(尤其是对软件人员),那么就需要用数据把上述用户的感受量化并表达出来,这就是性能指标。

  通常,衡量一个软件系统性能的常见指标有:

  1.响应时间(Response time)

  响应时间就是用户感受软件系统为其服务所耗费的时间,对于网站系统来说,响应时间就是从点击了一个页面计时开始,到这个页面完全在浏览器里展现计时结束的这一段时间间隔,看起来很简单,但其实在这段响应时间内,软件系统在幕后经过了一系列的处理工作,贯穿了整个系统节点。根据“管辖区域”不同,响应时间可以细分为:

  (1)服务器端响应时间,这个时间指的是服务器完成交易请求执行的时间,不包括客户端到服务器端的反应(请求和耗费在网络上的通信时间),这个服务器端响应时间可以度量服务器的处理能力。

原文转自:http://www.ltesting.net