在我們完成了基於SPS2003的開發,實現了我們的具體應用以後,我們是不是就可以直接請使用者來使用了呢?如果我這麼做,那麼有經驗的開發人員一定會對此嗤之以鼻:居然連壓力測試也不做!真是不想活了……
呵呵,是啊。開發環境往往只考慮功能,到了具體環境中,就需要考慮有大量的使用者來訪問的時候,很多功能會不會出錯?效能會怎麼樣呢?……我們這裡就簡單看看,怎麼來做壓力測試。
相信作壓力測試肯定有很多工具,而我們一般使用的,現在很多是Application Center Test (ACT)。這個東東是VS.NET中的一個組建,很簡單,容易上手,而且支援指令碼,也可以實現複雜的功能……
這裡省略測試步驟,假設我們只是直接對一個網站做測試,例如Test.SendRequest("http://server/default.aspx")。現在怎樣來分析結果呢?
下面是我剛學到的一些資訊,和大家共用,希望對於有經驗的朋友,起一個拋磚引玉的功能。
1. 首先,檢查一下又沒有錯誤,例如401使用者沒有驗證的錯誤。如果有錯誤,那麼結果肯定是不對的,也不用看了。
2. 分析Average requests per second,應該就是“每秒平均請求”。
我們可以多測試幾次,使用1、2、5、10、50、100、200……的並發瀏覽器串連數目。然後,我們可以把幾次結果放在一個圖表中來分析。
一般情況下,隨著並發瀏覽器串連數目的增加,Average requests per second的數目也會增加,但當到了某一個值以後,再增加就反而導致Average requests per second下降了。那麼,這個值就差不多是伺服器能支援的最大並發瀏覽器串連數目。
3. Average time to last byte
是發送請求以後,到收到伺服器響應結束的時間。
顯然,一般情況下,隨著並發瀏覽器串連數目的增加,這個值是會隨著變大的。一般情況下,分析這個值是不是合理,可以參考下面的標準:
0.1秒: 非常快了
1秒: 速度還是非常快的,基本不用考慮效能問題
3 – 4秒: 對於內部網路,可以接受的一個結果
5 – 8秒: 對於外部網路,可以接受的一個結果
10秒以上: 太慢了一些
4. Average time to first byte
一樣,只不過是發送請求以後,到收到伺服器響應開始的時間。
歡迎大家討論,發表關於ACT的經驗。
FROM: http://blogs.msdn.com/oliverlu/archive/2004/12/21/328273.aspx