這幾天為了測試網站的負載極限,根據朋友的推薦先后使用了幾個壓力工具,上面的WebCT/WebRunner是其中之一, LoadRunner80我一看要裝300大M就又打了退堂鼓,要知道我幾年的機子一裝就不用跑了。微軟的WAS和Jmeter就成了試用的主要方式,這也是目前可以隨便找到的輕易負載工具中比較完善的兩種。WAS設置簡單,運行結果也具備可重復性。不過呢,報告不直觀,而且不能連續動態運行并報告;更糟的是,它沒有驗證請求是否正常的功能(或者是我不會用,沒有找到),這樣只是發出了請求,至于請求是不是完整執行還是實際上返回一個空文件,真是天知道。某種情況下,它也就是發出一大堆的request,讓網頁轉一轉而已。所以我對WAS的理解是重點不是看它本身的輸出日志,而是著重于從被測試者本身在調高測試強度后是本身記錄日志中檢查是否有異常,以及達到極限狀態下是否能夠恢復上作出結果判斷。
相比之下 Jmeter就好一點,這東西使用上也不難,相關的文章一看就基本上會用了。它有驗證請求是否正常執行的功能,也能夠通過持續請求觀察響應變化和背離情況,可以比較容易地發現不同的服務器設置對性能帶來的細微差別;就優化服務器來說,它比WAS強。不過Jmeter似乎有BUG,反正我試過幾次要啟動啟動不了,要關閉關閉不了的情況。
無論是使用WAS還是JMETER,都輕易把服務器會話計數打上了幾千。但怪就怪在,如果使用我自已那套土裝的代理服務器模擬Ddos攻擊時,按請求頻率,很快就會讓目標靶機進入極限狀態,甚至應用crash,必須重啟。但用WAS/JMETER,無論如何調大負載,都只是響應變慢一點,靶機都是死不了;直到我自已的測試機死了,靶機不一會又生蹦活跳地活轉過來。道理在那里,我也沒有什么譜;估計與代理服務器的工作方式有關;我發現靶機方面的記錄計數比我實際發出的線程請求要高出一兩倍。
無論如何,如果打算長期使用一個單元測試的工具測試Web應用負載的話,Jmeter應該是一個不錯的選擇;另備一個WAS也不算浪費。LoadRunner和其他動不動張口要錢的主兒,暫時就免了吧。
原文轉自:http://www.uml.org.cn/Test/200604242.htm