專利名稱:一種云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于機(jī)器學(xué)習(xí)和計(jì)算機(jī)虛擬化技術(shù),更具體地,涉及一種云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試系統(tǒng)。
背景技術(shù):
隨著云計(jì)算技術(shù)的發(fā)展,選擇在云環(huán)境中托管web應(yīng)用的開發(fā)者越來越多,各大云計(jì)算廠商都推出了用來托管web應(yīng)用的云平臺(tái)。云平臺(tái)自身低成本,高效率,簡單部署,甚至不需要用戶管理維護(hù)的特點(diǎn)也大大降低了 web應(yīng)用開發(fā)的門檻,使得更多開發(fā)者加入到web應(yīng)用開發(fā)中來。近幾年來,web應(yīng)用無論是在數(shù)量還是質(zhì)量上都取得了顯著的發(fā)展,而隨著web應(yīng)用種類變得越來越繁多,功能越來越復(fù)雜,web應(yīng)用的性能問題越愈發(fā)凸顯。如何開發(fā)出性能卓越的web應(yīng)用成了 web應(yīng)用平臺(tái)和開發(fā)者共同關(guān)注的問題。而要提高web應(yīng)用的性能,首先需要對(duì)應(yīng)用進(jìn)行性能測(cè)試,現(xiàn)有的web應(yīng)用性能測(cè)試工具種類繁多,測(cè)試方案各不相同,其中主要可以分為兩大類:(I)自動(dòng)抓取型測(cè)試:由測(cè)試工具根據(jù)應(yīng)用的主地址依照某些預(yù)先定義的策略生成一系列不同的應(yīng)用子地址(即應(yīng)用的各個(gè)功能模塊對(duì)應(yīng)的地址),然后分別對(duì)這些子地址進(jìn)行大數(shù)據(jù)量的訪問,然后根據(jù)測(cè)試結(jié)果分析應(yīng)用的性能。該測(cè)試方案操作簡單,可以不需要用戶干涉就可以自行對(duì)web應(yīng)用的各項(xiàng)功能進(jìn)行訪問測(cè)試。但是其測(cè)試過程具有很大的隨機(jī)性,不能保證對(duì)應(yīng)用的全部功能進(jìn)行測(cè)試,并且其一次只能單獨(dú)測(cè)試應(yīng)用的一個(gè)功能使其具有一定的局限性。(2)用戶模擬型測(cè)試:測(cè)試工具記錄用戶在應(yīng)用網(wǎng)頁上進(jìn)行的操作,然后自動(dòng)生成一系列的測(cè)試腳本來模擬用戶的操作,從而達(dá)到真實(shí)模擬用戶訪問的目的,使得測(cè)試結(jié)果更加具有可用性。該方案能夠更好地模擬出真實(shí)的應(yīng)用運(yùn)行場(chǎng)景,從而獲得更具實(shí)用性的測(cè)試結(jié)果,同時(shí)可以允許用戶自己制定所需的測(cè)試方案,但是這種方式在具體實(shí)現(xiàn)時(shí)中往往需要大量的前期工作,而且只是使用一些腳本來模擬用戶的操作步驟,并不能完全模擬出用戶實(shí)際訪問過程中的一些重要特征,比如思考時(shí)間,訪問偏好等等,因此最終得出的測(cè)試結(jié)果的參考價(jià)值還可以進(jìn)一步提高。以上兩種測(cè)試方案各有優(yōu)劣,但是都還是無法完全滿足實(shí)際的用戶需求,究其原因,主要是因?yàn)楝F(xiàn)在的web應(yīng)用具有以下幾個(gè)特點(diǎn):(I)功能模塊多樣化:隨著web技術(shù)的發(fā)展,web應(yīng)用的功能也變得更加強(qiáng)大,其自身的結(jié)構(gòu)也變得越來越變化多端,一個(gè)復(fù)雜的web應(yīng)用往往包含很多種功能各不相同的模塊,因此測(cè)試時(shí)往往需要對(duì)大量的web應(yīng)用地址進(jìn)行測(cè)試,如果人為執(zhí)行必然需要耗費(fèi)大量的時(shí)間和精力。因此,這也就大大增加了用戶模擬型測(cè)試的執(zhí)行難度,同時(shí)由于功能的增力口,自動(dòng)抓取型測(cè)試也難以訪問到應(yīng)用的所有功能模塊,也就降低了測(cè)試的精確性。(2)模塊關(guān)系復(fù)雜化:應(yīng)用內(nèi)部的各個(gè)功能模塊往往不是彼此獨(dú)立的,而是相輔相成的,用戶對(duì)應(yīng)用的一次訪問往往涉及一系列的功能模塊的訪問,這些訪問彼此之間是相互觸發(fā)相互影響的,因此在測(cè)試時(shí)不能只單獨(dú)對(duì)一個(gè)應(yīng)用模塊進(jìn)行測(cè)試,而要將各個(gè)功能模塊聯(lián)系起來一起進(jìn)行壓力測(cè)試。然而,自動(dòng)抓取型測(cè)試往往無法滿足這方面的需求,用戶模擬型測(cè)試則需要測(cè)試者事先對(duì)應(yīng)用的各個(gè)功能模塊都有足夠清晰的了解,這樣才能在模擬測(cè)試時(shí)盡可能地對(duì)各項(xiàng)功能進(jìn)行充分的測(cè)試。(3)用戶行為差異化:一個(gè)web應(yīng)用往往有很多不同的用戶種類,各種用戶類型對(duì)web應(yīng)用的訪問往往表現(xiàn)出較大的差異性,一些用戶可能對(duì)某些功能模塊表現(xiàn)出特別的訪問偏好,一些用戶對(duì)應(yīng)用的訪問較松散,另一些則會(huì)在較短時(shí)間間隔內(nèi)進(jìn)行大量的訪問,因此不同類型的用戶訪問時(shí)對(duì)應(yīng)用產(chǎn)生的壓力是不同的,在進(jìn)行性能測(cè)試的時(shí)候把這些因素考慮進(jìn)去可以使得測(cè)試結(jié)果與實(shí)際情況更加吻合。在這個(gè)方面,無論是自動(dòng)抓取型測(cè)試還是用戶模擬型測(cè)試都不能很好地實(shí)現(xiàn)出來。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于提供一種云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試方法,旨在解決現(xiàn)有web應(yīng)用性能測(cè)試方案存在的制定困難、執(zhí)行復(fù)雜、測(cè)試不夠精確等問題,該方法操作簡單,只需用戶提交一份應(yīng)用日志就能夠全自動(dòng)化地完成整個(gè)測(cè)試,另外使用用戶行為模型構(gòu)建虛擬用戶進(jìn)行測(cè)試,使得測(cè)試結(jié)果最大限度地接近應(yīng)用在真實(shí)運(yùn)行環(huán)境下的性能,從而找出應(yīng)用最有可能出現(xiàn)的性能瓶頸。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試方法,包括以下步驟:(I)判斷云平臺(tái)是否有足夠的資源創(chuàng)建測(cè)試環(huán)境,如果有,則轉(zhuǎn)入步驟(2),否則過程結(jié)束;(2)從web界面接收應(yīng)用日志,并且判斷該應(yīng)用日志是否合法,如果合法則轉(zhuǎn)入步驟(3),否則過程結(jié)束;(3)對(duì)應(yīng)用日志進(jìn)行狀態(tài)劃分和會(huì)話分割,以生成初始CBMG ;(4)對(duì)初始CBMG進(jìn)行會(huì)話修正,以獲得修正后的CBMG ;(5)利用k-means算法對(duì)修正后的CBMG進(jìn)行聚類,以生成多個(gè)代表性行為模型;(6)根據(jù)代表性CBMG生成虛擬用戶;(7)創(chuàng)建web應(yīng)用測(cè)試環(huán)境;(8)利用步驟(6)得到的虛擬用戶對(duì)web應(yīng)用測(cè)試環(huán)境進(jìn)行測(cè)試,并通過web界面將測(cè)試后的結(jié)果以圖表的方式展示給用戶。步驟(2)中是通過判斷應(yīng)用日志中是否包括web應(yīng)用的訪問發(fā)起者、訪問發(fā)起時(shí)間、訪問的資源類型以及訪問狀態(tài)等內(nèi)容中的全部內(nèi)容來確定應(yīng)用日志的合法性。步驟(4)包括以下子步驟:(4-1)建立基本的CBMG ;該CBMG可以由用戶自定義,也可以根據(jù)應(yīng)用的類型由系統(tǒng)指定;(4-2)根據(jù)基本的CBMG和初始CBMG,并采用以下等式獲得修正后的CBMG(S1; S2,…Sn),其中η為修正后的CBMG的數(shù)量:Mc= (1- β ) Ma+ β Mb其中Ma 表示步驟(3)中獲取的初始CBMG,Mb表示基本的CBMG, Mc表示修正后的CBMG, β表示基本CBMG的權(quán)值,其取值范圍為0.5至0.8。
步驟(5)包括以下子步驟:(5-1)設(shè)置初始聚類數(shù)量k、初始聚點(diǎn)集合(A1, A2,…Ak) e (S1, S2, "4)、初始聚點(diǎn)集合的狀態(tài)轉(zhuǎn)換概率矩陣(T1, T2,…,Tk)、初始聚點(diǎn)集合的用戶思考時(shí)間矩陣(W1, W2,…,Wk)、以及初始聚點(diǎn)集合對(duì)應(yīng)的聚類為({CJ,{C2},- {CJ ) = (A1, A2,..★),其中k的數(shù)值范圍為2到n/2,設(shè)置迭代計(jì)數(shù)Dc=I ;(5-2)設(shè)初始計(jì)數(shù)C=I ;(5-3)計(jì)算S。對(duì)應(yīng)的狀態(tài)轉(zhuǎn)換概率矩陣T。與初始聚點(diǎn)集合(A1, A2,…Ak)對(duì)應(yīng)的(T1, T2,…,Tk)之間的歐氏距離(D1, D2,…,Dk),設(shè)Di e (D1, D2,…,Dk)是其中的最小值,則將S。并入聚類ICJ中,并且重新計(jì)算聚類ICi, S。}的中心點(diǎn);(5-4)計(jì)數(shù)c加一,并判斷c的取值是否大于n,如果c的值大于n,則進(jìn)入步驟(5-5),否則返回步驟(5-3);(5-5)比較本輪迭代獲得的聚類中心點(diǎn)是否與上一輪迭代的聚類中心點(diǎn)是否一致,如果一致則結(jié)束迭代,否則進(jìn)入步驟(5-6);(5-6)檢查D。是否已達(dá)預(yù)設(shè)上限,如果達(dá)到則結(jié)束,否則進(jìn)入步驟(5-7);…{Ck})清空,并返回步驟(5-2)。預(yù)設(shè)上限值為20。步驟(7 )具體為,首先調(diào)用云平臺(tái)中的運(yùn)行環(huán)境檢測(cè)接口,以獲得web應(yīng)用的運(yùn)行環(huán)境中的各項(xiàng)參數(shù),參數(shù)包括有內(nèi)存、CPU等信息,然后利用獲取的參數(shù)調(diào)用云平臺(tái)的資源,以創(chuàng)建web應(yīng)用的運(yùn)行環(huán)境的克隆,最后將web應(yīng)用放入該克隆環(huán)境中,以準(zhǔn)備進(jìn)行測(cè)試。通過本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本方法具有以下的有益效果:(I)可實(shí)現(xiàn)更精確的用戶行為模型構(gòu)建:因?yàn)椴捎昧瞬襟E(4)的基本用戶行為模型對(duì)應(yīng)用日志中獲取的初始化用戶行為模型進(jìn)行修正,從而使得session更加完整,再對(duì)這些修正后的session進(jìn)行聚類獲取更加精確的用戶行為模型。應(yīng)用基本訪問模型中定義了所有用戶訪問時(shí)必須進(jìn)入的一些基本狀態(tài)以及不同類型用戶訪問時(shí)有可能進(jìn)入的關(guān)鍵狀態(tài)以及這些狀態(tài)互相之間的轉(zhuǎn)換概率。(2)能夠自動(dòng)克隆應(yīng)用運(yùn)行環(huán)境:由于采用了步驟(7)的應(yīng)用測(cè)試環(huán)境自動(dòng)部署,能夠利用云平臺(tái)的接口自動(dòng)克隆應(yīng)用運(yùn)行環(huán)境,利用云平臺(tái)的監(jiān)控工具獲取應(yīng)用運(yùn)行環(huán)境中的各項(xiàng)基本數(shù)據(jù),然后利用這些數(shù)據(jù)和云平臺(tái)資源就能夠自動(dòng)搭建一個(gè)完全模擬應(yīng)用真實(shí)運(yùn)行環(huán)境的測(cè)試環(huán)境,這樣就能夠測(cè)試出應(yīng)用實(shí)際運(yùn)行過程中的性能問題,從而克服了傳統(tǒng)應(yīng)用性能測(cè)試無法克隆真實(shí)的應(yīng)用運(yùn)行環(huán)境的問題。(3)全自動(dòng)測(cè)試:本發(fā)明利用應(yīng)用日志和云平臺(tái)資源,從制定測(cè)試計(jì)劃到執(zhí)行測(cè)試并生成測(cè)試結(jié)果,均自動(dòng)完成,無需進(jìn)行繁雜的測(cè)試,使得性能測(cè)試變得更加方便簡單,同時(shí)又保證測(cè)試結(jié)果的精確性。本發(fā)明的另一目的在于提供一種云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試系統(tǒng),用戶通過web界面提交web應(yīng)用日志之后,其能夠全自動(dòng)化地完成整個(gè)測(cè)試,另外使用CBMG構(gòu)建虛擬用戶進(jìn)行測(cè)試,使得測(cè)試結(jié)果最大限度地接近應(yīng)用在真實(shí)運(yùn)行環(huán)境下的性能,從而找出應(yīng)用最有可能出現(xiàn)的性能瓶頸。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試系統(tǒng),包括云資源判斷模塊、日志接收模塊、日志處理模塊、CBMG修正模塊、CBMG聚類模塊、虛擬用戶生成模塊、測(cè)試環(huán)境自動(dòng)部署模塊以及測(cè)試執(zhí)行模塊,云資源判斷模塊用于判斷云平臺(tái)是否有足夠的資源創(chuàng)建測(cè)試環(huán)境,如果有,則轉(zhuǎn)入日志接收模塊,否則過程結(jié)束,日志接收模塊用于從web界面接收應(yīng)用日志,并且判斷該應(yīng)用日志是否合法,如果合法則轉(zhuǎn)入日志處理模塊,否則過程結(jié)束,日志處理模塊用于對(duì)應(yīng)用日志進(jìn)行狀態(tài)劃分和會(huì)話(session)分割,以生成初始CBMG,CBMG修正模塊用于初始CBMG進(jìn)行會(huì)話修正,以獲得修正后的CBMG,CBMG聚類模塊用于對(duì)修正后的CBMG進(jìn)行聚類,以生成多個(gè)代表性CMBG,虛擬用戶生成模塊用于根據(jù)代表性CBMG生成虛擬用戶,測(cè)試環(huán)境自動(dòng)部署模塊用于創(chuàng)建web應(yīng)用測(cè)試環(huán)境,測(cè)試執(zhí)行模塊用于利用虛擬用戶對(duì)web應(yīng)用測(cè)試環(huán)境進(jìn)行測(cè)試,并通過web界面將測(cè)試后的結(jié)果以圖表的方式展示給用戶。 關(guān)鍵信息包括訪問發(fā)起者、訪問時(shí)間、訪問狀態(tài)、訪問的資源。CBMG修正模塊包括基本CBMG建立子模塊和初始CBMG修正子模塊,基本CBMG建立子模塊用于根據(jù)系統(tǒng)預(yù)設(shè)方案,用戶輸入信息以及應(yīng)用類型建立可用的基本CBMG,初始CBMG修正子模塊用于對(duì)初始CBMG進(jìn)行修正。利用基本CBMG和初始CBMG計(jì)算得出修正后的CBMG,包括狀態(tài)轉(zhuǎn)換概率矩陣和用戶思考時(shí)間矩陣。CBMG聚類模塊包括初始聚點(diǎn)選取子模塊和聚類迭代子模塊,初始聚點(diǎn)選取子模塊用于確定聚類的個(gè)數(shù)以及初始聚點(diǎn),即從到n/之間隨機(jī)取k值作為聚類個(gè)數(shù),并從所有修正后的CBMG中隨機(jī)取k個(gè)作為初始聚點(diǎn),聚類迭代子模塊用于采用k-means算法,對(duì)各個(gè)聚類進(jìn)行迭代,直到聚類穩(wěn)定或者達(dá)到迭代次數(shù)上限。通過本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本系統(tǒng)具有以下的有益效果:(I)可實(shí)現(xiàn)更精確的用戶行為模型構(gòu)建:因?yàn)椴捎昧顺跏加脩粜袨槟P托拚K對(duì)應(yīng)用日志中獲取的初始化用戶行為模型進(jìn)行修正,從而使得session更加完整,再對(duì)這些修正后的session進(jìn)行聚類獲取更加精確的用戶行為模型。應(yīng)用基本訪問模型中定義了所有用戶訪問時(shí)必須進(jìn)入的一些基本狀態(tài)以及不同類型用戶訪問時(shí)有可能進(jìn)入的關(guān)鍵狀態(tài)以及這些狀態(tài)互相之間的轉(zhuǎn)換概率。(2)能夠自動(dòng)克隆應(yīng)用運(yùn)行環(huán)境:由于采用了應(yīng)用測(cè)試環(huán)境自動(dòng)部署模塊,能夠利用云平臺(tái)的接口自動(dòng)克隆應(yīng)用運(yùn)行環(huán)境,利用云平臺(tái)的監(jiān)控工具獲取應(yīng)用運(yùn)行環(huán)境中的各項(xiàng)基本數(shù)據(jù),然后系統(tǒng)利用這些數(shù)據(jù)和云平臺(tái)資源就能夠自動(dòng)搭建一個(gè)完全模擬應(yīng)用真實(shí)運(yùn)行環(huán)境的測(cè)試環(huán)境,這樣就能夠測(cè)試出應(yīng)用實(shí)際運(yùn)行過程中的性能問題,從而克服了傳統(tǒng)應(yīng)用性能測(cè)試無法克隆真實(shí)的應(yīng)用運(yùn)行環(huán)境的問題。(3)全自動(dòng)測(cè)試:本系統(tǒng)利用應(yīng)用日志和云平臺(tái)資源,從制定測(cè)試計(jì)劃到執(zhí)行測(cè)試并生成測(cè)試結(jié)果,均由系統(tǒng)自動(dòng)完成,無需進(jìn)行繁雜的測(cè)試,使得性能測(cè)試變得更加方便簡單,同時(shí)又保證測(cè)試結(jié)果的精確性。
圖1是本發(fā)明云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試系統(tǒng)的應(yīng)用環(huán)境圖。圖2是本發(fā)明云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試方法的流程圖。
圖3是本發(fā)明方法中步驟(4)的細(xì)化流程圖。圖4是本發(fā)明方法中步驟(5)的細(xì)化流程圖。圖5是本發(fā)明云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試系統(tǒng)的模塊框圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖1所不,本發(fā)明云環(huán)境下基于用戶行為模型(Customer BehaviorModelGraphic,簡稱CBMG)的web應(yīng)用性能測(cè)試系統(tǒng)部署在云平臺(tái)上,并且通過web界面的方式與用戶進(jìn)行交互。用戶通過web界面上傳應(yīng)用日志以及待測(cè)試應(yīng)用等信息,系統(tǒng)接收后對(duì)日志進(jìn)行一系列處理獲取CBMG,然后調(diào)用云平臺(tái)的資源監(jiān)控接口和虛擬化資源管理接口進(jìn)行web應(yīng)用運(yùn)行環(huán)境的參數(shù)探測(cè),環(huán)境克隆以及測(cè)試環(huán)境的資源監(jiān)控,并最終將測(cè)試結(jié)果以圖表的形式通過web界面返回給用戶。如圖2所示,本發(fā)明云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試方法包括以下步驟:(I)判斷云平臺(tái)是否 有足夠的資源創(chuàng)建測(cè)試環(huán)境,如果有,則轉(zhuǎn)入步驟(2),否則過程結(jié)束;具體而言,是通過調(diào)用云平臺(tái)提供的資源監(jiān)控接口來判斷是否有足夠的空閑資源;(2)從web界面接收應(yīng)用日志,并且判斷該應(yīng)用日志是否合法,如果合法則轉(zhuǎn)入步驟(3),否則過程結(jié)束;具體而言,是通過判斷應(yīng)用日志中是否包括web應(yīng)用的訪問發(fā)起者、訪問發(fā)起時(shí)間、訪問的資源類型以及訪問狀態(tài)等內(nèi)容中的全部內(nèi)容來確定應(yīng)用日志的合法性;(3)對(duì)應(yīng)用日志進(jìn)行狀態(tài)劃分和會(huì)話(session)分割,以生成初始CBMG ;具體而言,狀態(tài)劃分指將日志中一條條分散的訪問記錄劃分為不同的用戶訪問狀態(tài),主要根據(jù)訪問的對(duì)象類型來進(jìn)行劃分。會(huì)話分割指將日志中的記錄劃分成不同的會(huì)話,一般而言,彼此間隔在30分鐘以內(nèi)來自同一用戶的訪問記錄屬于同一個(gè)會(huì)話;(4)對(duì)初始CBMG進(jìn)行會(huì)話修正,以獲得修正后的CBMG ;如圖3所示,本步驟包括以下子步驟:(4-1)建立基本的CBMG ;該CBMG可以由用戶自定義,也可以根據(jù)應(yīng)用的類型由系統(tǒng)指定,應(yīng)用的類型包括網(wǎng)上商店、視頻網(wǎng)站等?;綜BMG主要包括對(duì)一些核心狀態(tài)和特殊狀態(tài)的定義。所謂核心狀態(tài)是指web應(yīng)用用戶正常訪問時(shí)必須要進(jìn)入的狀態(tài)。所謂特殊狀態(tài)是指web應(yīng)用開發(fā)者通過在基本CBMG中為某些狀態(tài)賦予不同的權(quán)值,最終得到的CBMG即可更容易或者更難進(jìn)入這些狀態(tài),從而增加或減少對(duì)這些狀態(tài)的測(cè)試比重。(4-2)根據(jù)基本的CBMG和初始CBMG,并采用以下等式獲得修正后的CBMG(S1; S2,…Sn),其中η為修正后的CBMG的數(shù)量:Mc= (1- β ) Ma+ β Mb其中Ma表示步驟(3)中獲取的初始CBMG,Mb表示基本的CBMG, Mc表示修正后的CBMG, β表示基本CBMG的權(quán)值,其取值范圍為0.5至0.8 ;
(5)利用k-means算法對(duì)修正后的CBMG進(jìn)行聚類,以生成多個(gè)代表性行為模型(Representative CBMG);如圖4所示,本步驟具體包括以下子步驟:(5-1)設(shè)置初始聚類數(shù)量k、初始聚點(diǎn)集合(A1, A2,…Ak) e (S1, S2, "4)、初始聚點(diǎn)集合的狀態(tài)轉(zhuǎn)換概率矩陣(T1, T2,…,Tk)、初始聚點(diǎn)集合的用戶思考時(shí)間矩陣(W1, W2,…,Wk)、以及初始聚點(diǎn)集合對(duì)應(yīng)的聚類為({CJ,{C2},- {CJ ) = (A1, A2,..★),其中k的數(shù)值范圍為2到n/2,設(shè)置迭代計(jì)數(shù)Dc=I ;(5-2)設(shè)初始計(jì)數(shù)C=I ;(5-3)計(jì)算S。對(duì)應(yīng)的狀態(tài)轉(zhuǎn)換概率矩陣T。與初始聚點(diǎn)集合(A1, A2,…Ak)對(duì)應(yīng)的(T1, T2,…,Tk)之間的歐氏距離(D1, D2,…,Dk),設(shè)Di e (D1, D2,…,Dk)是其中的最小值,則將S。并入聚類{CJ中,并且重新計(jì)算聚類ICi, S。}的中心點(diǎn);(5-4)計(jì)數(shù)c加一,并判斷c的取值是否大于n,如果c的值大于n,則進(jìn)入步驟(5-5),否則返回步驟(5-3);(5-5)比較本輪迭代獲得的聚類中心點(diǎn)是否與上一輪迭代的聚類中心點(diǎn)是否一致,如果一致則結(jié)束迭代,否則進(jìn)入步驟(5-6);(5-6)檢查D。是否已達(dá)預(yù)設(shè)上限,如果達(dá)到則結(jié)束,否則進(jìn)入步驟(5-7),在本實(shí)施方式中,預(yù)設(shè)上限值設(shè)為20;…{Ck})清空,并返回步驟(5-2);
(6 )根據(jù)代表性CBMG生成虛擬用戶;具體而言,根據(jù)代表性CBMG生成訪問web應(yīng)用的腳本程序,該腳本程序被看做是虛擬用戶;(7)創(chuàng)建web應(yīng)用測(cè)試環(huán)境;具體而言,首先調(diào)用云平臺(tái)中的運(yùn)行環(huán)境檢測(cè)接口,以獲得web應(yīng)用的運(yùn)行環(huán)境中的各項(xiàng)參數(shù),參數(shù)包括有內(nèi)存、CPU等信息,然后利用獲取的參數(shù)調(diào)用云平臺(tái)的資源,以創(chuàng)建web應(yīng)用的運(yùn)行環(huán)境的克隆,最后將web應(yīng)用放入該克隆環(huán)境中,以準(zhǔn)備進(jìn)行測(cè)試;(8)利用步驟(6)得到的虛擬用戶對(duì)web應(yīng)用測(cè)試環(huán)境進(jìn)行測(cè)試,并通過web界面將測(cè)試后的結(jié)果以圖表的方式展示給用戶。如圖5所示,本發(fā)明云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試系統(tǒng)包括云資源判斷模塊1、日志接收模塊2,日志處理模塊3,CBMG修正模塊4,CBMG聚類模塊5,虛擬用戶生成模塊6,測(cè)試環(huán)境自動(dòng)部署模塊7以及測(cè)試執(zhí)行模塊8。云資源判斷模塊I用于判斷云平臺(tái)是否有足夠的資源創(chuàng)建測(cè)試環(huán)境,如果有,則轉(zhuǎn)入日志接收模塊2,否則過程結(jié)束。日志接收模塊2用于從web界面接收應(yīng)用日志,并且判斷該應(yīng)用日志是否合法,如果合法則轉(zhuǎn)入日志處理模塊3,否則過程結(jié)束。日志處理模塊3用于對(duì)應(yīng)用日志進(jìn)行狀態(tài)劃分和會(huì)話分割,以生成初始CBMG。狀態(tài)劃分指根據(jù)訪問的資源的不同,將每條記錄劃分成不同的狀態(tài),一般訪問資源相同或相近的記錄被劃分為同一個(gè)狀態(tài),所有的靜態(tài)資源(如css,js以及各種圖片等)的請(qǐng)求記錄都被劃分成同一個(gè)狀態(tài)。用戶會(huì)話劃分指根據(jù)一些事先設(shè)置的指標(biāo)將一條條獨(dú)立的記錄劃分成一組組的會(huì)話(session)。所謂會(huì)話就是一次或者多次用戶訪問的集合,其代表了某一時(shí)間段內(nèi)用戶對(duì)應(yīng)用進(jìn)行的一系列邏輯上相關(guān)聯(lián)的操作。不同用戶產(chǎn)生的訪問會(huì)話往往是不一樣的,同一用戶在不同時(shí)間里產(chǎn)生的訪問會(huì)話則往往具有較高的相似性。因此對(duì)用戶會(huì)話進(jìn)行分析處理便可以得到具有代表性某一類型的用戶的訪問特征,即CBMG。用戶會(huì)話劃分一般是一個(gè)較短的時(shí)間間隔,將一組訪問發(fā)起者相同的,彼此間的時(shí)間間隔較短的訪問記錄劃分成一個(gè)會(huì)話(一般標(biāo)準(zhǔn)時(shí)將時(shí)間間隔設(shè)置為30分鐘)。每個(gè)會(huì)話由兩個(gè)矩陣表述,即狀態(tài)轉(zhuǎn)換概率矩陣,表示各個(gè)狀態(tài)間互相轉(zhuǎn)換的概率,以及用戶思考時(shí)間矩陣,即各個(gè)狀態(tài)間相互狀態(tài)的時(shí)間延遲。CBMG修正模塊4用于初始CBMG進(jìn)行會(huì)話修正,以獲得修正后的CBMG,并且包括基本CBMG建立子模塊41和初始CBMG修正子模塊42。由于用戶訪問的隨機(jī)性和不確定性,日志處理模塊3中得到的初始CBMG往往是不準(zhǔn)確的,不能展示出完整的用戶訪問行為,因此需要利用一個(gè)基本CBMG對(duì)這些初始CBMG進(jìn)行修正。基本CBMG建立子模塊41根據(jù)系統(tǒng)預(yù)設(shè)方案,用戶輸入信息以及應(yīng)用類型建立可用的基本CBMG?;綜BMG中包括一些核心狀態(tài)和特殊狀態(tài)的定義。 初始CBMG修正子模塊42用于對(duì)初始CBMG進(jìn)行修正。利用基本CBMG和初始CBMG計(jì)算得出修正后的CBMG,包括狀態(tài)轉(zhuǎn)換概率矩陣和用戶思考時(shí)間矩陣。CBMG聚類模塊5用于對(duì)修正后的CBMG進(jìn)行聚類,以生成多個(gè)代表性CMBG(Representative CBMGs),該模塊包括初始聚點(diǎn)選取子模塊51和聚類迭代子模塊52。該模塊使用k-means聚類算法,事先隨機(jī)選取聚類個(gè)數(shù)k和k個(gè)聚類中心點(diǎn),通過迭代聚類的方法將初始CBMG聚類,然后計(jì)算得到每個(gè)聚類的中心聚點(diǎn),從而得到該聚類所代表的CBMG。初始聚點(diǎn)選取子模塊51用于確定聚類的個(gè)數(shù)以及初始聚點(diǎn),即從2到n/2之間隨機(jī)取k值作為聚類個(gè)數(shù),并從所有修正后的CBMG中隨機(jī)取k個(gè)作為初始聚點(diǎn)。聚類迭代子模塊52用于CBMG的迭代運(yùn)算。采用k-means算法,對(duì)各個(gè)聚類進(jìn)行迭代,直到聚類穩(wěn)定(中心聚點(diǎn)不變)或者達(dá)到迭代次數(shù)上限。虛擬用戶生成模塊6用于根據(jù)代表性CBMG生成虛擬用戶。根據(jù)每個(gè)CBMG所對(duì)應(yīng)的狀態(tài)轉(zhuǎn)換概率矩陣和用戶思考時(shí)間矩陣來生成模擬用戶訪問的腳本,具體實(shí)現(xiàn)策略如下:用戶首先進(jìn)入初始狀態(tài),即對(duì)初始狀態(tài)對(duì)應(yīng)的應(yīng)用資源進(jìn)行訪問,如果一個(gè)狀態(tài)對(duì)應(yīng)多個(gè)資源,則應(yīng)該隨機(jī)從中選取,然后根據(jù)狀態(tài)轉(zhuǎn)換概率矩陣,挑選出所有可能進(jìn)行轉(zhuǎn)換的下一個(gè)狀態(tài),并且分別賦予對(duì)應(yīng)的權(quán)重,然后從這些待選狀態(tài)中隨機(jī)挑選一個(gè)作為待跳轉(zhuǎn)狀態(tài),然后等待用戶思考時(shí)間矩陣中定義的狀態(tài)轉(zhuǎn)換延遲時(shí)間之后,即進(jìn)入待跳轉(zhuǎn)狀態(tài),然后依照此方法繼續(xù)選擇下一次的跳轉(zhuǎn)狀態(tài)進(jìn)行轉(zhuǎn)換,直到最后進(jìn)入最終狀態(tài)即該用戶對(duì)應(yīng)用的一次訪問結(jié)束。通過編寫腳本的方法來實(shí)現(xiàn)以上過程,最終得到一組能夠模擬真實(shí)用戶對(duì)應(yīng)用進(jìn)行訪問的可執(zhí)行腳本。測(cè)試環(huán)境自動(dòng)部署模塊7用于創(chuàng)建web應(yīng)用測(cè)試環(huán)境。通過調(diào)用云平臺(tái)接口檢測(cè)應(yīng)用的真實(shí)運(yùn)行環(huán)境中的各項(xiàng)參數(shù),包括應(yīng)用運(yùn)行所需的內(nèi)存,CPU以及所需的各種系統(tǒng)環(huán)境,然后根據(jù)這些參數(shù)調(diào)用云平臺(tái)提供的接口,搭建出應(yīng)用運(yùn)行環(huán)境的克隆。然后將從應(yīng)用運(yùn)行環(huán)境中復(fù)制一份應(yīng)用代碼到測(cè)試環(huán)境中,并使其正常運(yùn)行。最終,模塊將使用URL抓取的方式測(cè)試應(yīng)用能否正常運(yùn)行,如果不能,則等待一段時(shí)間后重試或者終止測(cè)試。測(cè)試執(zhí)行模塊8用于利用虛擬用戶對(duì)web應(yīng)用測(cè)試環(huán)境進(jìn)行測(cè)試,并通過web界面將測(cè)試后的結(jié)果以圖表的方式展示給用戶。通過修改虛擬用戶生成模塊6中生成的虛擬用戶腳本,使其能夠?qū)y(cè)試環(huán)境自動(dòng)部署模塊7中生成的測(cè)試環(huán)境中的應(yīng)用進(jìn)行訪問,并且執(zhí)行腳本進(jìn)行測(cè)試,同時(shí)記錄測(cè)試數(shù)據(jù),包括每個(gè)請(qǐng)求的響應(yīng)時(shí)間,是否出錯(cuò)等,并且將最終的結(jié)果以圖表的形式返回給用戶。如果某個(gè)會(huì)話訪問中的一個(gè)請(qǐng)求出錯(cuò),則終止此次會(huì)話訪問,返回出錯(cuò)信息。實(shí)例:為了驗(yàn)證本發(fā)明系統(tǒng)的可行性和有效性,在真實(shí)環(huán)境下配置本發(fā)明系統(tǒng),對(duì)云平臺(tái)中運(yùn)行的web應(yīng)用進(jìn)行CBMG構(gòu)建以及性能測(cè)試。云平臺(tái)包括一個(gè)頭結(jié)點(diǎn)和三個(gè)從結(jié)點(diǎn),頭結(jié)點(diǎn)負(fù)責(zé)進(jìn)行虛擬機(jī)調(diào)度和監(jiān)控管理,虛擬機(jī)運(yùn)行在從結(jié)點(diǎn)上。web應(yīng)用運(yùn)行環(huán)境是由一個(gè)頭結(jié)點(diǎn)和多個(gè)從結(jié)點(diǎn)組成的虛擬集群,頭結(jié)點(diǎn)負(fù)責(zé)負(fù)載均衡,從結(jié)點(diǎn)負(fù)責(zé)應(yīng)用請(qǐng)求的處理。具體的環(huán)境配置如表I所示。表I實(shí)驗(yàn)配置環(huán)境
權(quán)利要求
1.一種云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試方法,其特征在于,包括以下步驟: (1)判斷云平臺(tái)是否有足夠的資源創(chuàng)建測(cè)試環(huán)境,如果有,則轉(zhuǎn)入步驟(2),否則過程結(jié)束; (2)從web界面接收應(yīng)用日志,并且判斷該應(yīng)用日志是否合法,如果合法則轉(zhuǎn)入步驟(3),否則過程結(jié)束; (3)對(duì)應(yīng)用日志進(jìn)行狀態(tài)劃分和會(huì)話分割,以生成初始CBMG; (4)對(duì)初始CBMG進(jìn)行會(huì)話修正,以獲得修正后的CBMG; (5)利用k-means算法對(duì)修正后的CBMG進(jìn)行聚類,以生成多個(gè)代表性行為模型; (6)根據(jù)代表性CBMG生成虛擬用戶; (7)創(chuàng)建web應(yīng)用測(cè)試環(huán)境; (8)利用步驟(6)得到的虛擬用戶對(duì)web應(yīng)用測(cè)試環(huán)境進(jìn)行測(cè)試,并通過web界面將測(cè)試后的結(jié)果以圖表的方式展示給用戶。
2.根據(jù)權(quán)利要求1所述的web應(yīng)用性能測(cè)試方法,其特征在于,步驟(2)中是通過判斷應(yīng)用日志中是否包括web應(yīng)用的訪問發(fā)起者、訪問發(fā)起時(shí)間、訪問的資源類型以及訪問狀態(tài)等內(nèi)容中的全部內(nèi)容來確定應(yīng)用日志的合法性。
3.根據(jù)權(quán)利要求1所述的we b應(yīng)用性能測(cè)試方法,其特征在于,步驟(4)包括以下子步驟: (4-1)建立基本的CBMG ;該CBMG可以由用戶自定義,也可以根據(jù)應(yīng)用的類型由系統(tǒng)指定; (4-2)根據(jù)基本的CBMG和初始CBMG,并采用以下等式獲得修正后的CBMG (S1, S2,…Sn),其中η為修正后的CBMG的數(shù)量:Mc= (1- β ) Ma+ β Mb 其中Ma表示步驟(3)中獲取的初始CBMG,Mb表示基本的CBMG, Mc表示修正后的CBMG,β表示基本CBMG的權(quán)值,其取值范圍為0.5至0.8。
4.根據(jù)權(quán)利要求1所述的web應(yīng)用性能測(cè)試方法,其特征在于,步驟(5)包括以下子步驟: (5-1)設(shè)置初始聚類數(shù)量k、初始聚點(diǎn)集合(A1,A2,…Ak) e (S1, S2, “義)、初始聚點(diǎn)集合的狀態(tài)轉(zhuǎn)換概率矩陣(T1, T2, - ,Tk)、初始聚點(diǎn)集合的用戶思考時(shí)間矩陣U…,Wk)、以及初始聚點(diǎn)集合對(duì)應(yīng)的聚類為({CJ,{C2},...{Ck})= (A17A2,…Ak),其中k的數(shù)值范圍為2到n/2,設(shè)置迭代計(jì)數(shù)Dc=I ; (5-2)設(shè)初始計(jì)數(shù)c=l ; (5-3)計(jì)算S。對(duì)應(yīng)的狀態(tài)轉(zhuǎn)換概率矩陣T。與初始聚點(diǎn)集合(A1, A2,…Ak)對(duì)應(yīng)的(T1, T2,…,Tk)之間的歐氏距離(D1, D2,…,Dk),設(shè)Di e (D1, D2,…,Dk)是其中的最小值,則將S。并入聚類ICJ中,并且重新計(jì)算聚類ICi, S。}的中心點(diǎn); (5-4)計(jì)數(shù)c加一,并判斷c的取值是否大于n,如果c的值大于n,則進(jìn)入步驟(5-5),否則返回步驟(5-3); (5-5)比較本輪迭代獲得的聚類中心點(diǎn)是否與上一輪迭代的聚類中心點(diǎn)是否一致,如果一致則結(jié)束迭代,否則進(jìn)入步驟(5-6);(5-6)檢查D。是否已達(dá)預(yù)設(shè)上限,如果達(dá)到則結(jié)束,否則進(jìn)入步驟(5-7); (5-7) D。加一,將 ICJ e({Cj,{C2},…{Ck})清空,并返回步驟(5-2)。
5.根據(jù)權(quán)利要求4所述的web應(yīng)用性能測(cè)試方法,其特征在于,預(yù)設(shè)上限值為20。
6.根據(jù)權(quán)利要求1所述的web應(yīng)用性能測(cè)試方法,其特征在于,步驟(7)具體為,首先調(diào)用云平臺(tái)中的運(yùn)行環(huán)境檢測(cè)接口,以獲得web應(yīng)用的運(yùn)行環(huán)境中的各項(xiàng)參數(shù),參數(shù)包括有內(nèi)存、CPU等信息,然后利用獲取的參數(shù)調(diào)用云平臺(tái)的資源,以創(chuàng)建web應(yīng)用的運(yùn)行環(huán)境的克隆,最后將web應(yīng)用放入該克隆環(huán)境中,以準(zhǔn)備進(jìn)行測(cè)試。
7.一種云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試系統(tǒng),其特征在于, 包括云資源判斷模塊、日志接收模塊、日志處理模塊、CBMG修正模塊、CBMG聚類模塊、虛擬用戶生成模塊、測(cè)試環(huán)境自動(dòng)部署模塊以及測(cè)試執(zhí)行模塊; 云資源判斷模塊用于判斷云平臺(tái)是否有足夠的資源創(chuàng)建測(cè)試環(huán)境,如果有,則轉(zhuǎn)入日志接收模塊,否則過程結(jié)束; 日志接收模塊用于從web界面接收應(yīng)用日志,并且判斷該應(yīng)用日志是否合法,如果合法則轉(zhuǎn)入日志處理模塊,否則過程結(jié)束; 日志處理模塊用于對(duì)應(yīng)用日志進(jìn)行狀態(tài)劃分和會(huì)話(session)分割,以生成初始CBMG ; CBMG修正模塊用于初始CBMG進(jìn)行會(huì)話修正,以獲得修正后的CBMG ; CBMG聚類模塊用于對(duì)修正后的CBMG進(jìn)行聚類,以生成多個(gè)代表性CMBG ; 虛擬用戶生成模塊用于根據(jù)代表性CBMG生成虛擬用戶; 測(cè)試環(huán)境自動(dòng)部署模塊用于創(chuàng)建web應(yīng)用測(cè)試環(huán)境; 測(cè)試執(zhí)行模塊用于利用虛擬用戶對(duì)web應(yīng)用測(cè)試環(huán)境進(jìn)行測(cè)試,并通過web界面將測(cè)試后的結(jié)果以圖表的方式展示給用戶。
8.根據(jù)權(quán)利要求7所述的web應(yīng)用性能測(cè)試系統(tǒng),其特征在于,關(guān)鍵信息包括訪問發(fā)起者、訪問時(shí)間、訪問狀態(tài)、訪問的資源。
9.根據(jù)權(quán)利要求7所述的web應(yīng)用性能測(cè)試系統(tǒng),其特征在于, CBMG修正模塊包括基本CBMG建立子模塊和初始CBMG修正子模塊; 基本CBMG建立子模塊用于根據(jù)系統(tǒng)預(yù)設(shè)方案,用戶輸入信息以及應(yīng)用類型建立可用的基本CBMG ; 初始CBMG修正子模塊用于對(duì)初始CBMG進(jìn)行修正。利用基本CBMG和初始CBMG計(jì)算得出修正后的CBMG,包括狀態(tài)轉(zhuǎn)換概率矩陣和用戶思考時(shí)間矩陣。
10.根據(jù)權(quán)利要求7所述的web應(yīng)用性能測(cè)試系統(tǒng),其特征在于, CBMG聚類模塊包括初始聚點(diǎn)選取子模塊和聚類迭代子模塊; 初始聚點(diǎn)選取 子模塊用于確定聚類的個(gè)數(shù)以及初始聚點(diǎn),即從到n/之間隨機(jī)取k值作為聚類個(gè)數(shù),并從所有修正后的CBMG中隨機(jī)取k個(gè)作為初始聚點(diǎn); 聚類迭代子模塊用于采用k-means算法,對(duì)各個(gè)聚類進(jìn)行迭代,直到聚類穩(wěn)定或者達(dá)到迭代次數(shù)上限。
全文摘要
本發(fā)明公開了一種云環(huán)境下基于用戶行為模型的web應(yīng)用性能測(cè)試方法,包括以下步驟判斷云平臺(tái)是否有足夠的資源創(chuàng)建測(cè)試環(huán)境,如果有,則從web界面接收應(yīng)用日志,并且判斷該應(yīng)用日志是否合法,如果合法則對(duì)應(yīng)用日志進(jìn)行狀態(tài)劃分和會(huì)話分割,以生成初始CBMG,對(duì)初始CBMG進(jìn)行會(huì)話修正,以獲得修正后的CBMG,利用k-means算法對(duì)修正后的CBMG進(jìn)行聚類,以生成多個(gè)代表性行為模型,根據(jù)代表性CBMG生成虛擬用戶,創(chuàng)建web應(yīng)用測(cè)試環(huán)境,利用虛擬用戶對(duì)web應(yīng)用測(cè)試環(huán)境進(jìn)行測(cè)試,并通過web界面將測(cè)試后的結(jié)果以圖表的方式展示給用戶。本發(fā)明使用用戶行為模型構(gòu)建虛擬用戶進(jìn)行測(cè)試,使得測(cè)試結(jié)果最大限度地接近應(yīng)用在真實(shí)運(yùn)行環(huán)境下的性能,從而找出應(yīng)用最有可能出現(xiàn)的性能瓶頸。
文檔編號(hào)H04L29/08GK103092751SQ201210544670
公開日2013年5月8日 申請(qǐng)日期2012年12月13日 優(yōu)先權(quán)日2012年12月13日
發(fā)明者吳松, 石宣化, 金海 , 唐黎翔 申請(qǐng)人:華中科技大學(xué)