• 軟件測試技術
  • 軟件測試博客
  • 軟件測試視頻
  • 開源軟件測試技術
  • 軟件測試論壇
  • 軟件測試沙龍
  • 軟件測試資料下載
  • 軟件測試雜志
  • 軟件測試人才招聘
    暫時沒有公告

字號: | 推薦給好友 上一篇 | 下一篇

軟件測試之WEB應用程序的測試與優化

發布: 2009-4-14 09:14 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 20次 | 進入軟件測試論壇討論

領測軟件測試網 讓你的WEB應用程序完成你想做的事情是一回事,而讓他們快速、有效的去做常常是另外一回事!

在這篇文章里我將初步討論有關“WEB應用程序的性能”的問題,主要是一些基本概念以及工具,算是拋磚引玉吧!注意這些內容同樣適用于J2EE等應用。此后,也許我會寫更多關于此方面的文章。當然,是“也許”。好了,祝我們好運吧!

首先,這里有兩個性能方面的重要指標。請注意,下面的“定義”并不規范,僅供參考。
* Response Time - 響應時間
從初始化請求到完成響應所用的時間。這是一個測試WEB應用程序速度的重要度量。
* Scalability - 伸縮性
一個可伸縮的應用程序的響應時間隨負載的增加而線性增加。
沒有WEB應用程序可以處理無限數目的請求,但是一般我們可以預測一個范圍,并保證我們的WEB應用程序可以在此范圍內“優雅”的伸縮,即始終把響應時間維持在可接受的級別。

如果我們打算優化我們的WEB應用程序,那么至少我們應該知道它到底該不該優化。壓力測試可以解答這個問題。

* Load Test - 壓力測試
為WEB應用程序模擬用戶請求以測量其伸縮性的過程。
它非常有用,雖然開始的時候會覺得有點“變態”。一般我們會模擬大量的用戶請求以獲得在WEB應用程序的速度惡化到無法接受的級別前能夠處理的并發請求數量。
所謂“無法接受的級別”并不是一定要到實例池崩潰、應用服務器癱瘓甚至服務器當機的時候,這要視需求而定。

一般壓力測試包含如下步驟:
* 確定接受請求并完成響應的最大允許的延時。
* 估計WEB應用程序的最大并發用戶數量。
* 模擬用戶請求,以一個比較小的負載開始,逐漸增加模擬用戶的數量,
直到WEB應用程序的 相應延時超過最大延時。
* 如果負載比估計的用戶數量小,那么應該優化這個WEB程序,否則你選擇性的執行優化。

你不會在考慮自己寫一個測試程序吧?算了,何必再重新發明一次輪子?這里有一些壓力測試工具,它們各有特色,先介紹免費的:
* Web Application Stress Tool, Microsoft,http://www.microsoft.com
* JMeter, Java Apache Project,http://www.apache.org/
* LoadItUp, BroadGun Software,http://www.broadgun.com

如果你或你的公司很有Money,或者需要更加豐富的功能,可以使用以下商業軟件,不過它們都價值$10,000,甚至更多:
* WebLoad, RadView Software,http://www.radview.com/
* 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之路很長,一步一步走吧!


延伸閱讀

文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/

TAG: web Web WEB 軟件測試 應用程序


關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97