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