* SilkPerformer, Segue Software, http://www.segue.com/
* Benchmark Factory, Quest Software, http://www.benchmarkfactory.com/
* LoadRunner, Mercury Interactive, http://www.mercuryinteractive.com/
無論你選擇哪種工具,它都至少應該提供以下的功能,以便為以提供豐富且有意義的測試數據:
* 發送GET和POST請求
* “記錄”從瀏覽器發送的GET和POST請求(以免開發者需要手寫這些合適的請求)。
* 獲取和發送COOKIE。
* 多線程
* 模擬用戶延遲
* 記錄性能數據
* 控製帶寬
我打賭如果你以前沒有接觸過以上這些內容,那麼你的WEB應用程序很難在壓力測試中獲得令人滿意的結果。你會看到響應時間會隨著請求數量的增多而暴漲,甚至出現一些我們不想看到的情況,比如“拒絕連接”。
一旦沒能通過壓力測試我們應該如何應對呢?優化!沒錯,不過我們怎麼知道那裏應該優化呢?Profiler可以對此提供很多的幫助。(我不知道怎麼翻譯它更貼切一些,所以幹脆不翻譯了!)
Profiler提供這樣的功能,它可以檢測你的應用程序並提供一些有用的運行時信息,比如某塊代碼的執行時間、內存/堆的使用情況、內存中的對象實例數量等等。比如,我們想知道到底是哪個Java對象的哪個方法耗費了更多的時間。
以下是一些Profiler:
* Quantify,Rational Software,http://www.rational.com/
* Optimizeit,Intuitive Systems,http://www.optimizeit.com/
* JProbe,Sitraka Software,http://www.jprobe.com/
請注意,我們不能過分依賴工具,雖然它們很多時候可以極大的是我們的工作變得簡單、輕鬆。一般如果你知道了係統的瓶頸所在,修改往往是一件相對輕鬆的事情。個人認為尋找、發現係統的瓶頸所在才是最關鍵、也是最體現一個人功力的步驟。這是一個非常專業的問題,它需要你對所使用的應用平台、軟件架構、數據庫係統、網絡環境等等諸多方麵非常深的造詣。這並不誇張,任何一個會JSP和JDBC的人都可以寫出一個WEB應用程序來,但是那還相差太遠……限於篇幅,話題先進行到這裏。其實你可以在很多地方找到有關測試和優化技巧的文章,都非常有針對性,比如TheServerSide.com、JavaLobby.com等。Java之路很長,一步一步走吧!