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

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

軟件Web測試中應用性能測試的研究

發布: 2010-8-04 10:13 | 作者: 網絡轉載 | 來源: 領測軟件測試網采編 | 查看: 130次 | 進入軟件測試論壇討論

領測軟件測試網

軟件Web測試中應用性能測試的研究

一、引言

隨著網絡技術的迅速發展,尤其是WEB及其應用程序的普及,各類基于WEB的應用程序以其方便、快速,易操作等特點不斷成為軟件開發的重點。與此同時,隨著需求量與應用領域的不斷擴大,對WEB應用軟件的正確性、有效性和對WEB服務器等方面都提出了越來越高的性能要求,對WEB應用程序進行有效的系統的測試也逐漸成為人們研究的重要課題。

目前可以見到各種WEB服務器平臺,然而根據Mereury的研究報告,98%的WEB服務器都沒能達到人們所期望的性能,平均只能發揮人們所期望性能的1/6左右。WEB性能測試能夠確定影響WEB服務器性能的關鍵因素,從而可以有針對性地進行分析和改進,避免WEB服務器研究和優化過程中的盲目行為;同時,它也是選取不同的WEB服務器的重要參考。

隨著WEB應用程序使用越來越廣泛,針對其性能測試的要求也越來越多,然而由于WEB程序綜合了大量的新技術,諸如HTML、JAVA、Javascript、VBScript等,同時它還依賴很多其它的因素,比如Link、Database、Network等,使得WEB應用程序測試變得非常復雜。例如:WEB壓力測試是評價一個WEB應用程序的主要手段,它的測試就是一個代表性的方面。

在整個web應用的測試中,性能測試占非常重要位置,因為性能直接反映了Web應用所提供服務的質量水平。Web應用設計的復雜性和用戶使用的不可預測性給如何準確地預測它的性能帶來了很大的挑戰,而且隨著Web應用的規模越來越大、用戶越來越多,這個挑戰變得更加嚴重。文中就如何準確地設計負載測試進行了深入研究,提出了對用戶導航、用戶延遲進行建模的方法來設計負載測試,以使負載測試能夠準確地模擬現實用戶環境和預測Web應用的性能。最后應用工具loadrunner進行負載測試實戰。

WEB應用程序的測試有別于傳統軟件的測試,它有其自身的特點。下面我們進行比較深入的討論。

二、WEB測試技術

(一)WEB應用程序體系結構

WEB應用程序采用B/S結構,它是伴隨著Internet技術的不斷進步,由C/S結構改進和發展起來的新型體系結構。在這種結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯則在服務器端實現,形成所謂3tier結構。B/S結構利用不斷成熟和普及的瀏覽器技術實現原來需要復雜專用軟件才能實現的強大功能,并節約了開發成本,是一種全新的軟件系統構造技術。這種結構更成為當今應用軟件開發的首選體系結構,目前最流行的mi?鄄crosoft.net也是在這樣一種背景下被提出來的架構。

傳統的軟件一般采用C/S結構,此結構把數據庫內容放在遠程的服務器上,而在客戶機上安裝相應軟件。C/S軟件一般采用兩層結構,C/S結構在技術上很成熟,它的主要特點是交互性強、具有安全的存取模式、網絡通信量低、響應速度快、利于處理大量數據。但是該結構的程序是針對性開發,變更不夠靈活,維護和管理的難度較大。

(二)WEB測試的內容與目的

在很多時候我們都把測試的目的定位為尋找軟件的BUG,而且是盡可能的找出BUG來,而測試人員所做的事情就是找軟件的毛病,只要找出毛病就可以了,這樣很容易帶了一系列的問題。比如測試人員給某網站做測試,并遞交了一份簡單的測試報告:“當100用戶共同按某提交按鈕時,發生大量的提交失敗”。對于測試人員來說,他已經完成了他自己的任務,找出了BUG,但是,這樣的測試報告對于開發人員和項目管理者卻毫無用處。報告中并未提及造成提交失敗的原因,是硬件資源不足、網絡問題、支撐軟件參數設置錯誤還是應用開發問題等等。

