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