張秋鳳
【摘要】 本文從業務應用系統的實踐中,簡要介紹了WEB應用系統性能測試的原理、指標及測試場景的選擇等,并利用Loadrunner性能測試工具測試企業外網應用系統,模擬和預測真實環境中系統的壓力,查找、定位和解決系統存在的問題,從實際運維角度分析了 WEB 應用系統的性能測試的必要性。
【關鍵詞】 性能測試 性能測試指標 性能測試工具 Loadrunner
一、引言
隨著互聯網上Web及其應用程序的普及,各類基于Web的應用系統以其方便、快速,易操作等特點已經成為軟件開發的重點。系統能否提供穩定快速的服務成為評價系統的重要指標。針對Web系統的測試可以從用戶界面、系統功能、客戶端兼容性、系統性能、應用安全、系統可用性、安裝等角度進行,本文主要討論性能測試的相關內容。
二、Web應用系統架構
B/S結構的Web應用系統包括客戶端(browser)/服務端(Server),該結構的Web客戶端不需要安裝任何的程序軟件,只需要通過瀏覽器,就可以實現軟件的功能。在這種結構下,用戶界面完全通過瀏覽器實現,簡單的事務邏輯在客戶端實現,但是主要事務邏輯則在服務器端實現。服務端的體系架構,一般包含表示層、業務邏輯層和數據庫層。
三、性能測試
3.1性能測試原理
性能測試是通過自動化的測試工具模擬正常、峰值以及異常等多種負載條件來對系統的各項性能指標進行測試。通過性能測試和調優,驗證軟件系統是否能夠達到用戶提出的性能指標,同時發現軟件系統中存在的性能瓶頸,優化軟件,最后起到優化系統的目的。
性能測試需要模擬多人同時訪問被測系統來達到驗證系統性能的目的。需要借助工具,或者自己搭建相應的性能測試框架來輔助完成。用于性能測試的工具有很多,商業工具如LoadRunner,Silkperformer, Rational Robot等,開源工具如 Apache自帶的Web性能測試工具ApacheBench等。
3.2性能測試指標
性能測試指標包括客戶端交易處理指標、服務器資源監控指標、數據庫資源監控指標、Web服務器監控指標、中間件監控指標等。客戶端交易處理指標由性能測試工具匯總處理并以報表形式給出,其它測試指標有的測試工具可以提供監控接口,有的則需要針對不同的監控對象采用各種方式采集監控數據,比如,Windows服務器可以通過操作系統自帶的性能監視器采集數據。一般情況下,執行性能測試時,至少應該獲得客戶端交易處理性能指標以及服務器端資源占用性能指標。
1) 交易處理性能指標
交易處理性能指標包括并發用戶數、響應時間、吞吐量、吞吐率、每秒點擊次數等。
(1)并發用戶數:指在同一時刻與服務器進行交互的在線用戶數量。這些用戶的最大特征是和服務器產生了單向或者雙向的數據傳輸。在線用戶不一定會對服務器產生影響,例如正在瀏覽已經打開的網頁的用戶,對服務器是沒有任何影響的。因為不同系統會有不同的并發特點,所以針對并發用戶數的統計沒有準確的公式。對于已經存在一定業務數據積累的系統,可根據一段時間內產生的業務量推測出并發用戶數量。
(2)響應時間:指從客戶端發起一個請求開始,到客戶端接收到服務器端返回的響應結束所用的時間。
對于一個三層應用架構,響應時間包括了網絡傳輸時間t1、Web服務器t2、數據庫服務器的處理時間t3,它的響應時間為t1+t2+t3的時間之和。
(3)吞吐量:指單位時間內處理的客戶請求數量。從業務角度看,吞吐量可以用:請求數/秒、頁面數/秒、人數/天或處理業務數/小時等單位來衡量;從網絡角度看,吞吐量可以用:字節/秒來衡量。對于交互式應用來說,吞吐量指標反映的是服務器承受的壓力,能夠說明系統的負載能力。
(4)請求間隔時間:指用戶在操作時,兩個操作之間的等待時間,在測試腳本中加入請求間隔時間(有時叫思考時間),用來真實地模擬用戶操作。
2) 服務器端資源占用性能指標
測試過程中對服務器資源的監控是非常必要的。測試過程中主要監控CPU、內存、網絡、磁盤等的使用情況。此外,對于數據庫服務器、中間件服務器以及Web服務器等,同時監控數據庫、中間件以及Web服務的性能指標。
3. 3 性能測試場景
性能測試中涉及的基本場景有兩種,即單一業務場景和混合業務場景,這兩種業務場景缺一不可,缺少任何一種都不能準確評估系統性能,定位系統瓶頸。
1) 單一性能點,多用戶測試:測試過程可以隔離測試場景,先單獨加壓測試每種性能需求點,比如,可以單獨模擬用戶登錄的需求,建立比如100人并發登錄的場景。由于沒有一個系統會設計成在同一個時間內,只能進行一種操作(實際上,在有其他的操作時,100人并發登錄的時間肯定會延長),所以此種場景并非是用戶實際使用的情況,僅僅是為了檢查這一個模塊的性能水平。
2) 混合業務的性能測試場景:按照業務及測試模型梯度加壓,以獲取系統的最大處理能力,及在各種壓力下每個交易的響應時間情況。比如登錄的同時有人在進行瀏覽、查詢、寫入、上傳或下載操作。這一步主要是一個集成測試,考慮各個功能模塊之間是否有影響,是否有對某些資源的搶奪等問題。按照混合測試模型,在一定的壓力下長時間持續執行測試,觀察系統的運行情況(主要關注系統是否穩定,系統是否存在內存泄漏問題等)。
3. 4 性能測試實踐
被測的應用系統采用B/S模式,服務端采用三層體系架構,是某機關單位外網面向互聯網進行采訪活動報名和管理的業務系統。測試采用商業測試工具Loadrunner,主要針對不同的并發用戶數執行測試,考察系統的響應情況。
1) 測試工具Loadrunner
LoadRunner是目前應用最多的測試工具之一,能夠在實驗室模擬成千上萬用戶訪問被測系統,檢驗被測系統響應能力。通過在測試過程中獲取的信息和數據來確認和查找軟件的性能問題,分析性能瓶頸。可適用于各類不同構架的應用。主要包括:腳本錄制開發工具(VuGen}、集中控制器(LR Control-ler)、結果分析器(LR Analysis)及壓力機(Load Generator等4個組件。
2)設計測試場景
測試應選擇具有代表性的和使用頻繁的業務功能或使用核心技術的功能作為性能采樣點,可以由用戶指定,也可根據重要功能或關注度作出選擇。根據案例系統業務特點,壓力主要集中在系統主頁訪問,采訪報名及查詢功能頁面,以及管理后臺的統計報表導出頁面。因此測試選取三個功能點:系統主頁訪問、報名提交與查詢、統計報表管理。
測試場景設計為單點操作性能測試和混合業務性能測試。單點操作性能測試分別針對被測三個功能點執行,根據以往系統最大數據量(系統主頁訪問量千人級、采訪報名數千人級、統計報表管理百人級),再除以10為其最大并發量,設定訪問系統主頁、報名提交與查詢、統計報表管理分別測試200, 100,20個用戶并發,測試時腳本請求時間間隔設置為5秒。混合業務性能測試則對三個功能點進行混合壓力測試,并發用戶數分別設為50、100,訪問三個功能點的用戶比例為10: 5: 1,測試時腳本請求時間間隔設置為5秒。
3)分析測試結果
系統主頁訪問在200個用戶并發時平均響應時間均小于1秒,服務器CPU利用率低于50%、可用內存未見異常波動,該功能點的響應情況滿足測試目標的要求。
統計報表管理在20個用戶并發時平均響應時間均小于5秒,服務器CPU利用率低于70%、可用內存未見異常波動,該功能點的響應情況滿足測試目標的要求。
報名提交與查詢在100個用戶并發時,數據庫服務器CPU利用率平均值超過90%,事務平均響應時間達到0.5秒;通過調整數據庫參數配置,建立數據庫索引,對數據庫進行性能優化后,再次對調優后的系統執行回歸測試,數據庫服務器CPU利用率平均值降低到50%,事務平均響應時間降低到0.25秒。
四、結束語
為了保證Web應用的可用性和高效性,必須對Web應用進行嚴格的測試。通過使用性能測試工具進行大批量并發用戶測試,可以模擬和預測真實環境中的系統壓力,發現系統存在的問題。
通過分析測試數據,優化系統的性能。在目前國產化的政策和趨勢下,政府機關等單位的等保改造和外網改造項目增多,為了保證業務系統在升級改造后的正常運行,需要結合性能測試的原理和實際情況,不僅要進行功能測試、安全測試,同時,完成充分的性能測試是相當重要的。
參 考 文 獻
[1]柳純錄,黃子河,陳尿萍,等.軟件評測師教程[M].北京:清華大學出版社,2005.
[2]段念.軟件性能測試過程祥解與案例剖析[M].北京:清華大學出版社,2006.
[3]蔡立志,楊根興.軟件系統性能測試方法初探[J].信息技術與標準化,2005 (7) :44 50.
[4 ]浦云明,王寶玉.基于負載性能指標的Web測試[J].計算機系統應用,2010 , 19 (5) :220-223.
[5]姚昕.基于Loadrunner技術的Web性能測試的研究與實現[D].哈爾濱:哈爾濱商業大學,2013.
[6]芮素娟,丁曉明.Web應用性能測試進展[J].計算機科學,2006,33 (8) :278-280.
[7]宋巍,張春柳,鄒斌亮. WEB應用系統性能測試研究與實踐[J].計算機應用與軟件,2015,32 (3) :4-6.