測試的目的是證偽,但不能片面的理解為簡單的找不BUG就可以了。軟件測試應該經歷以下四個步驟:

1.測試人員描述發現的問題(找到BUG);

2.測試人員詳細闡明是在何種情況下測試發現的問題,包括測試的環境、輸入的數據、發現問題的類型、問題的嚴重程度等情況;

3.測試人員協同開發人員一起去分析BUG的原因,找出軟件的缺陷所在;

4.測試人員根據解決的情況進行分類匯總,以便日后進行軟件設計的時候提供參考,避免以后出現類似軟件缺陷。

(三)制定WEB測試計劃

當我們明確了測試的目的之后,真正開始針對一個WEB應用程序進行測試的時候,我們需要制定一套詳細的測試計劃,這樣才能順利的完成所有的測試內容,計劃的內容歸納為以下幾步:

1.首先對被測的WEB應用程序進行需求分析,即對你所做的測試做一個簡要的介紹,包括描述測試的目標和范圍,所測試的目標要實現一個什么樣的功能,總結基本文檔,主要活動。

2.寫出測試策略和方法,這里包括測試開始的條件,測試的類型,測試開始的標準以及所測試的功能,測試通過或失敗的標準,結束測試的條件,測試過程中遇到什么樣的情況終止和怎么處理后恢復等。

3.確定測試環境的要求(包括軟件和硬件方面),選擇合適的測試工具。

4.主要針對你測試的行為,描述你測試的細節,包括測試用例列表,進度表,錯誤等級分析,對測試計劃的總結,和在測試過程會出現的風險分析等。

(四)測試的類型

WEB測試的類型包括內容測試、界面測試、功能測試、性能測試、兼容性測試、安全性測試等情況。內容測試、界面測試和兼容性測試都比較簡單,在此不再細談。WEB的功能測試與傳統的軟件測試區別不大,主要是在連接測試方面有點區別,數據的傳遞方面會稍微復雜點。由于WEB軟件都是采用B/S結構,客戶端所需的服務都是由服務器提供的,所以主要是測試服務器上軟件運行的性能。WEB應用程序的測試包括客戶端連接服務器速度方面的測試和壓力測試這兩方面,性能測試的步驟:

第一,分析產品結構,明確性能測試的需求,包括并發、極限、配置和指標等方面的性能要求,必要時基于LOAD測試的相同測略需同時考慮穩定性測試的需求。

第一,分析應用場景和用戶數據,細分用戶行為和相關的數據流,確定測試點或測試接口,列示系統接口的可能瓶頸,一般是先主干接口再支線接口,并完成初步的測試用例設計。

第三,依據性能測試需求和確定的測試點進行測試組網設計,并明確不同組網方案的重要程度或優先級作為取舍評估的依據,必要時在前期產品設計中提出支持性能測試的可測試性設計方案和對測試工具的需求。

第四,完成性能測試用例設計、分類選擇和依據用戶行為分析設計測試規程,并準備好測試用例將用到的測試數據。

第五,確定采用的測試工具。

第六,進行初驗測試,以主干接口的可用性為主,根據測試結果分析性能瓶頸,通過迭代保證基本的指標等測試的環境。

第七,迭代進行全面的性能測試,完成計劃中的性能測試用例的執行。

第八,完成性能測試評估報告。

在進行性能測試的時候,我們需要知道一些有效的性能指標,下面我們來列出一些主要的性能指標:

一是,通用指標(指Web應用服務器、數據庫服務器必需測試項):

*ProcessorTime:指服務器CPU占用率,一般平均達到70%時,服務就接近飽和;

*Memory Available Mbyte:可用內存數,如果測試時發現內存有變化情況也要注意,如果是內存泄露則比較嚴重;

*Physicsdisk Time :物理磁盤讀寫時間情況。

二是,Web服務器指標:

*Avg Rps:平均每秒鐘響應次數=總請求時間/秒數;

*Avg time to last byte per terstion(mstes):平均每秒業務角本的迭代次數;*Successful Rounds:成功的請求;

