亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        軟件測(cè)試在B/S架構(gòu)系統(tǒng)中進(jìn)行性能優(yōu)化的應(yīng)用研究

        2012-11-21 10:47:12彭振龍
        關(guān)鍵詞:腳本事務(wù)服務(wù)器

        彭振龍

        (泉州師范學(xué)院陳守仁工商信息學(xué)院,福建泉州 362000)

        1 性能測(cè)試概念及其必要性

        隨著互聯(lián)網(wǎng)技術(shù)及應(yīng)用的飛速發(fā)展,軟件系統(tǒng)的性能已是衡量軟件質(zhì)量的一個(gè)重要指標(biāo).根據(jù)CNNIC發(fā)布的第29次報(bào)告,截止2011年底,中國(guó)的網(wǎng)民數(shù)量已達(dá)到5.13億,網(wǎng)站數(shù)量達(dá)到229.6萬(wàn),CN的域名注冊(cè)數(shù)量達(dá)353萬(wàn)[1].所有這些基于B/S架構(gòu)的網(wǎng)絡(luò)服務(wù)都面臨性能問(wèn)題,如大型電子商務(wù)網(wǎng)站促銷或高考分?jǐn)?shù)公布,人們會(huì)在同一時(shí)間要求服務(wù)器響應(yīng)服務(wù),瞬時(shí)負(fù)載有可能達(dá)到或超過(guò)系統(tǒng)所能承受的極限,導(dǎo)致系統(tǒng)響應(yīng)緩慢甚至癱瘓,因此對(duì)網(wǎng)絡(luò)系統(tǒng)進(jìn)行測(cè)試和優(yōu)化顯得尤為重要.而性能測(cè)試是和功能測(cè)試相對(duì)應(yīng)的概念,功能測(cè)試是指為確認(rèn)軟件是否能完成某項(xiàng)功能而進(jìn)行的一系列測(cè)試,而性能測(cè)試則是指為確認(rèn)軟件執(zhí)行效率而實(shí)施的一系列測(cè)試行為,這包括在一定負(fù)載和壓力下軟件系統(tǒng)的執(zhí)行效率,包括服務(wù)響應(yīng)時(shí)間、連接數(shù)、穩(wěn)定性、安全性、可擴(kuò)展性、資源占用率等項(xiàng)目和指標(biāo)[2-3].

        利用負(fù)載測(cè)試(load testing)和壓力測(cè)試(stress testing)等性能測(cè)試方法[2-5],能有效地模擬出軟件系統(tǒng)在現(xiàn)實(shí)環(huán)境中的應(yīng)用情況,通過(guò)分析軟件在不同壓力和負(fù)載下的表現(xiàn),如CPU占用率、內(nèi)存使用率、客戶端響應(yīng)時(shí)間、網(wǎng)絡(luò)通信數(shù)據(jù)率等,根據(jù)工程的分析方法,找到軟件系統(tǒng)架構(gòu)、功能模塊等方面的瓶頸,并找出軟件系統(tǒng)能提供的最大服務(wù)級(jí)別,從而為軟件系統(tǒng)的全面優(yōu)化提供基本參考.

        2 性能測(cè)試工具及重要概念

        在自動(dòng)化測(cè)試出現(xiàn)以前,性能測(cè)試工作主要依靠多臺(tái)單機(jī),在統(tǒng)一指揮下,同一時(shí)刻點(diǎn)擊某個(gè)操作,以達(dá)到模擬并發(fā)的目的.自從性能測(cè)試的自動(dòng)化工具出現(xiàn)后,這一工作變得簡(jiǎn)單了許多.目前,商業(yè)性的工具主要有Loadrunner、QAload、SilkPerformance、Webload,Rational Performance Tester(RPT),而免費(fèi)的測(cè)試工具主要有OpenSTA、微軟的WAST(Web Application Stress Tool).其中l(wèi)oadrunner以其圖形化界面直觀友好,支持協(xié)議眾多,可預(yù)測(cè)并調(diào)優(yōu)系統(tǒng),功能強(qiáng)大而深受好評(píng)[6].下面以loadrunner為例進(jìn)行討論,為了后面論述的方便先介紹一下loadrunner在性能測(cè)試中所涉及的重要概念.

        并發(fā):指有多個(gè)業(yè)務(wù)操作在同一時(shí)間發(fā)生.

        事務(wù):用于度量服務(wù)器響應(yīng)時(shí)間的任務(wù)或操作集.

        虛擬用戶(Vuser):是指通過(guò)loadrunner軟件模擬出真實(shí)用戶,通常在同一臺(tái)機(jī)器中可以模擬出很多虛擬用戶.

        吞吐量:一定時(shí)間內(nèi),處理客戶端請(qǐng)求的數(shù)量,直接反映了軟件的性能承載能力.

        思考時(shí)間:用戶在執(zhí)行兩個(gè)連續(xù)操作期間等待的時(shí)間.

        集合點(diǎn):用于同步虛擬用戶以便恰好在同一時(shí)刻執(zhí)行任務(wù).

        3 性能測(cè)試步驟

        3.1 測(cè)試環(huán)境的配置

        測(cè)試環(huán)境主要包括服務(wù)器的硬件環(huán)境如CPU、硬盤、內(nèi)存、網(wǎng)卡、網(wǎng)絡(luò)帶寬等,軟件環(huán)境主要包括操作系統(tǒng)、數(shù)據(jù)庫(kù)、web服務(wù)器軟件等.同時(shí)還需要根據(jù)用戶使用手冊(cè)列出的在某個(gè)并發(fā)數(shù)下的服務(wù)響應(yīng)時(shí)間,內(nèi)存及CPU的占用率等要求達(dá)到的性能指標(biāo),以便在進(jìn)行測(cè)試結(jié)果分析時(shí)參考.

        3.2 創(chuàng)建與編輯腳本

        Loadrunner允許用戶通過(guò)實(shí)際的操作來(lái)錄制腳本,當(dāng)然對(duì)于非常熟悉loadrunner腳本編寫的用戶,也可以手動(dòng)編輯腳本.對(duì)于B/S系統(tǒng),在錄制腳本前,需選擇“web(http/html)”協(xié)議,如圖1所示.之后設(shè)置錄制參數(shù),如圖2所示.完成后,點(diǎn)擊OK,則啟動(dòng)web服務(wù),開始錄制腳本.錄制期間,用戶通過(guò)瀏覽器與服務(wù)正常會(huì)話,loadrunner會(huì)記錄下用戶的所有動(dòng)作.用戶可以點(diǎn)擊錄制工具條上的“”,以停止錄制,如圖3所示,此時(shí)loadrunner自動(dòng)生成測(cè)試腳本.

        3.3 腳本修改

        腳本錄制完成后,需要對(duì)其進(jìn)行完善,比如加入集合點(diǎn)、加入思考時(shí)間、加入其他事務(wù)等.腳本修改的另一個(gè)重要內(nèi)容就是“參數(shù)化”.所謂的參數(shù)化是指對(duì)不允許重復(fù)輸入的數(shù)據(jù),需要用變量(參數(shù))代替固定文本.例如在測(cè)試注冊(cè)事務(wù)過(guò)程中,錄制的腳本如下:

        Web_submit_form(“register.jsp”,

        圖1 loadrunner腳本錄制協(xié)議選擇框

        “Snapshot=t2.inf”,

        ITEMDATA,

        “Name=unitname”,“value=jxndpzl”,ENDITEM,

        LAST);

        其中的“value=jxndpzl”是錄制腳本時(shí)注冊(cè)用戶名.顯然,在實(shí)際業(yè)務(wù)中不允許再次注冊(cè)一個(gè)jxndpzl的用戶名.這就導(dǎo)致在腳本回放或者要模擬多個(gè)用戶同時(shí)注冊(cè)時(shí),腳本無(wú)法成功提交.因此需要對(duì)腳本進(jìn)行參數(shù)化,即將

        “Name=unitname”,“value=jxndpzl”,ENDITEM.改為

        “Name=unitname”,“value={punitname} ”,ENDITEM.

        其中的punitname即是代表注冊(cè)用戶名的參數(shù),它可以是一個(gè)文本文件或數(shù)據(jù)庫(kù),具體的設(shè)置可參見文獻(xiàn)[2].

        3.4 場(chǎng)景設(shè)置

        腳本錄制完成后,由loadrunner的controller負(fù)責(zé)測(cè)試場(chǎng)景的設(shè)置.如Vuser的生成數(shù)量,持續(xù)運(yùn)行時(shí)間、加壓及減壓規(guī)則等.還有其他用于腳本調(diào)試和運(yùn)行控制的設(shè)置,如連接超時(shí)、運(yùn)行、中斷、停止、中間檢查點(diǎn)、路徑轉(zhuǎn)換、監(jiān)視器設(shè)置等.這些設(shè)置都將更好地幫助模擬真實(shí)的使用環(huán)境,并且更好地理解性能測(cè)試的過(guò)程,從而找出性能瓶頸.以下為場(chǎng)景設(shè)置的一個(gè)例子:

        (1)Vuser的數(shù)量為200

        (2)每5 s增加10個(gè)Vuser

        (3)Vuser登錄后,持續(xù)運(yùn)行時(shí)間為5 min

        (4)思考時(shí)間為15 s,并在30%~100%之間隨機(jī)

        (5)每2 s退出12個(gè)Vuser

        很顯然,可以設(shè)置不同策略,設(shè)置不同的場(chǎng)景,同一場(chǎng)景中也可以加載不同的事務(wù).

        3.5 腳本運(yùn)行及回放

        根據(jù)前面設(shè)置的場(chǎng)景,執(zhí)行已經(jīng)錄制好的腳本.實(shí)際上為了得到更為真實(shí)的測(cè)試結(jié)果,需要設(shè)置許多不同的場(chǎng)景進(jìn)行測(cè)試,而錄制好的腳本不用修改或只需要簡(jiǎn)單的微調(diào)就可以,這樣就為后續(xù)的結(jié)果分析準(zhǔn)備了更多的數(shù)據(jù).

        3.6 結(jié)果分析

        Loadrunner擁有專門的分析工具Analysis,它利用數(shù)學(xué)及統(tǒng)計(jì)學(xué)原理,具有強(qiáng)大的數(shù)據(jù)分析能力,而且還能將數(shù)據(jù)分析的結(jié)果通過(guò)可視化的方式展示出來(lái).圖4為Analysis界面.

        圖2 錄制參數(shù)設(shè)置框

        圖3 腳本錄制工具條

        4 應(yīng)用實(shí)例分析

        下面,通過(guò)一個(gè)實(shí)際例子說(shuō)明loadrunner進(jìn)行性能測(cè)試并調(diào)優(yōu)的過(guò)程.筆者測(cè)試的是一個(gè)電子政務(wù)系統(tǒng).限于文章篇幅,略去了腳本錄制及修改過(guò)程.測(cè)試場(chǎng)景設(shè)置如下.

        圖4 loadrunner Analysis主界面

        4.1 事務(wù)說(shuō)明

        只測(cè)試了三個(gè)事務(wù).(1)登錄事務(wù),即后文的vuser_init_Transaction;(2)點(diǎn)擊一般案件登記,即后文的“點(diǎn)擊一般案件登記”事務(wù);(3)一般案件的保存事務(wù),即后文的“點(diǎn)擊保存”事務(wù).同時(shí),設(shè)計(jì)了五個(gè)場(chǎng)景.(1)50個(gè)用戶并發(fā);(2)100個(gè)用戶并發(fā);(3)200個(gè)用戶并發(fā)(主測(cè)試機(jī)和負(fù)載生成器各100個(gè));(4)300個(gè)用戶并發(fā)(主測(cè)試機(jī)100個(gè),負(fù)載生成器200個(gè));(5)500個(gè)用戶并發(fā)(主測(cè)試機(jī)200個(gè),負(fù)載生成器300個(gè)),共有15個(gè)事務(wù)(見表1)限于篇幅,點(diǎn)擊一般案件登記事務(wù)只列出了res100.lrr,而res100and100.lrr即表示主附測(cè)試機(jī)各100個(gè)Vuser,共200個(gè)用戶同時(shí)登錄,在表中省略,以此類推,點(diǎn)擊保存事務(wù)與此一樣.

        表1 事務(wù)名稱及說(shuō)明

        4.2 負(fù)載方案

        負(fù)載方案為同時(shí)加載所有Vuser,減壓方式為5 min內(nèi)依次減為0,實(shí)際測(cè)試過(guò)程中,得到的實(shí)際Vuser情況如表2所示.

        表2 Vuser用戶數(shù)量表

        從表2中可以看出,當(dāng)總Vuser數(shù)量在200、300、500時(shí),最大值并不能達(dá)到相應(yīng)的數(shù)量,說(shuō)明負(fù)載生成器本身無(wú)法達(dá)到在某個(gè)時(shí)間內(nèi)生成相應(yīng)數(shù)量Vuser的要求.

        4.3 測(cè)試結(jié)果數(shù)據(jù)及分析

        測(cè)試過(guò)程中,選擇重點(diǎn)需要關(guān)注的平均事務(wù)響應(yīng)時(shí)間、吞吐量、Vuser連接數(shù)等數(shù)據(jù)進(jìn)行分析.限于篇幅,只選擇了點(diǎn)擊“保存”事務(wù)在不同場(chǎng)景下的數(shù)據(jù)進(jìn)行分析.平均事務(wù)響應(yīng)時(shí)間見表3.

        表3 平均事務(wù)響應(yīng)時(shí)間表

        從表3中可以看出,平均響應(yīng)時(shí)間隨著用戶數(shù)量的增加而增加,但根據(jù)最大值顯示,當(dāng)用戶數(shù)達(dá)到300、500時(shí),分別為19.778 s及21.086 s,這個(gè)值是比較大的,說(shuō)明系統(tǒng)在這一壓力下已經(jīng)出現(xiàn)了一定的瓶頸.

        表4 不同負(fù)載壓力下的每秒點(diǎn)擊數(shù)統(tǒng)計(jì)

        根據(jù)表4的統(tǒng)計(jì)數(shù)據(jù),當(dāng)Vuser數(shù)為300、500時(shí),平均點(diǎn)擊數(shù)分別為561.984,560.913,這顯然于實(shí)際的應(yīng)用不相符,說(shuō)明當(dāng)Vuser為500時(shí),系統(tǒng)出現(xiàn)了明顯的瓶頸,導(dǎo)致服務(wù)器無(wú)法接受點(diǎn)擊.

        由表5可知當(dāng)Vuser為500時(shí),服務(wù)器的平均吞吐量反而比Vuser為300時(shí)的平均吞吐量更少,說(shuō)明系統(tǒng)出現(xiàn)了嚴(yán)重的瓶頸,已經(jīng)無(wú)法正常處理用戶請(qǐng)求了.

        同樣的當(dāng)Vuser為500時(shí),平均連接數(shù)反而比Vuser為300時(shí)小,其最大值也只多3(見表6).其他如Vuser數(shù)為50,100,200時(shí),系統(tǒng)的最大連接數(shù)也沒(méi)能達(dá)到,這有可能是負(fù)載生成有服務(wù)器有瓶頸,導(dǎo)致用戶丟失,也有可能是服務(wù)器系統(tǒng)已經(jīng)無(wú)法正常接受用戶的連接,則需要加大用戶連接數(shù).

        表5 不同負(fù)載下的服務(wù)器吞吐量數(shù)據(jù)

        表6 服務(wù)器連接數(shù)

        4.4 結(jié)果分析

        通過(guò)對(duì)平均事務(wù)響應(yīng)時(shí)間、吞吐量、點(diǎn)擊數(shù)、服務(wù)器連接數(shù)等幾個(gè)數(shù)據(jù)的分析,基本可以判斷,在排除其他問(wèn)題的前提下,該系統(tǒng)能接受的用戶并發(fā)數(shù)為300以下.從表2~6的數(shù)據(jù)可以看出,平均值、最大值都存在瓶頸,而該系統(tǒng)的最優(yōu)性能(最大能承受的并發(fā)用戶數(shù),在此條件下其他事務(wù)的執(zhí)行表現(xiàn)),則需要反復(fù)地改變測(cè)試參數(shù)進(jìn)行嘗試.

        就用戶登錄、案件登記、保存三個(gè)事務(wù)而言,耗時(shí)最長(zhǎng)的是用戶登錄,這主要是因?yàn)橛脩舻卿浶枰诤笈_(tái)數(shù)據(jù)庫(kù)進(jìn)行查重,這不但需要進(jìn)行一定的IO操作,而且不同的查重算法也會(huì)有不同的性能表現(xiàn).后來(lái)與軟件開發(fā)人員進(jìn)行了研究,優(yōu)化了文件的IO操作及用戶名登錄的查重算法,使得服務(wù)器響應(yīng)時(shí)間進(jìn)一步減少.

        在實(shí)際測(cè)試過(guò)程中,當(dāng)負(fù)載運(yùn)行時(shí),監(jiān)控測(cè)試機(jī)的CPU使用率幾乎都是100%,這可能導(dǎo)致很多虛擬用戶無(wú)法發(fā)送出去,這一點(diǎn)在表2中也得到了印證.這必然會(huì)影響測(cè)試結(jié)果的準(zhǔn)確性.同時(shí),通過(guò)監(jiān)視網(wǎng)絡(luò)、網(wǎng)卡在測(cè)試期間的性能,但并沒(méi)有發(fā)現(xiàn)瓶頸問(wèn)題.這可能是因?yàn)榇舜螠y(cè)試是在局域網(wǎng)內(nèi)測(cè)試,網(wǎng)絡(luò)速度較快.

        5 小結(jié)

        軟件測(cè)試對(duì)B/S結(jié)構(gòu)的系統(tǒng)具有非常重要的意義.通過(guò)將負(fù)載及壓力測(cè)試的結(jié)果與系統(tǒng)設(shè)計(jì)的性能要求進(jìn)行比較,開發(fā)人員能有效地了解系統(tǒng)各模塊及整體的性能,從而為滿足預(yù)設(shè)的性能要求提供優(yōu)化參考方案.自動(dòng)化性能測(cè)試工具loadrunner具有支持協(xié)議多、界面友好、圖表豐富、功能強(qiáng)大的特點(diǎn),成為我們?cè)谶M(jìn)行性能測(cè)試時(shí)的有力助手.

        常用的軟件性能測(cè)試方式是基于既定的軟硬件資源,設(shè)置用戶數(shù)、并發(fā)數(shù)、任務(wù)數(shù)等進(jìn)行測(cè)試分析和評(píng)估的.這對(duì)于用戶數(shù)、并發(fā)數(shù)、任務(wù)數(shù)有既定目標(biāo)的系統(tǒng)是適用的,即為了達(dá)到這一目標(biāo),不斷提升硬件配置,不斷進(jìn)行軟件調(diào)優(yōu).但如果想得到某個(gè)現(xiàn)有系統(tǒng)(既定的硬軟件系統(tǒng))的最優(yōu)性能,則需要不斷調(diào)整參數(shù),重復(fù)嘗試,這導(dǎo)致工作量成倍增長(zhǎng).后續(xù)的研究將致力于基于既定目標(biāo)的“逆向測(cè)試”,即用比較簡(jiǎn)單的方式找到使系統(tǒng)性能表現(xiàn)最佳的用戶數(shù)、并發(fā)數(shù)、任務(wù)數(shù)等指標(biāo).

        [1]中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心.中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r調(diào)查統(tǒng)計(jì)報(bào)告[R].中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心,2012.

        [2]于涌.軟件性能測(cè)試與loadrunner實(shí)戰(zhàn)[M].北京:人民郵電出版社,2008:27-36.

        [3]段念.軟件性能測(cè)試過(guò)程詳解與案例剖析[M].北京:清華大學(xué)出版社,2006:42-48.

        [4]熊忠陽(yáng),李光勇,張玉芳,等.Web集群系統(tǒng)性能測(cè)試與優(yōu)化[J].計(jì)算機(jī)應(yīng)用研究,2008,25(3):826-832.

        [5]文俊浩,桑春艷,何盼.電子政務(wù)系統(tǒng)性能測(cè)試應(yīng)用研究[J].計(jì)算機(jī)科學(xué),2009,36(4):179-180.

        [6]MENASCE D A.Load testing ofweb wite[J].IEEE InternetComputing,2002,6(4):66-75.

        猜你喜歡
        腳本事務(wù)服務(wù)器
        “事物”與“事務(wù)”
        酒駕
        基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        安奇奇與小cool 龍(第二回)
        河湖事務(wù)
        通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
        數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
        快樂(lè)假期
        得形忘意的服務(wù)器標(biāo)準(zhǔn)
        計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
        亚洲综合av大全色婷婷| 甲状腺囊实性结节三级| 久久人妻少妇中文字幕| 四季极品偷拍一区二区三区视频| 夜夜春亚洲嫩草影院| 高清中文字幕一区二区| 永久黄网站色视频免费看| 熟妇人妻中文字幕无码老熟妇| 精品久久久久久99人妻| 狼狼色丁香久久女婷婷综合| 日韩人妻精品中文字幕专区| 国产无遮挡又爽又刺激的视频老师| 欧洲熟妇乱xxxxx大屁股7 | 伊人不卡中文字幕在线一区二区| 日本午夜剧场日本东京热| 热久久美女精品天天吊色| 日韩欧美亚洲综合久久影院d3| 黑丝美女被内射在线观看| 丰满人妻中文字幕一区三区| 人人色在线视频播放| 99视频全部免费精品全部四虎| 一区二区三区视频偷拍| www夜片内射视频在观看视频| 久久精品国产亚洲av大全| 久热re在线视频精品免费| 狼人精品剧情av在线观看| 国产在线精品一区二区三区直播| 中文在线а√天堂官网| 中文字幕日本一区二区在线观看| 久久九九精品国产av| 欧洲精品免费一区二区三区| 波多野结衣一区二区三区视频| 国产精品亚洲婷婷99久久精品 | 一区二区无码精油按摩| 国产亚洲91精品色在线| 人人妻人人澡人人爽欧美一区九九| 国产美女在线一区二区三区| 精品蜜臀国产av一区二区| 在线观看av片永久免费| 粗了大了 整进去好爽视频| 国产激情视频免费观看|