本發(fā)明涉及計(jì)算機(jī)處理技術(shù)領(lǐng)域,尤其涉及一種自適應(yīng)壓力測試的方法及裝置。
背景技術(shù):
“大數(shù)據(jù)”正是新形勢下技術(shù)融合型發(fā)展和應(yīng)用智能化理念的集中體現(xiàn),具有應(yīng)對數(shù)據(jù)體量巨大、數(shù)據(jù)類型繁多、價(jià)值密度低和處理速度快的數(shù)據(jù)特征的技術(shù)架構(gòu),及以行業(yè)內(nèi)外高附加值的內(nèi)容增值服務(wù)為目標(biāo)的應(yīng)用模式,其核心就是信息資源的開發(fā)利用。隨著科技的發(fā)展及大量信息系統(tǒng)的推廣和深化應(yīng)用,用戶體驗(yàn)需求正在不斷增長,在這過程中所積累的數(shù)據(jù)和服務(wù)也越來越多,趨于海量,傳統(tǒng)的數(shù)據(jù)庫已無法滿足如此龐大的數(shù)據(jù)存儲要求。
隨著大數(shù)據(jù)平臺的業(yè)務(wù)范圍覆蓋各類數(shù)據(jù)資源挖掘及業(yè)務(wù)創(chuàng)新,集成數(shù)據(jù)資源整合、計(jì)算中間件服務(wù)、智能信息處理服務(wù),提供面向典型業(yè)務(wù)應(yīng)用的智能決策分析能力。為了更好得利用大數(shù)據(jù)平臺,通常壓力測試來測試新系統(tǒng)或系統(tǒng)新功能的性能極限。現(xiàn)有的壓力測試軟件不但部署操作十分復(fù)雜,而且要求用戶必須對該壓力測試軟件非常精通,人力成本要求過高。
因此,如何簡化壓力測試過程,進(jìn)而節(jié)省人力成本成為急需解決的問題。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)的缺陷,本發(fā)明提供了一種自適應(yīng)壓力測試的方法及裝置,能夠有效簡化壓力測試過程,進(jìn)而節(jié)省人力成本。
第一方面,本發(fā)明提供了一種自適應(yīng)壓力測試的方法,該方法包括:
向被測系統(tǒng)中的服務(wù)器并發(fā)預(yù)設(shè)數(shù)量的請求;
檢測所述服務(wù)器的多個(gè)性能指標(biāo);
根據(jù)所述請求的數(shù)量與所述性能指標(biāo),建立被測系統(tǒng)的壓力測試模型;
根據(jù)所述被測系統(tǒng)的壓力測試模型調(diào)整所述并發(fā)請求的數(shù)量,直至所述被測系統(tǒng)的壓力達(dá)到極限值,并輸出此時(shí)的并發(fā)請求的數(shù)量作為壓力測試結(jié)果。
優(yōu)選地,所述多個(gè)性能指標(biāo)包括:CPU空閑率、內(nèi)存占用數(shù)、請求處理速度及服務(wù)器socket連接。
優(yōu)選地,所述根據(jù)所述請求的數(shù)量與所述性能指標(biāo),建立被測系統(tǒng)的壓力測試模型,包括:
調(diào)整所述請求的數(shù)量,并檢測所述多個(gè)性能指標(biāo),獲得所述多個(gè)性能指標(biāo)中受影響的性能指標(biāo);
根據(jù)所述受影響的性能指標(biāo)與所述請求的數(shù)量間的關(guān)系,建立被測系統(tǒng)的壓力測試模型。
優(yōu)選地,所述根據(jù)所述被測系統(tǒng)的壓力測試模型調(diào)整所述并發(fā)請求的數(shù)量,直至所述被測系統(tǒng)的壓力達(dá)到極限值,并輸出壓力測試結(jié)果,包括:
調(diào)整并發(fā)請求的數(shù)量,并檢測所述服務(wù)器的所述受影響的性能指標(biāo);
當(dāng)所述受影響的性能指標(biāo)達(dá)到極限值時(shí),停止壓力檢測,并輸出此時(shí)的并發(fā)請求的數(shù)量作為壓力測試的結(jié)果。
優(yōu)選地,所述向被測系統(tǒng)中的服務(wù)器并發(fā)預(yù)設(shè)數(shù)量的請求之前,該方法還包括:
輸入所述被測系統(tǒng)中的服務(wù)器的地址及壓力測試腳本;
其中,所述壓力測試腳本用于向所述被測系統(tǒng)發(fā)送請求。
第二方面,本發(fā)明提供了一種自適應(yīng)壓力測試的裝置,該裝置包括:
請求并發(fā)單元,用于向被測系統(tǒng)中的服務(wù)器并發(fā)預(yù)設(shè)數(shù)量的請求;
性能檢測單元,用于檢測所述服務(wù)器的多個(gè)性能指標(biāo);
模型建立單元,用于根據(jù)所述請求的數(shù)量與所述性能指標(biāo),建立被測系統(tǒng)的壓力測試模型;
壓力調(diào)整單元,根據(jù)所述被測系統(tǒng)的壓力測試模型調(diào)整所述并發(fā)請求的數(shù)量,直至所述被測系統(tǒng)的壓力達(dá)到極限值,并輸出此時(shí)的并發(fā)請求的數(shù)量作為壓力測試結(jié)果。
優(yōu)選地,所述多個(gè)性能指標(biāo)包括:CPU空閑率、內(nèi)存占用數(shù)、請求處理速度及服務(wù)器socket連接。
優(yōu)選地,所述模型建立單元,用于:
調(diào)整所述請求的數(shù)量,并檢測所述多個(gè)性能指標(biāo),獲得所述多個(gè)性能指標(biāo)中受影響的性能指標(biāo);
根據(jù)所述受影響的性能指標(biāo)與所述請求的數(shù)量間的關(guān)系,建立被測系統(tǒng)的壓力測試模型。
優(yōu)選地,所述壓力調(diào)整單元,用于:
調(diào)整并發(fā)請求的數(shù)量,并檢測所述服務(wù)器的所述受影響的性能指標(biāo);
當(dāng)所述受影響的性能指標(biāo)達(dá)到極限值時(shí),停止壓力檢測,并輸出此時(shí)的并發(fā)請求的數(shù)量作為壓力測試的結(jié)果。
優(yōu)選地,該裝置還包括:輸入單元,用于:
輸入所述被測系統(tǒng)中的服務(wù)器的地址及壓力測試腳本;
其中,所述壓力測試腳本用于向所述被測系統(tǒng)發(fā)送請求。
由上述技術(shù)方案可知,本發(fā)明提供了一種自適應(yīng)壓力測試的方法及裝置,通過向被測系統(tǒng)并發(fā)一定數(shù)量的請求,并檢測被測系統(tǒng)的性能指標(biāo),根據(jù)請求的數(shù)量與性能指標(biāo)的變化間關(guān)系建立被測系統(tǒng)的壓力測試模型,根據(jù)所述模型調(diào)整并發(fā)的請求的數(shù)量,直至系統(tǒng)的壓力達(dá)到極限值,并將此事并發(fā)請求的數(shù)量作為壓力測試結(jié)果。該方法能夠根據(jù)壓力檢測自適應(yīng)地調(diào)整并發(fā)請求的數(shù)量,有效地簡化了壓力測 試過程,進(jìn)而節(jié)省了人力成本。
附圖說明
為了更清楚地說明本公開實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本公開的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些圖獲得其他的附圖。
圖1是本公開一實(shí)施例提供的一種自適應(yīng)壓力測試的方法的流程示意圖;
圖2是本公開一實(shí)施例提供的一種被測系統(tǒng)的自適應(yīng)壓力測試的的示意圖;
圖3是本公開另一實(shí)施例提供的一種自適應(yīng)壓力測試的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本公開實(shí)施例中的附圖,對本公開實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本公開一部分實(shí)施例,而不是全部的實(shí)施例?;诒竟_中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本公開保護(hù)的范圍。
以下對本公開實(shí)施例中提及的部分詞語進(jìn)行舉例說明。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本公開實(shí)施例中提及的自適應(yīng)壓力測試的方法的執(zhí)行主體、自適應(yīng)壓力測試的裝置均可以為服務(wù)器,服務(wù)器既可以代表如計(jì)算機(jī)服務(wù)器的單個(gè)服務(wù)器,也可以代表一起工作以執(zhí)行功能的多個(gè)服務(wù)器,例如云服務(wù)器hadoop。
圖1示出了本公開一實(shí)施例提供的一種自適應(yīng)壓力測試的方法的流程示意圖,如圖1所示,該方法包括如下步驟:
S1:向被測系統(tǒng)中的服務(wù)器并發(fā)預(yù)設(shè)數(shù)量的請求。
具體來說,可設(shè)置多個(gè)發(fā)壓單元,控制發(fā)壓單元的數(shù)量以控制并發(fā)的請求數(shù)量。則可根據(jù)一個(gè)多次測試的經(jīng)驗(yàn)值來啟動(dòng)發(fā)壓單元。例如,1個(gè)發(fā)壓單元產(chǎn)生10個(gè)請求每秒,則系統(tǒng)初始啟動(dòng)5個(gè)發(fā)壓單元,就相當(dāng)于并發(fā)50個(gè)請求每秒。
如圖2所示的一種被測系統(tǒng)的自適應(yīng)壓力測試的示意圖,通過若干個(gè)發(fā)壓單向被測系統(tǒng)并發(fā)多個(gè)請求。
S2:檢測所述服務(wù)器的多個(gè)性能指標(biāo)。
其中,所述多個(gè)性能指標(biāo)包括:CPU空閑率、內(nèi)存占用數(shù)、請求處理速度及服務(wù)器socket連接等等。
具體來說,對被測系統(tǒng)中指定的多個(gè)模塊的多個(gè)性能指標(biāo)進(jìn)行實(shí)時(shí)監(jiān)控。如圖2所示,對系統(tǒng)接口模塊、存儲模塊、計(jì)算模塊等多個(gè)模塊的多個(gè)性能指標(biāo)進(jìn)行監(jiān)控,并將監(jiān)控的性能指標(biāo)數(shù)據(jù)反饋以進(jìn)行壓力分析。
S3:根據(jù)所述請求的數(shù)量與所述性能指標(biāo),建立被測系統(tǒng)的壓力測試模型。
具體來說,壓力分析主要是根據(jù)請求的數(shù)量及性能指標(biāo)的變化,獲得其中受請求的數(shù)量影響的性能指標(biāo),并將該性能指標(biāo)作為衡量被測系統(tǒng)的壓力的標(biāo)準(zhǔn),從而根據(jù)該性能指標(biāo)建立壓力測試模型。
S4:根據(jù)所述被測系統(tǒng)的壓力測試模型調(diào)整所述并發(fā)請求的數(shù)量,直至所述被測系統(tǒng)的壓力達(dá)到極限值,并輸出此時(shí)的并發(fā)請求的數(shù)量作為壓力測試結(jié)果。
其中,所述被測系統(tǒng)的壓力達(dá)到極限值是指:上述被測系統(tǒng)的某一性能指標(biāo)達(dá)到極限。如圖2所示,根據(jù)壓力分析的結(jié)果調(diào)整發(fā)壓單元的個(gè)數(shù),直至被測系統(tǒng)的某一性能指標(biāo)達(dá)到極限。當(dāng)被測系統(tǒng)的某一性能指標(biāo)達(dá)到極限時(shí),此時(shí)發(fā)壓單元的個(gè)數(shù)即為壓力測試的結(jié)果。
由此可見,本實(shí)施例提供了一種自適應(yīng)壓力測試的方法,通過向被測系統(tǒng)并發(fā)一定數(shù)量的請求,并檢測被測系統(tǒng)的性能指標(biāo),根據(jù)請求的數(shù)量與性能指標(biāo)的變化間關(guān)系建立被測系統(tǒng)的壓力測試模型,根 據(jù)所述模型調(diào)整并發(fā)的請求的數(shù)量,直至系統(tǒng)的壓力達(dá)到極限值,并將此事并發(fā)請求的數(shù)量作為壓力測試結(jié)果。該方法能夠根據(jù)壓力檢測自適應(yīng)地調(diào)整并發(fā)請求的數(shù)量,有效地簡化了壓力測試過程,進(jìn)而節(jié)省了人力成本。
需要說明的是,步驟S1之前,該方法還包括如下步驟:
S0:輸入所述被測系統(tǒng)中的服務(wù)器的地址及壓力測試腳本。
其中,所述壓力測試腳本用于向所述被測系統(tǒng)發(fā)送請求。
具體來說,測試開始時(shí),需輸入被測系統(tǒng)的服務(wù)器的地址,便于監(jiān)控對應(yīng)的服務(wù)器。而且發(fā)壓單元通過調(diào)用該壓力測試腳本向被測系統(tǒng)發(fā)送請求。
舉例來說,被測系統(tǒng)是一個(gè)接口服務(wù),用于將請求以消息的方式插入一個(gè)消息隊(duì)列并返回。則將壓力測試腳本輸入系統(tǒng),并指定被測服務(wù)器A和B(即輸入指定服務(wù)器A和B的地址),A是web接口服務(wù),B是消息服務(wù)隊(duì)列。
本實(shí)施例中,步驟S3中的根據(jù)所述請求的數(shù)量與所述性能指標(biāo),建立被測系統(tǒng)的壓力測試模型,具體包括如下步驟:
S31:調(diào)整所述請求的數(shù)量,并檢測所述多個(gè)性能指標(biāo),獲得所述多個(gè)性能指標(biāo)中受影響的性能指標(biāo)。
舉例來說,系統(tǒng)啟動(dòng)一個(gè)1個(gè)發(fā)壓單元,請求并發(fā)是50個(gè)每秒,性能監(jiān)控服務(wù)器得到:CPU空閑(cpu idle)是99,系統(tǒng)內(nèi)存占用5G,服務(wù)器socket連接100,此時(shí)系統(tǒng)自適應(yīng)加大壓力,發(fā)壓單元變?yōu)?個(gè),性能監(jiān)控得到cpu idle還是99,系統(tǒng)內(nèi)存占用5G,服務(wù)器socket連接達(dá)到150,這樣系統(tǒng)分析被測系統(tǒng)的模型,受影響指標(biāo)是socket連接數(shù),這樣再調(diào)整發(fā)壓單元的數(shù)量會根據(jù)socket連接數(shù)來作為依據(jù)。
S32:根據(jù)所述受影響的性能指標(biāo)與所述請求的數(shù)量間的關(guān)系建立被測系統(tǒng)的壓力測試模型。
舉例來說,可根據(jù)socket連接數(shù)來作為依據(jù)調(diào)整發(fā)壓單元的數(shù)量。
本實(shí)施例中,步驟S4中根據(jù)所述被測系統(tǒng)的壓力測試模型調(diào)整所 述并發(fā)請求的數(shù)量,直至所述被測系統(tǒng)的壓力達(dá)到極限值,并輸出壓力測試結(jié)果,具體包括如下步驟:
S41:調(diào)整并發(fā)請求的數(shù)量,并檢測所述服務(wù)器的所述受影響的性能指標(biāo)。
舉例來說,受影響的性能指標(biāo)是socket連接數(shù),則不斷地調(diào)整并發(fā)請求的數(shù)量,同時(shí)檢測socket連接數(shù)。
S42:當(dāng)所述受影響的性能指標(biāo)達(dá)到極限值時(shí),停止壓力檢測,并輸出此時(shí)的并發(fā)請求的數(shù)量作為壓力測試的結(jié)果。
舉例來說,通過多次調(diào)整后發(fā)現(xiàn)并發(fā)單元數(shù)再增加,但是被測系統(tǒng)A的每秒處理請求數(shù)達(dá)到10000后不再增加,被測系統(tǒng)socket連接數(shù)也不再增多,說明這時(shí)被測系統(tǒng)達(dá)到一個(gè)性能極限。壓力測試停止,并輸出壓力測試的結(jié)果。
由此可見,本實(shí)施例基于性能指標(biāo)的實(shí)時(shí)監(jiān)控可自適應(yīng)地調(diào)整并發(fā)請求的數(shù)量,從而對系統(tǒng)的壓力進(jìn)行測試。該方法測試效率高,且無需人工操作。
圖3示出了本公開一實(shí)施例提供的一種自適應(yīng)壓力測試的裝置的結(jié)構(gòu)示意圖,如圖3所示,該裝置包括請求并發(fā)單元301、性能檢測單元302、模型建立單元303及壓力調(diào)整單元304。其中:
請求并發(fā)單元301,用于向被測系統(tǒng)中的服務(wù)器并發(fā)預(yù)設(shè)數(shù)量的請求;
性能檢測單元302,用于檢測所述服務(wù)器的多個(gè)性能指標(biāo);
模型建立單元303,用于根據(jù)所述請求的數(shù)量與所述性能指標(biāo),建立被測系統(tǒng)的壓力測試模型;
壓力調(diào)整單元304,根據(jù)所述被測系統(tǒng)的壓力測試模型調(diào)整所述并發(fā)請求的數(shù)量,直至所述被測系統(tǒng)的壓力達(dá)到極限值,并輸出此時(shí)的并發(fā)請求的數(shù)量作為壓力測試結(jié)果。
本實(shí)施例中,所述多個(gè)性能指標(biāo)包括:CPU空閑率、內(nèi)存占用數(shù)、請求處理速度及服務(wù)器socket連接。
本實(shí)施例中,所述模型建立單元303,用于:
調(diào)整所述請求的數(shù)量,并檢測所述多個(gè)性能指標(biāo),獲得所述多個(gè)性能指標(biāo)中受影響的性能指標(biāo);
根據(jù)所述受影響的性能指標(biāo)與所述請求的數(shù)量間的關(guān)系建立被測系統(tǒng)的壓力測試模型。
本實(shí)施例中,所述壓力調(diào)整單元304,用于:
調(diào)整并發(fā)請求的數(shù)量,并檢測所述服務(wù)器的所述受影響的性能指標(biāo);
當(dāng)所述受影響的性能指標(biāo)達(dá)到極限值時(shí),停止壓力檢測,并輸出此時(shí)的并發(fā)請求的數(shù)量作為壓力測試的結(jié)果。
本實(shí)施例中,該裝置還包括輸入單元,用于:
輸入所述被測系統(tǒng)中的服務(wù)器的地址及壓力測試腳本;
其中,所述壓力測試腳本用于向所述被測系統(tǒng)發(fā)送請求。
對于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
應(yīng)當(dāng)注意的是,在本公開的系統(tǒng)的各個(gè)部件中,根據(jù)其要實(shí)現(xiàn)的功能而對其中的部件進(jìn)行了邏輯劃分,但是,本公開不受限于此,可以根據(jù)需要對各個(gè)部件進(jìn)行重新劃分或者組合,例如,可以將一些部件組合為單個(gè)部件,或者可以將一些部件進(jìn)一步分解為更多的子部件。
本公開的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本公開實(shí)施例的系統(tǒng)中的一些或者全部部件的一些或者全部功能。本公開還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本公開的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對本公開進(jìn)行說明而不是對本公開進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本公開可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
以上實(shí)施方式僅適于說明本公開,而并非對本公開的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本公開的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本公開的范疇,本公開的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。