1. 程式人生 > >論基於java的web應用程式的效能測試

論基於java的web應用程式的效能測試

論文關鍵詞:web 應用 效能測試 loadrunner 論文摘要:效能測試可以測算出應

用系統能夠承受的負荷,從而保證系統在實際壓力下的正常工作。本文通過一種能夠模擬真

實使用者實際行為的方法,對應用系統進行效能測試,獲取資料進行分析,並對其效能指標進

行比較,找到系統瓶頸,從而進行效能優化。 引言 World Wide Web簡稱Web

或WWW ,中文名字全球資訊網。是自20世紀90年代以來最重要的Internet 應用。作為一種資

源的組織和表達機制,Web已成為Internet 最主要的資訊傳送媒介。 隨著Internet 的

迅速發展,web應用越來越深入人們的工作和生活。java自1995年問世以來,由於其簡單易

學、跨平臺、純面向物件等諸多優點吸引了人們。因此基於java 的web應用程式得到了廣

泛的應用。軟體除了能滿足使用者的需求之外,還要保證各個部分協調有效的執行,發揮整個

系統的一體作用,因此軟體的效能也是非常重要的。在保證軟體質量的過程中,需要進行各

種測試,例如功能測試、效能測試、可用性測試、客戶端相容性測試及安全性測試。由於基

於web的B/S架構的應用程式,客戶端只能完成瀏覽、查詢、資料輸入等簡單功能,絕大部

分工作由伺服器承擔,這使得伺服器的負擔很重。因此係統併發的使用者數,系統的事務率及

響應時間,在基於JAVA的web應用程式尤其重要。所以本文著重描述其效能測試。 1.

軟體效能測試 軟體效能測試是為了描述物件與效能相關的特性並對其進行評價,而實施

和執行的一類測試。效能測試主要檢驗軟體是否達到需求規格說明中規定的各類效能指標,

並滿足一些效能相關的約束和限制條件。 中國軟體評測中心將效能測試概括為三個方面:

應用在客戶端效能的測試、應用在網路 上效能的測試和應用在伺服器端效能的測試。

本文主要關注應用在客戶端效能的測試。 應用在客戶端效能測試的目的是考察客戶端應

用的效能,測試的入口是客戶端。它主要包括併發效能測試、疲勞強度測試、大資料量測試

和速度測試等,其中併發效能測試是重點。 併發效能測試的過程是一個負載測試和壓力

測試的過程,即逐漸增加負載,直到系統的瓶頸或者不能接受的效能點,通過綜合分析交易

執行指標和資源監控指標來確定系統併發效能的過程。負載測試是確定在各種負載下系統的

效能,目標是測試當負載逐漸增加時,系統組成部分的相關輸出項,例如通過量、響應時間、

CUP負載、記憶體使用等來決定系統的效能。負載測試是一個分析軟體應用程式和支撐架構、

模擬真實環境的使用,從而來確定能夠接受的效能過程。壓力測試是通過確定一個系統的瓶

頸或者不能接受的效能點,來獲得系統能提供的最大服務級別的測試。 併發效能測試的

目的主要體現在三個方面:以真實的業務為依據,選擇有代表性的、關鍵的業務操作設計測

試案例,以評價系統的當前效能;當擴充套件應用程式的功能或者新的應用程式將要被部署時,

負載測試會幫助確定系統是否還能夠處理期望的使用者負載,以預測系統的未來效能;通過模

擬成百上千個使用者,重複執行和執行測試,可以確認效能瓶頸並優化和調整應用,目的在於

尋找到瓶頸問題。 [!--empirenews.page--][1][2][3]下一頁

2.基於JAVA的WEB應用程式效能測試策略 軟體測試就是在受控制的條件下對系統或應

用程式進行操作並評價操作結果的過程,所謂控制條件應包括正常條件與非正常條件。對任

意一個程式進行的測試,無論使用自動化的測試工具或是手動測試,窮盡測試是不可能。任

何一個經過嚴格測試的程式,也不能保證其百分之百的正確。 因此,為了較少這種不必

要的錯誤。測試之前一定先要制定其測試策略,測試計劃,選用合適的測試工具,從而設計

出高效的測試用例。只有這樣,一個好的測試策略和好的測試計劃才能做到事倍功半的作用。

基於JAVA的web應用程式效能測試重點在於併發測試。併發測試一般使用虛載測試的方法,

即通過一個控制器傳送測試資訊給多個參與測試的主機,在每臺機器上模擬多個使用者的操作

(使用多個程序或執行緒)向伺服器傳送使用者請求,使系統執行起來。 基於以上的工作

原理,其效能測試採用的策略主要有: (1)指令碼的個數、負載生成器和每個組中包括

的VUSER數為固定數。 (2)指令碼的個數、負載生成器和每個組中包括的Vuser 數可以

以一定的百分比進行改變。 (3)可以固定虛擬使用者數、每秒事務數、每分鐘也面數及

事務的響應時間。 (4)可以設定指令碼的種類 (5)設定不同的作業系統,模擬真

實的使用者現象。 3.效能測試的實現 效能測試,大多數的測試只有藉助測試工

具才能完成。目前,廣泛使用的效能測試工具大多是商業軟體,如mercury interactive公

