摘要:該文首先介紹了Web應用軟件的定義,接著介紹了Web應用性能測試的定義和性能測試的內容,然后詳細分析了Web應用性能測試工具的原理,包括目前常用的性能測試工具模型、性能測試工具的選擇等。
關鍵詞:Web應用軟件 性能測試 測試工具
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2011)20-4902-02
Web的全稱是World Wide Web,簡稱為Web。自從產生以來,Web已經得到廣泛的發展,在邏輯上形成了一個遍布全球的巨大信息網絡。為了確保Web應用軟件功能的正確,并能同時處理大量的并發用戶的訪問,而且兼容不同的瀏覽器、不同瀏覽器版本和操作系統,從而使Web應用軟件的設計達到預期的功能需求同時又具有良好的性能,必須進行以下不同類型的測試,其中的性能測試主要確定在用戶可接受的響應時間內,系統能夠承擔的并發用戶的數量,能夠同時處理的交易的數目,以及不同負載情況下頁面的下載時間和檢測瓶頸可能發生的位置。
性能是Web應用軟件成功的一個重要因素,對于用戶來說,性能有時比功能更重要。因此,要保證Web應用程序達到預期的性能,開發過程中就必須進行性能測試。只有通過性能測試后,才有信心將它投入使用。Web應用軟件性能測試的目標在于通過模擬真實負載,找出性能瓶頸,優化系統性能,從而保證程序在實際運行中能夠提供良好和可靠的服務。
1 Web應用軟件性能測試的內容
性能測試在軟件的質量保證中起著重要的作用,它包括的測試內容豐富多樣。主要包括三個方面的測試:在客戶端性能的測試、在網絡上性能的測試和在服務器端性能的測試。
1.1 在客戶端的性能測試
在客戶端性能測試的目的,是考察客戶端應用軟件的性能,測試的入口是客戶端。它主要包括并發性能測試、疲勞強度測試、大數據量測試和速度測試等,其中并發性能測試是重點。
并發性能測試的過程是一個負載測試和壓力測試的過程,即逐漸增加負載,直到系統的瓶頸或者不能接收的狀態,通過綜合分析請求響應數據和資源監控指標,來確定系統并發性能的過程。負載測試是確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統組成部分的相應輸出項。
1.2 在網絡上的性能測試
在網絡上的性能測試重點是利用成熟先進的自動化技術進行網絡應用性能監控、網絡應用性能分析和網絡預測。網絡應用性能分析的目的是準確展示網絡帶寬、延遲、負載和TCP(Transmission Control Protocol)端口的變化是如何影響用戶的響應時間的。在系統試運行之后,需要及時準確地了解網絡上正在發生什么事情;什么應用在運行,如何運行;多少PC(Personal Computer)正在訪問LAN(Local Area Network)或WAN(Wide Area Network);哪些應用程序導致系統瓶頸或資源競爭,這時網絡應用性能監控以及網絡資源 管理 對系統的正常穩定運行是非常關鍵的。利用網絡應用性能監控工具,可以達到事半功倍的效果??紤]到系統未來發展的擴展性,預測網絡流量的變化、網絡結構的變化對用戶系統的影響非常重要,根據規劃數據進行預測并及時提供網絡性能 預測數據。
1.3 在服務器端的性能測試
對于應用在服務器上的性能測試,可以采用工具監控,也可以使用系統本身的監控命令,例如Tuxedo中可以使用Top命令監控資源使用情況。實施測試的目的是實現服務器設備、服務器操作系統、數據庫系統、應用在服務器上性能的全面監控。
2 Web應用軟件性能測試工具
2.1 性能測試工具的簡介
常用的測試工具有Loadrrunner和Jmeter,下面對它們分別作簡要的介紹。Loadrunner是Mercury Interactive公司的測試工具。Loadrunner是一種預測系統行為和性能的工業標準級負載測試工具,通過以模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題,對整個企業架構進行測試。
Jmeter:這是著名的Apache 組織 下的Jmeter項目組開發的一個測試工具,完全使用Java語言實現,可以對http和ftp服務器進行負載和性能測試,通過使用Jmeter提供的供能,可以容易的制定測試 計劃:包括規定使用什么樣的負載、測試什么內容、傳入的參數,同時,Jmeter還提供了好多種圖形化的測試結果顯示方式,能夠方便的開始測試工作和分析測試結果。特別是能將線程分組,同時對多個不同的功能進行測試。
2.2 性能測試工具的模型
一般來說,性能測試工具包括以下部件:虛擬用戶腳本產生器(Vugen)、壓力產生器、用戶代理、壓力調度和監控系統、壓力結果分析工具。
1)虛擬用戶產生器通過錄制客戶端和后臺服務器之間的通訊包,分析其中的協議,自動產生腳本。用戶在自動產生的腳本的基礎上進行修改,從而快速開發出一個邏輯功能和客戶端軟件完全一樣的壓力腳本程序。錄制的技術主要是通過Proxy的方式來實現的。
Vugen根據對捕獲的數據的分析,將其還原成對應協議的API組成的腳本。由于Proxy源程序的獲得非常容易,Vugen捕獲的數據包通常為TCP數據流,這樣可以很容易的生成Socket層次的腳本。
2)壓力產生器用于根據腳本內容,產生實際的負載。在性能測試工具中,壓力產生器主要是產生負載。
3)用戶代理是運行在負載機上的進程,該進程與產生負載壓力的進程或線程協作,接受調度系統的命令,調度產生負載壓力的進程或線程,因此,用戶代理也可以被看作是壓力產生器的組成部分。
參考文獻:
[1] 安永新.基于風險的Web 應用 測試研究[D].重慶:重慶大學,2002.
[2] 段念.軟件性能測試過程詳解與案例剖析[M].北京:清華大學出版社,2006.