本文是導演同志整理的一篇在“高級測試地帶”群中的,一些網友討論的關于負載測試和壓力測試的一篇文章,導演的文風幽默詼諧,雖然有些齷齪,但是在搞笑之余確實也能讓大家看到一些東西,在這里,發出來給大家看;
--陽光小序
大家好,我叫令狐沖,是五岳劍派中華山派的大師兄。我在華山派負責性能測試工作已經有五年的時間了,但是有一個問題我始終搞不明白。這個問題說出來還怪不好意思的,其實是個很基礎的問題,就是負載測試和壓力測試到底有什么區別。做為大師兄,說我搞不懂這個問題是很沒有面子的事情,所以五年來我一直裝作已經明白了。直到今天衡山派的
壓力測試
對系統不斷施加壓力的測試,是通過確定一個系統的瓶頸或不能接收用戶請求的性能點,來獲得系統能提供的最大服務級別的測試。例如測試一個Web站點在大量的負荷下,系統的事務響應時間何時會變得不可接受或事務不能正常執行。
壓力測試的目的是發現在什么條件下系統的性能變得不可接受,并通過對應用程序施加越來越大的負載,直到發現應用程序性能下降的拐點。壓力測試和負載測試有些類似,但是通常把負載測試描述成一種特定類型的壓力測試——例如增加用戶數量或延長壓力時間以對應用程序進行壓力測試。
負載測試
對系統不斷地增加壓力或增加一定壓力下的持續時間,直到系統的一些性能指標達到極限,例如響應時間超過預定指標或某種資源已經達到飽和狀態。這種測試可以找到系統的處理極限,為系統調優提供依據。
壓力測試側重壓力大小,而負載測試往往強調壓力持續的時間。
似乎有點道理,有點豁然開朗的感覺?墒俏疫不死心,我還想聽聽風清揚老前輩是怎么說的。一問之下,他給出的答案和師父果然不一樣,他是這樣說的:
1.負載測試
在這里,負載測試指的是最常見的驗證一般性能需求而進行的性能測試,在上面我們提到了用戶最常見的性能需求就是“既要馬兒跑,又要馬兒少吃草”。因此負載測試主要是考察軟件系統在既定負載下的性能表現。我們對負載測試可以有如下理解:
(1)負載測試是站在用戶的角度去觀察在一定條件下軟件系統的性能表現。
(2)負載測試的預期結果是用戶的性能需求得到滿足。此指標一般體現為響應時間、交易容量、并發容量、資源使用率等。
2.壓力測試
壓力測試是為了考察系統在極端條件下的表現,極端條件可以是超負荷的交易量和并發用戶數。注意,這個極端條件并不一定是用戶的性能需求,可能要遠遠高于用戶的性能需求?梢赃@樣理解,壓力測試和負載測試不同的是,壓力測試的預期結果就是系統出現問題,而我們要考察的是系統處理問題的方式。比如說,我們期待一個系統在面臨壓力的情況下能夠保持穩定,處理速度可以變慢,但不能系統崩潰。因此,壓力測試是能讓我們識別系統的弱點和在極限負載下程序將如何運行。
這下我又糊涂了。師父教我做性能測試這么多年了,而且也是公認的性能測試高手,都出過好幾本關于性能測試的書籍了。我知道他告訴我的那些,實際上就是從他寫的其中一本書中摘抄過來的?墒俏乙仓,風清揚老前輩更是高手中的高手,他說的應該也不會錯才是。而他們兩個人的說法又很明顯不一致。我到底應該聽誰的呢?
文章來源于領測軟件測試網 http://www.kjueaiud.com/