司的loadrunner、Astra LoadTest,Compuware公司的QA Load,IBM Rational公司的TeamTest。

本文選用的用Mercury公司的自動化效能測試工具loadrunner,在Windows XP, My Sql數

據庫的測試環境下進行效能測試。 (1)效能測試設計 Loadrunner是一個可以進

行自動化測試執行,並對測試的資料進行分析,從而得到系統瓶頸的行業標準的效能測試解

決方案。有以下三部分組成:VuGen用來錄製虛擬使用者的指令碼。Controller 用來執行指令碼並

且對整個測試過程進行監控。Analysis 提供圖和報表來顯示測試結果。 具體方法:首

先通過使用VuGen(虛擬使用者生成器)錄製使用者在客戶端應用程式中執行的典型業務流程來

開發Vuser指令碼。VuGen 還可以執行指令碼,為了成功的把指令碼整合到LoadRunner 方案中,

在錄製了基本的Vuser指令碼以後,還要對指令碼進行增強及編輯,設定好執行時環境後,以獨

立模式執行Vuser指令碼。其次通過Controller從一個單一的控制點簡單有效地控制所有的

Vuser。匯入測試指令碼,在方案(描述測試會話期間發生的事情)中配置好Vuser 的計算機

列表、執行Vuser指令碼的列表以及在方案執行期間執行的指定數量的Vuser或Vuser組。執

行方案時,Controller將該方案中的每個Vuser分散到負載生成器,負載生成器是執行Vuser

指令碼,從而使Vuser可以模擬實際使用者操作的計算機。在執行的同時,還可以用LoadRunner

的效能監視器來監視方案的執行。最後,Analysis 把在方案執行期間,LoadRunner紀錄下

來的不同負載下的應用程式效能,以圖和報表顯示出來。從而可以方便的分析出應用程式的

效能。[!--empirenews.page--]上一頁[1][2][3]下一頁

(2)效能測試資料的準備 通過使用最少的硬體資源,為所有VUSER提供一致的、可重複

並可度量的負載,像實際使用者一樣使用開發的應用程式,這是Loadrunner的一大特點及優勢。

在提供負載時,除了準備一些比較有代表性的資料,還要注意測試指令碼的重用問題。一個是

關聯,即通過引數化,來實現測試用例的充分利用。另一個是ip欺騙因為當執行場景時,虛

擬使用者使用它們所在的負載生成器的固定的IP 地址。每個Load Generator 上(同時)執行

大量的虛擬使用者,這樣就造成了大量的使用者使用同一IP 同時訪問一個網站的情況,這種情

況和實際執行的情況不符,並且有一些網站會限制同一個IP 的登陸。為了更加真實的模擬

實際情況,LoadRunner允許執行的虛擬使用者使用不同的IP 訪問同一網站,這種技術稱為“IP

欺騙”. (3)效能測試執行 在測試計劃、測試環境及測試資料準備好以後就可以

進行測試。Controller 通過遠端代理排程程式啟動負載生成器計算機上的應用程式。通過代

理Controller和負載生成器互相通訊。執行方案時,Controller指示遠端代理排程程式啟

動LoadRunner代理。該代理根據從Controller接受到的指令來初始化、執行、暫停和停止

各個Vuser。同時,該代理還將各個Vuaer的狀態資料傳回Controller。 (4)效能測

試評估 在應用程式的測試測試結束後,可以對應其各個效能指標來分析系統的可用性。

有許多因素能夠影響系統的效能指標,如,測試環境、網路、應用的資料庫和中介軟體的使用

及它們之間的關聯應用。其中任何一個環節都可能造成整個系統的可用性。Loadrunner

Controller通過隔離並標識潛在的客戶端、網路和伺服器瓶頸。監視負載下的網路和伺服器

資源,檢查出現效能延遲的地方:網路或客戶端延遲、CPU效能、I/O延遲、資料鎖定或服務

器上的其他問題。在進行web應用測試中,LOADRUNNER提供的效能指標有每秒點選次數吞吐

量每秒HTTP響應數、每秒下載頁面數每秒連線數。同時。使用者通過在LOARUNNER ANALYSIS

中看到這些效能指標的圖或報表,很方便的分析各部分的效能狀況。 4.總結

任何軟體的測試結果都不是隻與應用程式本身有關,特別是效能測試,還與其測試硬體環境、

軟體環境、測試方法及測試工具有關,因此在進行測試之前、一定要了解應用程式的使用及

執行的約束條件。Loadrunner Controller通過使用虛擬使用者技術來達到併發的目的,這個

測試屬於黑盒測試,測試人員不需要對程式程式碼有很深刻的瞭解。通過模擬真實使用者對系統

的訪問,可以幫助系統分析員提早發現系統的瓶頸,從而優化各部分的軟硬體配置。 參考文獻: ①張大陸,偉力《基於WEB應用系統的評測方法和技術》計算機工程第29卷第四期。 ②陳戰華楊斌《Client/Server結構軟體的效能測試測試技術》。 ③啄木鳥部落《如何選擇效能測試工具》。 [!--empirenews.page--] ④中國軟體評測中心測試中心《效能——軟體測試的重中之中》。 ⑤LOADRUNNER使用手冊。