吳 蕓 林志偉



[摘 要]隨著計算機網絡技術的迅速發展,Web應用系統的使用范圍、軟件規模和軟件復雜性在不斷增加,保證Web應用的正確性和可靠性越來越成為人們關注的問題。作為保證軟件質量和可靠性的重要手段,Web測試已成為Web軟件開發過程中的一個重要環節。本文將結合一個實際的Web應用系統“畢業設計協同管理系統”,通過對該系統的分析,結合web性能測試理論,采用LoadRunner測試工具設計測試用例,分析測試結果,提出該系統的性能優化策略。
[關鍵詞]WEB系統 性能測試
[中圖分類號]TP18[文獻標識碼]A[文章編號]1007-9416(2009)11-0077-06
1 前言
性能測試是一種信息的收集和分析過程,過程中收集的數據用來預測負載水平與系統資源消耗的關系。性能測試能保證程序具有良好的性能,在不同的用戶負載下,考察Web系統對用戶請求做出的響應情況,以維護系統的性能和尋找有效的改善策略,以確保系統運行的安全性、可靠性和執行效率。
2 《畢業設計協同管理系統》WEB應用系統介紹
《畢業設計協同管理系統》是廈門理工學院計算機系為畢業設計的系列工作的實施和學生畢業設計論文成績的查詢所建立的WEB應用系統。
2.1 《畢業設計協同管理系統》系統組件與配置
(1)硬件邏輯結構與軟件體系結構
《畢業設計協同管理系統》是一個典型的三層Browser/Server(瀏覽器/服務器)架構的MIS系統,但應實際情況,目前該系統硬件采用兩層模式即單機服務器模式,Web服務器,數據庫系統和應用程序均駐留在一臺主機中。如圖1。
(2)系統主要開發技術
*系統開發語言采用網站設計語言VB
*數據庫訪問技術采用WebService
*頁面設計技術使用XHTML技術
(3)運行環境
服務器軟件環境
*操作系統:Windows vista 旗艦版
*Web服務器:IIS 7.0
*數據庫管理系統:SQL(Structured Query Language) Server2008
* 處理器型號:(INTEL1.86HZ)處理器×2及內存容量2G
* 瀏覽器:IE 7
2.3 《畢業設計協同管理系統》基本功能
學生用戶功能:登錄系統;畢業設計選題;指導老師的選擇;提交任務安排表;填寫指導記錄;查看論文成績;修改密碼;郵箱收發。
教師用戶功能:學生選題審核;任務書的布置;評定答辯成績;評定論文成績;優秀畢業設計論文推薦。
系統管理后臺:管理員登錄系統;學生管理系統;教師管理系統;審核管理系統;公告管理系統。
3 《畢業設計協同管理系統》性能測試實例的設計與實現
分析畢業設計協同管理系統的實際運用,可得出該項目具有以下特點:
(1)管理員用戶模塊使用率偏低,常用模塊為學生用戶模塊。(2)主任務為登陸,成績查詢與頁面切換。(3)使用高峰期為學生論文答辯后,學生登錄系統對成績進行查詢。(4)負載期內,將有大量用戶同時登陸,相應模塊的工作強度也將增加。
結合本系人員數量,特定時段登陸/活動人數預計為50-100人。
畢業設計協同管理系統的測試方案將在其實際運行特點的基礎上生成。根據目標測試項目的性能需求,需要設計多個測試用例,本文將列舉其中兩個測試用例進行說明:
測試用例1測試場景描述:
(1)學生用戶登陸進入學生用戶主頁,總共登陸50個用戶(具有不同IP地址),登陸模式為每5秒15個用戶并發操作。(2)用戶點擊畢業設計成績查詢連接。(3)用戶在畢業設計成績模塊中活動時間設為五分鐘。(4)用戶點擊郵箱界面連接,填寫信息并提交。(5)學生用戶登陸修改密碼連接,填寫信息并提交。(6)返回用戶主頁并退出。
測試用例2測試場景描述:
(1)學生用戶登陸進入用戶主頁,總共登陸100個學生,登陸模式為每5秒15個用戶并發操作。(2)用戶點擊畢業設計成績查詢連接。(3)用戶在畢業設計成績模塊中活動時間設為五分鐘。(4)用戶點擊郵箱界面連接,填寫信息并提交。 (5)學生用戶登陸修改密碼連接,填寫信息并提交。(6)返回用戶主頁并退出。
3.1 LoadRunner測試工具
HP公司的LoadRunner是一種能夠預測系統行為和性能的工業標準負載測試工具,它通過模擬上萬用戶實施并發負載及實時性能監測的方式來確認和查找系統問題,達到對整個企業架構進行測試的目的。
3.2 創建用戶腳本
畢業設計協同管理系統采用Browser/Server(瀏覽器/服務器)軟件體系結構,主要測試目標為Web應用,因此在測試中腳本錄制選擇Web(HTTP/HTML)協議,如圖2所示。
3.3 完善測試腳本
在正式使用前還必須完善測試腳本,增強腳本的靈活性,完善腳本過程包括:
(1)事務設置
腳本中事物代碼為:
lr_start_transaction("SubmitBookData");
lr_end_transaction("SubmitBookData ",LR_AUTO);
(2)函數參數化,如圖3所示。
(3)集合點的設置
插入集合點是為了測量加重負載的情況下服務器的性能情況。在測試計劃中,可能會有要求系統能承受大量的用戶同時提交數據或進行操作。
腳本中集合點的代碼為:lr_rendezvous("SubmitQueryData");
(4)檢查點的設置
web_find()函數// 該函數的作用是“在頁面中查找相應的內容”,常用參數及含義如下:
web_find("web_find",//定義該查找函數的名稱
"RightOf=a",//定義查找字符的右邊界
"LeftOf=b",//定義查找字符的左邊界
"What=name",//定義查找內容
LAST);
(5)腳本檢驗
經過以上各個步驟,運行腳本。執行“運行”命令后,VuGen將先編譯腳本,檢查是否有語法等錯誤,如圖4所示。
運行設置完成后,就可以開始從Generator中調試腳本了,腳本將按照Runtime Setting的設置開始運行,并在輸出窗口打印關鍵日志。當腳本運行完成,沒有錯誤,從關鍵日志來看所有參數替換和動態關聯都成功,證明腳本已經完全通過可以使用。
3.4 方案執行
(1)場景創建
創建方案的類型分為兩種。一種是面向目標的方案,一種是手動方案。手動方案又分為按數量分配負載和按比例分配負載兩種,各種模式的選擇取決于測試的目的。
手動方案:讓測試人員決定需要加載的負載量,用于在標準負載下測試系統的性能。
目標方案,讓測試人員定義一個目標和添加負載的最小值與最大值。運行時LoadRunner會按照用戶給定的負載最小值開始添加,試探系統性能能否達到定義的目標。如果不能則繼續添加,此種方案對于定位當前系統能承受的最大負載量非常有用。如圖5所示。
(2)加壓計劃,如圖6所示:
3.4 實驗結果分析
(1)實驗結果(如圖7所示)
(2)Transaction Response Time (如圖8所示)
通過Transaction Response Time圖,可以判斷各個事務完成所用的時間,從而推斷出哪個事務所用時間最長,那些事務超出預定的可接受時間(見圖8)。
由圖8可見,隨著學生數的不斷增加,登陸這個事務的響應時間增長的最快。為了確定造成登陸界面的響應時間最長的原因,分解登陸事務,分析頁面上每個元素的性能(見圖9)。
圖9為該事務中各個組件的所占空間的大小和下載時間的比例。
通過比較發現,其中Undenmain.aspx和LoginForm.aspx組件的所需空間僅為0.44K和1.66K,相比另外兩個顯得非常小,但下載時間卻幾乎相同甚至超過,而且幾乎所有的時間都用在了First Buffer上。
查看Time to First Buffer Breakdown相關圖表,如圖10所示,可以確認問題產生于服務器還是網絡。
首先,由Time to Frist Buuffer Breakdown圖表中可以看出,有關Undenmain.aspx和 LoginForm.aspx組件,Server時間比Network時間高,從而可以確定問題是由服務器引起的。在此基礎上,再參考Web Server圖表,就可以再進一步接近問題源。其次,在20%的壓力測試中WebServer和Web應用程序是性能的瓶頸,這些瓶頸主要是由于服務器配置不當和資源不足,比如質量不完善的代碼以及形成的DLL占用過多處理器資源造成CPU瓶頸,或是對內存的操作不當和管理不善造成的內存瓶頸。
4 結語
通過對《畢業設計協同管理系統》的性能測試的研究,從實驗結果中我們了解到:當WEB系統用戶負載繼續加速增加時,管理者可以升級當前服務器的軟硬件環境來加快處理速度,或是通過添加更多的服務器來擴大服務器現有服務器端的平臺規模,已達到提升服務器的響應能力?;蛘咄ㄟ^調整調整系統參數或應用邏輯,在現有的硬件基礎上使得應用系統性能得到改善,從而改進系統吞吐量,等待時間和資源利用率等。在多次重復上述過程后,WEB應用系統的性能將逐步達到我們所期望的水平。
[參考文獻]
[1] 繆靜.基于Web應用的測試研究與應用[D].成都:電子科技大學.2005.
[2] 路曉麗.Web應用軟件的測試技術研究[D].西安:西北大學.2006.
[3] Paul C.Jorgensen.軟件測試[M].1版.韓柯,譯.北京:機械工業出版社,2003.
[4] 于勇.《軟件性能測試于LoadRunner實戰》[M].北京:人民郵電出版社,2008.
[作者簡介]
吳蕓(1979-),女,博士(已獲得),講師,廈門理工學院計算機科學與技術系,從事人工智能、軟件測試方向研究。林志偉(1986-),男,廈門理工學院學士(已獲得)。
①基金項目:廈門理工學院科研啟動基金資助項目(YKJ07012R),福建省教育廳A類項目支持(JA08221)。
英文題目:The Research of Performance Testing on a Web System