
本申請涉及測試技術,具體地,涉及一種虛擬機的測試方法及裝置。
背景技術:
:jvm(javavirtualmachine,java虛擬機)是可運行面向對象的程序設計語言java代碼的假想計算機。只要根據jvm規(guī)格描述將解釋器移植到特定的計算機上,就能保證經過編譯的任何java代碼能夠在該系統(tǒng)上運行。java虛擬機是一個想象中的機器,在實際的計算機上通過軟件模擬來實現。java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應的指令系統(tǒng)。目前,java虛擬機的應用場景很多,例如,安卓操作系統(tǒng)就提供了java虛擬機的運行環(huán)境,使得安卓操作系統(tǒng)中的多個應用程序可以運行在java虛擬機上;此外,多個電商網站也運行于java虛擬機上。為幫助采用安卓系統(tǒng)的手機操作系統(tǒng)或者電商網站提升性能和產品競爭力、節(jié)省網站運營成本,在進行手機開發(fā)、網站優(yōu)化等活動時,需要對java虛擬機的性能進行測試方法。在現有技術中,有一些手機性能評測方面的應用程序能夠對該應用程序所運行的java虛擬機的性能進行測試,并提供用于反應java虛擬機總體性能的數據供用戶參考。但是發(fā)明人認為,該測試方案僅能提供總體性能數據,不能提供針對虛擬機的設定性能指標數據的測試。技術實現要素:本申請實施例中提供了一種虛擬機的測試方法及裝置,用于解決現有技術中不能提供針對虛擬機的設定性能指標數據的測試的問題。根據本申請實施例的一個方面,提供了一種虛擬機的測試方法,包括:根據第一待測性能指標,從預先創(chuàng)建的測試場景庫中確定各第一待測性能指標對應的測試場景;其中,各測試場景分別包括一條或多條測試程序;在第一虛擬機上分別運行各測試場景的一條或多條測試程序;根據各測試場景的運行參數,確定該第一虛擬機的各個第一待測性能指標對應的數據。根據本申請實施例的另一個方面,提供了一種虛擬機的測試裝置,其特征在于,包括:測試場景確定模塊,用于根據第一待測性能指標,從預先創(chuàng)建的測試場景庫中確定各第一待測性能指標對應的測試場景;其中,各測試場景分別包括一條或多條測試程序;運行模塊,用于在第一虛擬機上分別運行各測試場景的一條或多條測試程序;性能確定模塊,用于根據各測試場景的運行參數,確定該第一虛擬機的各個第一待測性能指標對應的數據。采用本申請實施例中的虛擬機的測試方法,預先創(chuàng)建包括對應于各個性能指標的多個測試場景的測試場景庫,在測試時,能夠根據設置的待測性能指標,從預先創(chuàng)建的測試場景庫中確定各待測性能指標對應的測試場景;并在第一虛擬機上分別運行各測試場景的一條或多條測試程序;最終能夠根據各測試場景的運行參數,確定第一虛擬機的各個待測性能指標對應的數據,從而能夠提供針對虛擬機的設定性能指標數據。附圖說明此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:圖1為本申請實施例所示的測試系統(tǒng)架構示意圖。圖2為本申請實施例一的虛擬機的測試方法的流程圖;圖3為本申請實施例二的虛擬機的測試方法的流程圖;圖4為本申請實施例三所示虛擬機的測試裝置的結構示意圖。具體實施方式為了使本申請實施例中的技術方案及優(yōu)點更加清楚明白,以下結合附圖對本申請的示例性實施例進行進一步詳細的說明,顯然,所描述的實施例僅是本申請的一部分實施例,而不是所有實施例的窮舉。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。在實現本申請的過程中,發(fā)明人發(fā)現,采用現有技術中的虛擬機的測試方法,該測試方案僅能提供總體性能數據,不能根據用戶的需求靈活提供針對虛擬機的多個性能指標數據。針對上述問題,本申請實施例中提供了一種虛擬機的測試方法及裝置,預先創(chuàng)建包括對應于各個性能指標的多個測試場景的測試場景庫,在測試時,能夠根據用戶設置的待測性能指標,從預先創(chuàng)建的測試場景庫中確定各待測性能指標對應的測試場景;并在第一虛擬機上分別運行各測試場景的一條或多條測試程序;最終能夠根據各測試場景的運行參數,確定第一虛擬機的各個待測性能指標對應的數據,從而能夠提供針對虛擬機的設定性能指標數據。在具體實施時,本申請實施例中的虛擬機的測試方法可以運行于圖1所示的系統(tǒng)架構中。如圖1所示,該系統(tǒng)架構包括:硬件底層;在硬件底層之上是操作系統(tǒng)用戶層、或操作系統(tǒng)內核層、或硬件驅動層;在操作系統(tǒng)用戶層、或操作系統(tǒng)內核層、或硬件驅動層之上,可以運行java虛擬機;在java虛擬機上運行各種應用。為達到測試的目的,可以分別運行待測試的java虛擬機1、java虛擬機2、java虛擬機3;在分別運行各個待測試的java虛擬機1時,該各種應用可以是測試人員預先設置的、對應于各種性能指標的測試場景;在具體實施時,可以將分別對應于多種性能指標的測試場景保存至測試場景庫中;更具體地,還可以根據實際需要,在測試場景庫中增加新的測試場景。本申請實施例中的方案可以應用于各種java虛擬機的性能測試場景中,例如,基于安卓開發(fā)的手機操作系統(tǒng)的java虛擬機的性能測試、電商網站運行的java虛擬機的性能測試等。本申請實施例中的方案可以采用各種計算機語言實現,例如,面向對象的程序設計語言java等。實施例一圖2為本申請實施例一的虛擬機的測試方法的流程圖。在本申請實施例中,可以對一臺虛擬機的性能指標數據進行測試。如圖2所示,本申請實施例一的虛擬機的測試方法包括如下步驟:s201,預先創(chuàng)建測試場景庫;該場景庫中包括多個測試場景,各測試場景分別對應于各性能指標;各測試場景分別包括一條或多條測試程序。在具體實施時,可以根據預先確定的多個虛擬機的性能指標,確定分別對應于這些性能指標的測試場景;然后根據對應于這些性能指標的測試場景,確定各測試場景對應的一個或多個測試程序;具體地,該測試程序可以是由開發(fā)人員或測試人員提前編寫的測試程序。具體地,虛擬機的性能指標可以包括多個虛擬機的性能指標,例如,邏輯運算處理能力、整數運算處理能力、浮點運算處理能力、異常處理能力、數據塊的處理能力、硬盤隨機讀取能力、硬盤連續(xù)讀取能力等。為區(qū)分測試場景庫中的多個測試場景,可以為測試場景庫中的各個測試場景分配相應的標識,該標識可以用于在測試場景庫中區(qū)分各測試場景;更具體地,該標識可以分別對應于各個性能指標,例如,對應于整數運算處理能力的測試場景的標識可以為integertest。在具體實施時,場景庫中的每個測試場景可以用于一個性能指標的測試,也可以有多個測試場景對應于一個性能指標;具體地,在測試人員編寫出對應于某一性能指標的新的測試場景時,可以在場景庫中替換原有測試場景,也可以將新的測試場景存儲至場景庫,并分配與該性能指標相對應的新的標識,以 便測試人員能夠區(qū)分原有測試場景和新的測試場景。在具體實施時,場景庫中的各測試場景分別包括一條或多條測試程序;具體地,根據測試場景對應的性能指標的不同,各測試場景包括的測試程序也不相同。例如,對應于整數運算處理能力的測試場景包括兩條測試程序:整形相關的數據的運算能力測試程序,以及與其他類型的數據之間的換算能力測試程序。在具體實施時,隨著性能指標的變化或更新,各測試場景中所包括的測試程序的數量和內容也可以實時更新。具體地,各測試場景包括的一條或多條測試程序均能夠獨立運行的在虛擬機中運行。具體地,在測試時,各測試程序根據自身的代碼邏輯,調用虛擬機提供的相應計算功能;在運行過程中記錄運行參數,并在運行結束后,根據各測試程序在運行時的運行參數,確定虛擬機的相應性能指標數據。具體地,各測試程序在運行時的運行參數可以包括各測試場景的運行時長、cpu率、內存占用率等。在具體實施時,為了使各測試場景所對應的性能指標對總體性能指標的影響系數保持一致,還可以進一步對各個測試場景執(zhí)行歸一化處理,以得到歸一化后的多個測試場景。具體地,可以根據場景庫中多個測試場景的運行參數,對場景庫中多個測試場景執(zhí)行歸一化處理,得到歸一化后的多個測試場景。具體地,執(zhí)行歸一化時依據的運行參數也可以包括各測試場景的運行時長、cpu率、內存占用率等。更具體地,執(zhí)行歸一化處理所依據的運行參數,與前述確定虛擬機的相應性能指標數據時所依據的運行參數通常保持一致。具體地,各測試場景的運行參數,可以是該測試場景包括的測試程序的運行參數之和。在運行參數包括運行時長時,該歸一化處理可以具體包括:在相同測試環(huán)境下,運行該多個測試場景,并記錄該各測試場景的運行時長;取各測試場景的運行時長的最小公倍數s;并將歸一化后的測試場景分別設置為:相應的測 試場景運行n次,n=最小公倍數/該測試場景的運行時長。下面以邏輯運算處理能力、整數運算處理能力、浮點運算處理能力三種測試場景的運行時長的歸一化處理為例,對歸一化處理的具體執(zhí)行過程進行詳細描述,本領域技術人員應當理解,下述示出僅為舉例的目的,并不用于限制本申請。首先,在相同的測試環(huán)境下運行該三個測試場景,并記錄各自的運行時長,具體地,該測試環(huán)境可以包括運行該第一虛擬機的終端的硬件參數相同、終端操作系統(tǒng)及版本號相同等;假設邏輯運算處理能力的運行時長為1秒、整數運算處理能力的運行時長為2秒、浮點運算處理能力的運行時長為7秒;則可以得到1、2、7的公倍數為14;可以修改原有測試場景的運行次數,以得到歸一化后的各個測試場景,歸一化后的各個測試場景分別設置為:將邏輯運算處理能力的原有測試場景運行14/1=14次;將整數運算處理能力的原有測試場景運行14/2=7次;將浮點運算處理能力的原有測試場景運行14/7=2次。在具體實施時,可以對場景庫中全部的測試場景執(zhí)行歸一化處理,也可以僅對場景庫中的部分測試場景執(zhí)行歸一化處理,本申請不作限制。在具體實施時,如果對場景庫中全部的測試場景執(zhí)行歸一化處理,那么在場景庫中增加新的測試場景時,可以重新對全部的測試場景執(zhí)行歸一化處理。s202,獲取第一虛擬機的測試環(huán)境參數,該測試環(huán)境參數包括運行該第一虛擬機的終端的硬件參數,以及該終端下述參數中的任意一種:操作系統(tǒng)用戶層參數、操作系統(tǒng)內核層參數、硬件驅動層的參數。在s202的一種具體實施方式中,可以向用戶(如測試人員)提供用于設置該測試環(huán)境參數的界面,以便用戶根據進行測試的終端的實際參數輸入該測試環(huán)境參數;或者,用戶可以從多種測試環(huán)境參數中選擇與該測試終端實際參數一致的參數。具體地,該硬件參數可以包括的cpu(centralprocessingunit,中央處理器)參數、內存參數等;具體地,cpu參數可以包括以下任意一種或多種參數 的組合:內核結構,主頻,外頻,倍頻,接口,緩存,多媒體指令集,制造工藝,電壓,封裝形式,整數單元和浮點單元等參數;內存參數可以包括以下任意一種或多種參數的組合:內存大小、內存的存取時間等。具體地,該操作系統(tǒng)用戶層參數可以包括下述任意一種或多種的組合:操作系統(tǒng)的類型、操作系統(tǒng)版本號等;具體地,操作系統(tǒng)可以包括手機操作系統(tǒng)和計算機操作系統(tǒng),如windows7、windows8、unix、macos、linux、ios、安卓等;該操作系統(tǒng)內核層參數可以包括內核的類型,如單內核、微內核、外內核、混合內核等。在具體實施時,用戶可以多種方式獲取硬件參數和操作系統(tǒng)用戶層參數、操作系統(tǒng)內核層參數、或硬件驅動層的參數。例如,對于安裝windows操作系統(tǒng)的終端,可以通過查看“我的電腦”的“屬性”獲取cpu型號及參數、內存大小、當前操作系統(tǒng)及版本號;對于移動終端,可以先獲取終端型號,再通過終端型號查詢對應硬件參數和操作系統(tǒng)類型;對于安裝安卓操作系統(tǒng)的移動終端,可以通過“設置”中的“關于本機”了解當前終端的硬件參數和操作系統(tǒng)版本號?;蛘撸€可以通過終端型號查詢對應的硬件參數和操作系統(tǒng)用戶層參數、操作系統(tǒng)內核層參數、或硬件驅動層的參數。在s202的另一種具體實施方式中,還可以通過代碼自動獲取進行測試的終端的實際參數。例如,在java語言中,可以通過system.getproperty(″os.name″)和system.getproperty(″os.version″)函數獲取操作系統(tǒng)類型和版本號,可以通過讀取/sys/devices/system/cpu/目錄下的文件或/proc/meminfo/目錄下的文件系統(tǒng)獲得cpu參數和內存參數。s203,根據該測試環(huán)境參數將第一虛擬機與該測試環(huán)境進行適配。在具體實施時,由于不同操作系統(tǒng)與虛擬機的接口不完全相同,并且提供給虛擬機調用的文件也可能不完全相同;例如,三星手機的安卓操作系統(tǒng)提供給虛擬機調用的方法庫中的方法為100個,而阿里云手機的yunos操作系統(tǒng)提供給虛擬機調用的方法庫中的方法為101個等。因此,為使多個虛擬機在該 測試環(huán)境中正常運行,需要將該虛擬機與該測試環(huán)境進行適配。具體地,可以根據該測試環(huán)境參數,設置待測虛擬機引用相應測試環(huán)境的framework參數。例如,運行虛擬機的終端為三星手機、操作系統(tǒng)為安卓系統(tǒng)時,可以將虛擬機引用的framework環(huán)境參數改為三星手機的framework參數;運行虛擬機的終端為阿里云手機、操作系統(tǒng)為yunos系統(tǒng)時,可以將虛擬機引用的framework環(huán)境參數改為阿里云手機的framework參數。至此,測試系統(tǒng)環(huán)境已搭建完成。s204,根據第一待測性能指標,從預先創(chuàng)建的測試場景庫中確定各第一待測性能指標對應的測試場景;在具體實施時,該第一待測性能指標可以是由用戶設置的;也可以是系統(tǒng)默認的,本申請對此不作限制。具體地,可以向用戶提供設置第一待測性能指標的界面,由用戶根據進行需要測試的性能指標輸入多個性能指標;或者,該界面中可以向用戶提供步驟201中的測試場景庫中提供的測試場景對應的性能指標,供用戶從場景庫中的測試場景對應的性能指標中,選擇一個或多個關注的性能指標進行測試;也可以供用戶選擇場景庫中的多個或全部的測試場景進行測試。在具體實施時,在確定第一待測性能指標后,可以從步驟201創(chuàng)建的測試場景庫中確定各第一待測性能指標對應的測試場景。例如,該待測性能指標為虛擬機的整數運算處理能力,則可以從測試場景庫中確定整數運算處理能力對應的測試場景。在具體實施時,第一待測性能指標可以是一個,也可以是多個,本申請對此不作限制。在具體實施時,步驟204和步驟202-203之間沒有嚴格的時序關系,可以先執(zhí)行步驟202-203,再執(zhí)行步驟204;也可以先執(zhí)行步驟204,再執(zhí)行步驟202-203,還可以并行執(zhí)行步驟204和步驟202-203,本申請對此均不作限制。s205,在第一虛擬機上分別運行各測試場景的一條或多條測試程序;在具體實施時,在步驟204中,從步驟201創(chuàng)建的測試場景庫中確定各第一待測性能指標對應的測試場景之后,就可以順序運行這些待測性能指標對應的測試場景所包括的測試程序。在運行過程中,各測試程序根據自身的代碼邏輯,調用虛擬機提供的相應計算功能;在運行過程中,可以記錄各測試場景對應的運行參數;具體地,該運行參數可以包括各測試場景的運行時長、cpu率、內存占用率等。以運行參數為運行時長,測試場景為整數運算處理能力對應的測試場景為例,該測試場景包括兩條測試程序:整形相關的數據的運算能力測試程序,以及與其他類型的數據之間的換算能力測試程序;則在測試時,可以依次執(zhí)行整形相關的數據的運算能力測試程序,以及與其他類型的數據之間的換算能力測試程序;并記錄這兩條測試程序的運行時長,并將該兩條測試程序的運行時長之和作為整數運算處理能力對應的測試場景的運行時長。s206,根據各測試場景的運行參數,確定該第一虛擬機的各個第一待測性能指標對應的數據。在具體實施時,在步驟205中得到測試場景的運行參數后,可以根據預定的規(guī)則確定虛擬機與該測試場景相應的性能指標對應的數據。在具體實施時,該性能指標對應的數據可以包括該運行參數。例如,該運行參數為運行時長時,該性能指標對應的數據可以以運行時長的方式提供;該運行參數為cpu占用率時,該性能指標對應的數據可以以cpu占用率的方式提供。例如,在步驟205之后,得到虛擬機運行整數運算處理能力測試場景的運行時長為4秒,則可以提供該虛擬機的整數運算處理能力的性能指標對應的數據為4秒。在具體實施時,該性能指標對應的數據還可以包括基于該運行參數,通過預定規(guī)則計算得到的性能指標數據,具體地,可以是一個在預定期間內的數值。例如,在0-100范圍內的一個具體的數值。具體地,該預定規(guī)則可以是用戶根 據該性能指標的經驗數據,將經驗數據中的各個運行參數,或者各期間內的運行參數分別對應于一個具體的數值,在得到待測虛擬機的該運行參數后,查詢相應的具體數值,即得到待測虛擬機的性能指標數據。例如,仍然以運行參數為運行時長,測試場景為整數運算處理能力對應的測試場景為例,在步驟105之前,用戶基于經驗值,確定通常各虛擬機的整數運算處理能力的運行時長從1秒至10秒不等;用戶將運行時長1秒至10秒平均劃分為對應于100分至10分的各檔,具體提供形式可以如下表:運行時長(秒)性能指標數據(0,1]100(1,2][90,100)(2,3][80,90)(3,4][70,80)(4,5][60,70)(5,6][50,60)(6,7][40,50)(7,8][30,40)(8,9][20,30)(9,10][10,20)大于10[0,10)假設在步驟205之后,得到虛擬機運行整數運算處理能力測試場景的運行時長為4秒,則可以查詢上表得到該虛擬機的整數運算處理能力的性能指標數據可以是70;或者,得到虛擬機運行整數運算處理能力測試場景的運行時長為2.3秒,則可以查詢上表得到該虛擬機的整數運算處理能力的性能指標數據可以是約87。在具體實施時,如果第一待測性能指標是多個,則可以依次執(zhí)行各性能指標的測試場景,并依次得到各第一待測性能指標對應的數據。在具體實施時,在到各第一待測性能指標對應的數據之后,可以向用戶顯示該各性能指標對應的數據。具體地,在向用戶顯示之前,還可以進一步根據預定規(guī)則剔除無效數據,例如數據小于預定閾值的數字。具體地,向在用戶顯示之前,還可以進一步根據各第一待測性能指標對應的數據計算得到該虛擬機的總體性能指標數據。具體地,如果在步驟201中對測試場景進行了歸一化處理,則可以直接求取各性能指標對應的數據的平均數,并將該平均數作為總體性能指標數據。至此,本申請實施例已經得到針對虛擬機的多個性能指標數據。采用本申請實施例的虛擬機的測試方法,預先創(chuàng)建包括對應于各個性能指標的多個測試場景的測試場景庫,在測試時,能夠根據用戶設置的待測性能指標,從預先創(chuàng)建的測試場景庫中確定各待測性能指標對應的測試場景;并在虛擬機上分別運行各測試場景的一條或多條測試程序;最終能夠根據各測試場景的運行參數,確定第一虛擬機的各個待測性能指標對應的數據,從而能夠根據用戶的需求靈活提供虛擬機的多個設定性能指標數據。上述實施例一中,示出了對一臺虛擬機進行測試的方法流程。在具體實施時,還可以對多臺虛擬機的性能指標數據進行測試,并將測試結果進行對比分析。下面將結合實施例二來對多臺虛擬機的性能指標數據進行測試,并將測試結果進行對比分析的測試方法流程進行闡述。實施例二圖3為本申請實施例二的虛擬機的測試方法的流程圖。如圖3所示,本申請實施例二的虛擬機的測試方法包括如下步驟:s301,預先創(chuàng)建測試場景庫;該場景庫中的各測試場景分別對應于各性能指標;各測試場景分別包括一條或多條測試程序;在具體實施時,步驟301的具體實施可以參照本申請實施例一中步驟201的實施,重復之處,不再贅述。s302,獲取測試環(huán)境參數,該測試環(huán)境參數包括運行該第一虛擬機的終端的硬件參數,以及該終端下述參數中的任意一種:操作系統(tǒng)用戶層參數、操作系統(tǒng)內核層參數、硬件驅動層的參數;;在具體實施時,步驟302的具體實施可以參照本申請實施例一中步驟202的實施,重復之處,不再贅述。s303,將待測試的多個虛擬機分別與該測試環(huán)境進行適配;在具體實施時,步驟303中,各個虛擬機與該測試環(huán)境的適配的具體實施可以參照本申請實施例一中步驟203的實施,重復之處,不再贅述。應當理解,在具體實施時,可以依次執(zhí)行多個虛擬機與測試環(huán)境的適配,也可以同時執(zhí)行,本申請對此不作限制。s304,根據用戶設置的待測性能指標,從預先創(chuàng)建的測試場景庫中確定各待測性能指標對應的測試場景;在本申請實施例中,為對多個虛擬機進行性能指標的對比,在具體實施時,可以為該多個虛擬機設置相同的多個待測性能指標;該多個待測性能指標可以包括測試場景庫中的部分或全部測試場景,本申請對此不作限制。在具體實施時,步驟304中,用戶設置待測性能指標的具體實施可以參照本申請實施例一中步驟204中相應部分的實施,重復之處,不再贅述。在具體實施時,步驟304中,從預先創(chuàng)建的測試場景庫中確定各待測性能指標對應的測試場景的具體實施也可以參照本申請實施例一中步驟204中相應部分的實施,重復之處,不再贅述。s305,分別在待測試的多個虛擬機上分別運行各測試場景的一條或多條測試程序;在具體實施時,步驟305中,在各虛擬機上分別運行各測試場景的一條或多條測試程序的具體實施可以參照本申請實施例一中步驟205的實施,重復之處,不再贅述。應當理解,在具體實施時,各虛擬機上測試場景的運行順序沒有嚴格的先 后關系,即,可以依次在多個虛擬機上運行各測試場景,也可以在各虛擬機上同時運行某一測試場景;還可以在一個虛擬機上運行完畢所有的測試場景后,再在另一虛擬機上運行所有的測試場景;或者,在一個虛擬機上運行完畢部分測試場景后,再在另一臺虛擬機上運行另一部分測試場景等,本申請對此均不作限制。s306,根據各測試場景的運行參數,分別確定多個虛擬機的各個性能指標數據;在具體實施時,步驟306中,根據各測試場景的運行參數,分別確定多個虛擬機的各個性能指標數據的具體實施可以參照本申請實施例一中步驟206的實施,重復之處,不再贅述。應當理解,為便于比較,在確定各虛擬機的性能指標數據時,可以針對各虛擬機均采用相同的運行參數,例如,各虛擬機均記錄各測試場景的運行時長,或者各虛擬機均記錄各測試場景的cpu占用率,或者各虛擬機均記錄各測試場景的內存占用率等,本申請對此不作限制。s307,將該多個虛擬機的各個性能指標對應的數據分別進行對比,并顯示比較結果。在具體實施時,可以采用本領域常用的多種數據對比方式進行比較。具體地,可以采用列表的形式。例如,在列表中列出各虛擬機的標識、測試的各性能指標的標識,各虛擬機對應的各性能指標對應的數據等;并將結果顯示給用戶進行分析。在具體實施時,還可以采用本領域常用的多種方式直觀顯示各虛擬機之間的性能指標數據的比較結果,例如,突出顯示各虛擬機數據最優(yōu)的性能指標、對各虛擬機按總體性能指標數據從高到低排序等;應當理解,這些實施方式均在本申請的保護范圍之內。在具體實施時,還可以根據比較結果生成評測報告,在報告中,可以提供對各虛擬機的優(yōu)化建議,例如,某一虛擬機的某項性能指標數據較差,可以建 議進行相應性能的優(yōu)化等。至此,已經完成本申請實施例中多臺虛擬機之間的性能數據的對比測試。采用本申請實施例的虛擬機的測試方法,預先創(chuàng)建包括對應于各個性能指標的多個測試場景的測試場景庫,在測試時,能夠根據用戶設置的待測性能指標,從預先創(chuàng)建的測試場景庫中確定各待測性能指標對應的測試場景;并在多臺虛擬機上分別運行各測試場景的一條或多條測試程序;最終能夠根據多虛擬機中各測試場景的運行參數,確定多臺虛擬機的各個性能指標對應的數據,從而能夠實現對多臺虛擬機的性能指標數據的對比分析。基于同一發(fā)明構思,本申請實施例中還提供了一種虛擬機的測試裝置,由于該裝置解決問題的原理與本申請實施例一或二所提供的虛擬機的測試方法相似,因此該裝置的實施可以參見方法的實施,重復之處不再贅述。實施例三圖4為本申請實施例三所示虛擬機的測試裝置的結構示意圖。如圖4所示,根據本申請實施例三所示的虛擬機的測試裝置400,包括:測試場景確定模塊401,用于根據第一待測性能指標,從預先創(chuàng)建的測試場景庫中確定各第一待測性能指標對應的測試場景;其中,各測試場景分別包括一條或多條測試程序;運行模塊402,用于在第一虛擬機上分別運行各測試場景的一條或多條測試程序;性能確定模塊403,用于根據各測試場景的運行參數,確定該第一虛擬機的各個第一待測性能指標對應的數據。在具體實施時,根據本申請實施例三所示的虛擬機的測試裝置,還可以包括:參數獲取模塊,用于獲取第一虛擬機的測試環(huán)境參數;適配模塊,用于根據該測試環(huán)境參數,將該第一虛擬機與該測試環(huán)境進行適配;其中,該測試環(huán)境參數包括運行該第一虛擬機的終端的硬件參數,以及該終端下述參數中的任意一種:操作系統(tǒng)用戶層參數、操作系統(tǒng)內核層參數、硬件驅動層的參數。在具體實施時,適配模塊具體還可以用于根據該測試環(huán)境參數,設置設置 該第一虛擬機引用相應測試環(huán)境的框架framework參數。在具體實施時,測試場景確定模塊,具體可以包括:測試場景確定子模塊,用于根據預先確定的多個第二待測性能指標,確定分別對應于該第二待測性能指標的測試場景;其中,該多個第二待測性能指標包括該第一待測性能指標;測試程序確定子模塊,用于根據該測試場景,確定各測試場景對應的一個或多個測試程序。在具體實施時,該測試場景確定模塊還可以包括:歸一化處理子模塊,用于根據該多個測試場景的運行參數,對該多個測試場景執(zhí)行歸一化處理,得到歸一化后的多個測試場景。在具體實施時,歸一化處理子模塊,具體可以用于在相同測試環(huán)境下,運行該多個測試場景,并記錄該各測試場景的運行時長;取該各測試場景的運行時長的最小公倍數s;將歸一化后的測試場景分別設置為:相應的測試場景運行n次,n=最小公倍數/該測試場景的運行時長。在具體實施時,該適配模塊還可以用于將第二虛擬機與該測試環(huán)境進行適配;該運行模塊,還用于在該第二虛擬機上分別運行各測試場景的一條或多條測試程序;該性能確定模塊,還用于根據各測試場景的運行參數,確定該第二虛擬機的各個第一待測性能指標對應的數據。在具體實施時,根據本申請實施例三所示的虛擬機的測試裝置,還可以包括:對比模塊,用于將該第一虛擬機的各個第一待測性能指標對應的數據與第二虛擬機的各個第一待測性能指標對應的數據,分別進行對比;顯示模塊,用于顯示比較結果。采用本申請實施例的虛擬機的測試裝置,預先創(chuàng)建包括對應于各個性能指標的多個測試場景的測試場景庫,在測試時,能夠根據用戶設置的待測性能指標,從預先創(chuàng)建的測試場景庫中確定各待測性能指標對應的測試場景;并在多臺虛擬機上分別運行各測試場景的一條或多條測試程序;最終能夠根據多虛擬機中各測試場景的運行參數,確定多臺虛擬機的各個性能指標對應的數據,從 而能夠根據用戶的需求靈活提供虛擬機的多個設定性能指標數據,也能夠實現對多臺虛擬機的性能指標數據的對比分析。本領域內的技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。本申請是參照根據本申請實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本申請的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內,則本申請也意圖包含這些改動和變型在內。當前第1頁12