【蟲師--系列02】在做效能測試之後需要知道些什麼
來自:http://www.cnblogs.com/fnng/archive/2012/03/04/2379744.html 作者:蟲師
之前寫過一篇《在做效能測試之前應該知道什麼》有博文,自我感覺講的不好,舉了兩個例子,和做效能測試之前需要知道的一些要點。離我的題目有差距。二則覺得講的不全。其實,要做效能測試需要知道的東西太多了。豈是一篇博文都能說全的。在這裡表示一下愧疚之情。
好多測試新手,在做完效能測試之後,不知如何對測試資料進行分析。在這裡我想談談一些效能測試引數的相關知識。當然,也不是一篇博文就能說清道明的。只希望在你的測試道路上能給你一絲幫助。
不怕囉嗦的再次忠告,那想成為測試高手的新人,多學學基礎知識。別把過多的時間放在研究新工具的使用上。工具何其多,原理差不多。不要本末倒置了。也算是自我提醒吧!
效能測試常見指標
效能測試說白了就是通過工具模擬多個使用者對被測系統進行訪問。然後檢視系統對於多個使用者發來請求的處理能力。
左邊的兩個小人表示兩個使用者,向右邊伺服器傳送請求,然後得到伺服器的響應資訊。
首先,我們要保證向伺服器傳送的請求的正確性,當然使用者向伺服器傳送錯誤的請求,伺服器也會個客戶端響應資訊,但響應的是報錯資訊;所以,為了保證測試資料的有效性,我們的要保證傳送請求的正確性。
為什麼一般的效能測試要在局域進行?
一般我們的效能測試都是在區域網中進行的。為什麼一定要在區域網中進行呢?因為區域網中不受網路限制。這個說法不能絕對。但是一般測試工具的使用者併發量是不會受到區域網頻寬的限制,除非你做的是十萬,百萬級別的使用者併發。相信懂一點網路知識的人都知道,當你上網很慢的時候,比如開啟某某網站很慢,你肯定會罵電信的網路不給力,而不會罵這個網站響應速度不給力。因為,請求資訊的耗時大部耗在傳輸過程中。
所以,剛做測試時,我們群裡熱議論,如果我們每個人都開一個壓力工具對百度網站進行加壓。百度,伺服器會不會掛掉。有測友說這樣是不道德人。呵呵!其實,完全不必有這個擔心。就一般人家用的頻寬,我確保,你向百度伺服器傳送的請求大部分都死在半路上,就算不死到了百度伺服器已經不能叫併發了。何況百度伺服器的叢集技術以及其他各種分壓技術。所以,做效能測試不瞭解被測系統的架構,以及各種技術的效能。很難做出有效的測試報告。
下面我們看看效能測試的一些技術指標。
Work Load = Virtual Users
工作負荷 = 虛擬使用者數
對伺服器產生多大壓力,可以由多少使用者同時對伺服器傳送請求來衡量。也就是伺服器的效能可以看它同時處理多少使用者傳送來的請求來衡量。響應時間圖分析
橫座標表示使用者數 縱座標表示時間 紅色虛線,表求的是一種系統的理想狀態。 當伺服器處理10個使用者請求時所用的時間是2秒(假設),當伺服器處理200使用者請求時所用的時間也是2秒。所以說這種狀態是一種理想的狀態。現實中,不管是如何超級強的伺服器當用戶數達到一定數量時,響應時間必會變慢。 藍色斜線,是伺服器常見的一種曲線狀態。 伺服器的響應時間雖然使用者數量的增加逐漸變慢。 當系統出現這種斜線,應該說系統性能是相當健壯的。隨著使用者的增長響應時間逐漸變長。 黑色曲線,個人覺得是伺服器處理能力的真實曲線狀態。 為什麼說黑線才是真實伺服器處理能力的曲線呢?當用戶處理一個使用者請求是2秒(假設),當處兩個使用者請求是馬上變成3秒(假設),當處理3個使用者請求時變成4秒(假設)。再差的伺服器也有個處理範圍,比如是,100使用者同時併發,伺服器可以輕鬆應對,不管是10個使用者還是80個使用者同時請求,伺服器都可以即可響應(請參考理髮店模式)。只有當用戶數量達到某個數量點後,伺服器效能急劇下降。如上圖黑色十字星處就是系統的拐角點。 我們假設有一個門,在一個時間點上可同時過10個人,不管你是同時來3個還是10個都可以在同一時間點過門,假如來了11個人,必然有一個人要等10個人過門之後才能過。那麼當超過10人來過門時,過門的速度就開始變慢。那麼10就是伺服器效能的拐角點。我們通常做壓力測試找伺服器的拐角點是很重要的任務之一。 關藍色曲線與黑色區線只是我們常見兩種曲線。現實的測試中可能出現各種樣式的曲線。當然還要看你做測試的細度,比如,10個使用者是系統的拐點,如果你做完5個使用者的一輪測試後,就是20使用者的測試。那麼畫出來的曲線就變成斜線,拐點將被護忽略掉。