华山论剑之负载测试与压力测试

发表于:2008-07-09来源:作者:点击数: 标签:负载华山论剑压力
编者序: 本文是导演同志整理的一篇在“高级测试地带”群中的,一些网友讨论的关于 负载测试 和 压力测试 的一篇文章,导演的文风幽默诙谐,虽然有些龌龊,但是在搞笑之余确实也能让大家看到一些东西,在这里,发出来给大家看; --阳光小序 大家好,我叫令狐
编者序:
本文是导演同志整理的一篇在“高级测试地带”群中的,一些网友讨论的关于负载测试压力测试的一篇文章,导演的文风幽默诙谐,虽然有些龌龊,但是在搞笑之余确实也能让大家看到一些东西,在这里,发出来给大家看;
                                                                                                                                                                                --阳光小序

大家好,我叫令狐冲,是五岳剑派中华山派的大师兄。我在华山派负责性能测试工作已经有五年的时间了,但是有一个问题我始终搞不明白。这个问题说出来还怪不好意思的,其实是个很基础的问题,就是负载测试和压力测试到底有什么区别。做为大师兄,说我搞不懂这个问题是很没有面子的事情,所以五年来我一直装作已经明白了。直到今天衡山派的莫大先生问起我这个问题,我答不上来,自觉对不起师父,并为我自己不求甚解的学习态度深深地感到惭愧。于是我回来请教了师父岳不群。他是这样告诉我的:

 

压力测试

 

对系统不断施加压力的测试,是通过确定一个系统的瓶颈或不能接收用户请求的性能点,来获得系统能提供的最大服务级别的测试。例如测试一个Web站点在大量的负荷下,系统的事务响应时间何时会变得不可接受或事务不能正常执行。

 

压力测试的目的是发现在什么条件下系统的性能变得不可接受,并通过对应用程序施加越来越大的负载,直到发现应用程序性能下降的拐点。压力测试和负载测试有些类似,但是通常把负载测试描述成一种特定类型的压力测试——例如增加用户数量或延长压力时间以对应用程序进行压力测试。

 

负载测试

 

对系统不断地增加压力或增加一定压力下的持续时间,直到系统的一些性能指标达到极限,例如响应时间超过预定指标或某种资源已经达到饱和状态。这种测试可以找到系统的处理极限,为系统调优提供依据。

 

压力测试侧重压力大小,而负载测试往往强调压力持续的时间。

 

似乎有点道理,有点豁然开朗的感觉。可是我还不死心,我还想听听风清扬老前辈是怎么说的。一问之下,他给出的答案和师父果然不一样,他是这样说的:

1.负载测试

 

在这里,负载测试指的是最常见的验证一般性能需求而进行的性能测试,在上面我们提到了用户最常见的性能需求就是既要马儿跑,又要马儿少吃草。因此负载测试主要是考察软件系统在既定负载下的性能表现。我们对负载测试可以有如下理解:

 

(1)负载测试是站在用户的角度去观察在一定条件下软件系统的性能表现。

 

(2)负载测试的预期结果是用户的性能需求得到满足。此指标一般体现为响应时间、交易容量、并发容量、资源使用率等。

 

2.压力测试

 

压力测试是为了考察系统在极端条件下的表现,极端条件可以是超负荷的交易量和并发用户数。注意,这个极端条件并不一定是用户的性能需求,可能要远远高于用户的性能需求。可以这样理解,压力测试和负载测试不同的是,压力测试的预期结果就是系统出现问题,而我们要考察的是系统处理问题的方式。比如说,我们期待一个系统在面临压力的情况下能够保持稳定,处理速度可以变慢,但不能系统崩溃。因此,压力测试是能让我们识别系统的弱点和在极限负载下程序将如何运行。

 

这下我又糊涂了。师父教我做性能测试这么多年了,而且也是公认的性能测试高手,都出过好几本关于性能测试的书籍了。我知道他告诉我的那些,实际上就是从他写的其中一本书中摘抄过来的。可是我也知道,风清扬老前辈更是高手中的高手,他说的应该也不会错才是。而他们两个人的说法又很明显不一致。我到底应该听谁的呢?

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