*Failed Rounds:失敗的請求;

*Successful Hits:成功的點擊次數;

*Failed Hits:失敗的點擊次數;

*Hits Per Second:每秒點擊次數;

*Successful Hits Per Second:每秒成功的點擊次數;

*Failed Hits Per Second:每秒失敗的點擊次數;

*Attempted Connections:嘗試鏈接數。

三是,數據庫服務器指標:

*User 0 Connections :用戶連接數,也就是數據庫的連接數量;

*Number of deadlocks:數據庫死鎖;

*Butter Cache hit:數據庫Cache的命中情況。

(五)測試工具介紹

1.ACT(或者MSACT)。ACT是微軟的Visual Studio 和Visual Studio.NET帶的一套進行程序測試的工具,ACT不但可以記錄程序運行的詳細數據參數,用圖表顯示程序運行狀況,而且安裝和使用都比較簡單,結果閱讀也很方便,是一套較理想的測試工具。

Microsoft Web Application Stress Tool (WAS):這個工具和ACT一樣是微軟的產品,但是這個工具沒有和Visual Studio集成,可以單獨使用。感覺這個程序現在還在測試,但是一些基本的功能已經很完備,可以完成ACT幾乎所有功能,而且WAS使用更加簡單,設置也更加完備明了。這個工具的另外一個特點是,它的報表是純文本文件,而不是流行的HTML文件格式,但內容方面一點也不遜色。

2.Open System Testing Architecture (OpenSTA)。OpenSTA的特點是可以模擬很多用戶來訪問需要測試的網站,它是一個功能強大、自定義設置功能完備的軟件,但這些設置大部分需要通過Script來完成,因此在真正的使用這個軟件之前,必須學習好它的Script編寫。如果需要完成很復雜的功能,Script的要求還比較高,當然,這也是它的優點,一些程序員不會在意這些Script的。這個軟件完全免費而且源代碼可以下載,可以自己修改達到特定的要求。

3.PureLoad。PureLoad是基于Java的測試工具,它的Script代碼完全使用XML,所以這些代碼的編寫很簡單,它的測試報表包含文字和圖形并可以輸出為HTML文件。由于是基于Java的軟件,所以可以通過Java Beans API來增強軟件功能。

4.QALoad。QALoad不單單測試WEB應用,還可以測試一些后臺的東西,比如SQL Server等,只要是它支持的協議,都可以測試;另外一點,QALoad不但可以測試Windows,而且可以測試AIX, HP-UX 和 Solaris等系統。但是,這款軟件價格很高。

5.LoadRunner。Mercury LoadRunner是一種預測系統行為和性能的負載測試工具。通過以模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題,LoadRunner能夠對整個企業架構進行測試。通過使用LoadRunner,企業能最大限度地縮短測試時間,優化性能和加速應用系統的發布周期。

對于財大氣粗的大公司而言,這款軟件可能比較適合,它的功能和QALoad相比不相上下,市面上著名的公司如IBM、SUN、Oracle等都用這個軟件。但是它的價格也高不可攀,和功能成正比。

三、進一步的工作與討論

隨著全面質量管理思想在軟件開發領域的應用和不斷向前推進,軟件測試也由最初的僅僅針對軟件成品擴展到了針對軟件半成品甚至過程產品的全過程測試,這是對軟件測試的一種必然擴充。WEB測試也會隨著這一思想,不斷地擴展到WEB軟件的各個生命周期中去,這將使WEB應用程序取得更高的質量,這也是我們以后需要進一步研究的內容。特別是對WEB壓力測試自適應模型的探索才剛剛開始,有很多不足之處,例如:目前的測試人機交互較多,而自動完成的步驟較少等,這些都有待日后的改進。

除了前面介紹的WEB壓力測試外,目前WEB測試的主要研究熱點還有:WEB應用測試的框架研究,WEB應用程序測試的對象模型研究及其應用,WEB測試的高度自動化研究等等,都將是未來一段時期內的研究重點。

延伸閱讀

文章來源于領測軟件測試網 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