在我們完成了基於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的經驗。
posted on Tuesday, December 21, 2004 4:27 PM