專利名稱:一種性能測試方法、測試平臺及測試機的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及測試技術(shù)領(lǐng)域,尤其涉及一種性能測試方法、測試平臺及測試機。
背景技術(shù):
在對服務器進行性能測試時,主要是使用不同工具或方法對服務器的各個方面進行性能測試,例如CPU性能測試、磁盤讀寫能力測試等。針對同一服務器的不同測試,需要使用不同工具在該服務器上分別進行測試,然后收集該服務器的不同測試工具所產(chǎn)生的測試數(shù)據(jù),最后通過人工錄入測試數(shù)據(jù)并將所述測試數(shù)據(jù)轉(zhuǎn)換為圖表的方式來呈現(xiàn)測試結(jié)果。但是這種測試過程費時費力,需要測試人員不停地去監(jiān)視測試過程和狀態(tài),在完成某一個硬件測試之后需要手動換另外一個工具進行另外一個硬件的測試。
當需要對多個服務器進行對比測試時,要依次對每個服務器進行測試并進行數(shù)據(jù)的收集和對比,這時需要在不同的服務器上運行同一工具,通過定制測試參數(shù),監(jiān)控測試過程,并將各自的測試結(jié)果進行收集,且在收集到測試數(shù)據(jù)之后人工將其有用的字段進行拆分,用以錄入到同一個位置進行對比。
可見,當大量服務器需要進行大量的不同方面的測試時,由于存在工具種類繁多、測試時間長、人為干預性能測試過程、單一服務器上需要多種工具的重復測試、各種工具之間輸入輸出差異性極大、結(jié)果分析需要從大量數(shù)據(jù)中進行挑選、測試類型多樣(包含硬件測試,性能測試,應用測試等)等弊端,且對于不同的測試此過程需要重復多次,對于測試人員來說,這是復雜且循環(huán)的操作,某一步的操作失誤將會直接導致測試結(jié)果產(chǎn)生錯誤,從而影響接下來的決策,且當多個服務器進行對比分析時不能方便的進行統(tǒng)計?;诠ぞ叻睆投鄻印⑷斯じ深A過多,從而浪費了大量的人力和花費了大量的測試時間,并導致測試數(shù)據(jù)出錯率較高,測試結(jié)果不直觀。發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例的主要目的在于提供一種性能測試方法、測試平臺及測試機,以實現(xiàn)減少測試所花費的人力和時間、提高測試結(jié)果準確度和直觀度的目的。
為實現(xiàn)上述目的,本發(fā)明實施例提供了一種性能測試方法,包括:
確定測試方式;
當所述測試方式為單機獨立測試時,向測試機推送客戶端腳本,以使測試機利用所述客戶端腳本部署測試客戶端;
發(fā)送測試命令至所述測試客戶端,以使所述測試客戶端根據(jù)接收的測試命令下載對應的工具包并運行下載的工具包中的各個測試工具;
接收所述測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果。
優(yōu)選地,上述方法還包括:
當所述測試方式為多機聯(lián)合測試時,分別向測試機和各個負載注入機器推送客戶端腳本,以使測試機和各個負載注入機器分別利用獲取的客戶端腳本部署測試客戶端;
發(fā)送測試命令至測試機的測試客戶端,以使測試機的測試客戶端根據(jù)接收的測試命令下載對應的工具包;并分別發(fā)送測試命令至各個負載注入機器,以使各個負載注入機器根據(jù)接收的測試命令下載對應的工具包;
待接收到測試機和所有負載注入機器通過測試客戶端發(fā)送的下載完成信息后,同時向測試機和各個負載注入機器發(fā)送開始命令,以使各個負載注入機器的測試客戶端利用下載工具包中的測試工具同時向測試機注入測試壓力且使測試機的測試客戶端利用注入的測試壓力運行下載工具包中的測試工具;
分別接收測試機和各個負載注入機器利用測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果。
優(yōu)選地,上述方法還包括:
利用獲取的測試機的登陸信息與對應的測試機建立連接;
利用獲取的各個負載注入機器的登錄信息分別與對應的各個負載注入機器建立連接。
優(yōu)選地,在上述方法中,所述測試命令包括測試包的UR L地址、工具名稱和設(shè)置參數(shù)。
優(yōu)選地,上述方法還包括:
對同一測試機在不同配置下的測試結(jié)果進行對比,以獲取第一對比結(jié)果;
對同一配置的至少兩個測試機的測試結(jié)果進行對比,以獲取第二對比結(jié)果。
優(yōu)選地,在上述方法中,所述測試結(jié)果的輸出方式包括:單一數(shù)值輸出、多數(shù)值一維輸出、多數(shù)值二維輸出。
本發(fā)明實施例還提供了一種性能測試方法,包括:
獲取測試平臺推送的客戶端腳本,并利用所述客戶端腳本在本地部署測試客戶端;
接收測試平臺發(fā)送的測試命令,并根據(jù)接收的測試命令下載對應的工具包;
在測試方式為單機獨立測試時,直接運行下載的工具包中的各個測試工具;
將通過運行測試工具所產(chǎn)生的測試結(jié)果返回至測試平臺。
優(yōu)選地,上述方法還包括:
當所述測試方式為多機聯(lián)合測試時,當接收到測試平臺發(fā)送的開始命令后,利用各個負載注入機器注入的測試壓力運行下載工具包中的測試工具。
優(yōu)選地,在上述方法中,通過執(zhí)行監(jiān)聽端口命令以打開所述測試客戶端的監(jiān)聽端口來接收測試平臺發(fā)送的測試命令或開始命令。
優(yōu)選地,在上述方法中,所述測試命令包括工具包的URL地址、工具名稱和設(shè)置參數(shù);
所述根據(jù)接收的測試命令下載對應的工具包包括:
從接收測試命令中的URL地址下載對應的工具包。
本發(fā)明實施例還提供了 一種測試平臺,包括:
確定單元,用于確定測試方式;
第一推送單元,用于當所述確定單元確定的測試方式為單機獨立測試時,向測試機推送客戶端腳本,以使測試機利用所述客戶端腳本部署測試客戶端;
第一發(fā)送單元,用于發(fā)送測試命令至所述測試客戶端,以使所述測試客戶端根據(jù)接收的測試命令下載對應的工具包并運行下載的工具包中的各個測試工具;
第一接收單元,用于接收所述測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果。
優(yōu)選地,上述測試平臺還包括:
第二推送單元,用于當所述確定單元確定的測試方式為多機聯(lián)合測試時,分別向測試機和各個負載注入機器推送客戶端腳本,以使測試機和各個負載注入機器分別利用獲取的客戶端腳本部署測試客戶端;
第二發(fā)送單元,用于發(fā)送測試命令至測試機的測試客戶端,以使測試機的測試客戶端根據(jù)接收的測試命令下載對應的工具包;并分別發(fā)送測試命令至各個負載注入機器,以使各個負載注入機器根據(jù)接收的測試命令下載對應的工具包;
第二接收單元,用于接收測試機和所有負載注入機器通過測試客戶端發(fā)送的下載完成信息;
第三發(fā)送單元,用于接收到測試機和所有負載注入機器通過測試客戶端發(fā)送的下載完成信息后,同時向測試機和各個負載注入機器發(fā)送開始命令,以使各個負載注入機器的測試客戶端利用下載工具包中的測試工具同時向測試機注入測試壓力且使測試機的測試客戶端利用注入的測試壓力運行下載工具包中的測試工具;
第三接收單元,用于分別接收測試機和各個負載注入機器利用測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果。
優(yōu)選地,上述測試平臺還包括:
第一連接單元,用于利用獲取的測試機的登陸信息與對應的測試機建立連接;
第二連接單元,用于利用獲取的各個負載注入機器的登錄信息分別與對應的各個負載注入機器建立連接。
優(yōu)選地,所述測試命令包括測試包的URL地址、工具名稱和設(shè)置參數(shù)。
優(yōu)選地,上述測試平臺還包括:
第一結(jié)果對比單元,用于對同一測試機在不同配置下的測試結(jié)果進行對比,以獲取第一對比結(jié)果;
第二結(jié)果對比單元,用于對同一配置的至少兩個測試機的測試結(jié)果進行對比,以獲取第二對比結(jié)果。
優(yōu)選地,所述測試結(jié)果的輸出方式包括:單一數(shù)值輸出、多數(shù)值一維輸出、多數(shù)值二維輸出。
本發(fā)明實施例還提供了一種測試機,包括:
獲取單元,用于獲取測試平臺推送的客戶端腳本,并利用所述客戶端腳本在本地部署測試客戶端;
下載單元,用于接收測試平臺發(fā)送的測試命令,并根據(jù)接收的測試命令下載對應的工具包;
第一運行單元,用于在測試方式為單機獨立測試時,直接運行下載的工具包中的各個測試工具;
結(jié)果返回單元,用于將通過運行測試工具所產(chǎn)生的測試結(jié)果返回至測試平臺。
優(yōu)選地,上述測試機還包括:
第二運行單元,用于當所述測試方式為多機聯(lián)合測試時,當接收到測試平臺發(fā)送的開始命令后,利用各個負載注入機器注入的測試壓力運行下載工具包中的測試工具。
優(yōu)選地,上述測試機還包括:
監(jiān)聽單元,用于通過執(zhí)行監(jiān)聽端口命令以打開所述測試客戶端的監(jiān)聽端口來接收測試平臺發(fā)送的測試命令或開始命令。
優(yōu)選地,所述測試命令包括工具包的URL地址、工具名稱和設(shè)置參數(shù);所述下載單元,具體用于從接收測試命令中的URL地址下載對應的工具包。
本發(fā)明實施例性能測試方法、測試平臺及測試機,通過向測試機推送客戶端腳本,以使測試機利用所述客戶端腳本在本地部署測試客戶端,然后測試機利用測試平臺下發(fā)的測試命令下載測試工具,待下載完成后,測試機運行各個測試工具并將測試結(jié)果上傳給測試平臺?;谏鲜鲆?guī)范化的自動測試流程,大大節(jié)約了測試所花費的人力物力,并減少了人為錯誤對測試結(jié)果產(chǎn)生的影響。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例性能測試方法的實施例1的流程示意圖2為本發(fā)明實施例性能測試方法的實施例2的流程示意圖3為本發(fā)明實施例測試平臺的實施例1的結(jié)構(gòu)示意圖4為本發(fā)明實施例測試平臺的實施例2的結(jié)構(gòu)示意圖5為本發(fā)明實施例測試機的實施例1的結(jié)構(gòu)示意圖6為本發(fā)明實施例測試機的實施例2的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例主要是利用一個測試平臺(可與測試機等進行通信的一種設(shè)備)實現(xiàn)對不同測試機的相同或不同方面的測試,測試人員只需通過測試平臺選擇需被測試的測試機和對測試機進行測試的測試工具,即可自動對測試機進行相關(guān)測試,并將測試機返回的測試結(jié)果進行自動整理,以圖表等方式對測試結(jié)果進行直觀輸出。
本發(fā)明實施例適用于各類測試機的測試,所述測試機可以是服務器也可以是其它被測機器或設(shè)備,當所述測試機為服務器時,為了實現(xiàn)對服務器的自動測試,首先需要完成測試前的準備工作。本發(fā)明實施例的測試平臺主要是利用資產(chǎn)信息管理功能實現(xiàn)例如服務器的加入、服務器配置信息收集等功能。
所述資產(chǎn)信息管理功能包括但不限于以下三個功能模塊。
1、服務器信息管理模塊:主要是對加入測試平臺中的服務器進行管理,其中包含服務器的基本信息,如服務器的用戶名、密碼、機器型號,資產(chǎn)號等信息。利用該功能模塊可在測試平臺中對各個服務器的基本信息進行添加、修改和刪除等操作,以實現(xiàn)對服務器基本信息的管理。
2、服務器硬件配置管理模塊:主要是對服務器的配置信息進行管理,所述配置信息主要是服務器的組件信息,如cpu型號和數(shù)量,內(nèi)存的型號和數(shù)量,硬盤的型號和數(shù)量,主板型號,raid (Redundant Arrays of Inexpensive Disks,磁盤陣列)卡型號等。這些信息主要是由下述硬件信息收集模塊在服務器上線的時候進行收集的。
3、硬件信息收集模塊:此模塊在有服務器上線時運行一次,即服務器與測試平臺第一次建立連接時,將服務器的內(nèi)部組件信息收集,并存儲在數(shù)據(jù)庫中。該功能模塊主要是通過讀取所述服務器信息管理模塊中的用戶名和密碼實現(xiàn)測試平臺與對應的服務器建立連接,然后測試平臺將收集腳本推送至測試機即目標服務器,通過在目標服務器上運行所述收集腳本以實現(xiàn)收集目標服務器的組件信息的目的,目標服務器再將所收集的組件信息返回給所述硬件信息收集模塊,所述硬件信息收集模塊將獲取的組件信息整理后存入測試平臺的數(shù)據(jù)庫中。
參見圖1所示,圖1為本發(fā)明實施例提供的一種性能測試方法的實施例1的流程示意圖,實現(xiàn)該方法的步驟包括:
步驟101:測試平臺確定測試方式。
步驟102:當所述測試方式為單機獨立測試時,測試平臺向測試機推送客戶端腳本。
步驟103:測試機獲取測試平臺推送的客戶端腳本,并利用所述客戶端腳本在本地部署測試客戶端。
測試任務開始后,測試平臺通過向需要被測試的測試機推送一個客戶端腳本,測試機獲取到該客戶端腳本后,會利用該客戶端腳本在本地測試機上自動安裝一個測試客戶端。
步驟104:測試平臺發(fā)送測試命令至所述測試客戶端,測試客戶端接收測試平臺發(fā)送的測試命令,并根據(jù)接收的測試命令下載對應的工具包。
在本實施例中,當測試機安裝完測試客戶端后,測試客戶端會向測試平臺返回一個安裝完成信息,以告知測試平臺已成功在測試機上安裝了測試客戶端,此時,待測試平臺接收到測試機發(fā)送的安裝完成信息后,會發(fā)送一個攜帶測試工具相關(guān)信息的測試命令至測試客戶端,其中,所述測試命令包括工具包的URL地址(UniformResource Locator,統(tǒng)一資源定位符,又稱網(wǎng)頁地址)、工具名稱和設(shè)置參數(shù),所述URL地址是測試平臺中存儲該工具包的地址,所述工具名稱是該工具包中包含的各個測試工具的名稱,所述設(shè)置參數(shù)是各個測試工具所設(shè)定的相關(guān)參數(shù)。當測試客戶端接收到該測試命令后會解析該測試命令,并從測試命令中攜帶的URL地址中下載包含至少一個測試工具的工具包。
舉例說明,當需要利用geekbench工具考察CPU和內(nèi)存系統(tǒng)的運算能力、以及利用iozone工具測試磁盤的讀寫能力時,測試平臺會將geekbench工具和iozone工具作為一個工具包,并將攜帶該工具包的存儲地址(URL地址)、geekbench工具的名稱和相關(guān)參數(shù)、以及iozone工具的名稱和相關(guān)參數(shù)的測試命令下發(fā)給測試機上的測試客戶端,以便測試客戶端訪問測試平臺上的這個URL地址來下載相應的工具包。
需要說明的是,本發(fā)明實施例中的測試平臺具有測試管理功能,所述測試管理功能包括但不限于以下5個功能模塊。
1、任務管理模塊:主要用于管理測試任務的下發(fā)(推送客戶端腳本、下發(fā)測試命令等操作)、測試過程狀態(tài)查詢、測試結(jié)果存儲及輸出等功能。
2、測試工具管理模塊:主要是對測試平臺所支持的測試工具進行管理,例如對geekbench工具、iozone工具等測試工具的管理,該管理功能主要包括對測試工具的基礎(chǔ)信息(測試工具的名稱、功能、類型、介紹、使用方法等)的管理;還包含工具包的url地址的管理,以便在測試客戶端接收到測試命令時將工具包從網(wǎng)絡上下載到本地運行等;本模塊還支持對測試平臺中的測試工具進行添加、修改和刪除等操作。
3、測試工具模板管理模塊:每個測試工具可包括多個測試工具模板,例如不同的測試參數(shù)便對應不同的測試工具模板,又例如采用一次性測試與采用循環(huán)測試也屬于同一測試工具的不同測試工具模板。其中,對于某一測試工具的不同測試工具模板,某些測試參數(shù)和部署方式經(jīng)常是保持不變的,那將這種經(jīng)常不變的部分作為一個固定的模塊來運作,將需要經(jīng)常改動的部分設(shè)定為可選或是可設(shè)定選項,這將很大程度上簡化測試過程的復雜性,并通過測試工具模板可以對測試工具的標準化起到一定的規(guī)范作用;本模塊還支持對測試平臺中的測試工具模板進行添加、修改和刪除等操作。
4、測試模板管理模塊:主要是對各個測試工具模板進行整合以形成一個測試模板,一個測試模板可以包含多個測試工具模板,每個測試模板中的測試工具就可以作為一個工具包以供測試客戶端下載。這樣就可以制定一個測試任務,這個任務由一個測試模板來定義,示例如下:
(I)、選取某個測試工具的一個測試工具模板作為一個測試模板,以設(shè)定次數(shù)重復測試測試機,依某種指定的算法取得多次測試的值,并計算多次測試值的平均值。
(2)、選取一種測試工具的多個測試工具模板作為一個測試模板,或從不同測試工具中分別選取一個或多個測試工具模板作為一個測試模板。例如將對服務器的硬件性能測試、網(wǎng)絡測試、硬盤讀寫能力測試等打包成一個測試模板,只要在測試客戶端側(cè)執(zhí)行一次該打包的測試模板,該測試模板中的所有測試項會按順序依次執(zhí)行并生成測試結(jié)果。
5、測試過程管理模塊:主要是在測試過程中對測試的中間狀態(tài)進行管理,例如中間過程的IOg輸出,中間狀態(tài)的查尋,測試的終止,暫停,重啟等操作。
步驟105:待測試客戶端成功下載所述工具包后,利用所述測試客戶端直接運行下載的工具包中的各個測試工具,并當測試結(jié)束后,將通過運行測試工具所產(chǎn)生的測試結(jié)果返回至測試平臺。
在本實施例中,測試客戶端同時或是依次運行工具包中的各項測試工具,待全部測試完成后,返回包含各項測試的總的測試結(jié)果;或是每執(zhí)行完一個測試工具便向測試平臺返回一個測試結(jié)果,直到將全部測試結(jié)果發(fā)送至測試平臺為止。
步驟106:測試平臺接收并保存所述測試客戶端返回的測試結(jié)果。
本發(fā)明實施例性能測試方法,當采用單機獨立測試時,只向測試機推送客戶端腳本,以使測試機利用所述客戶端腳本在本地部署測試客戶端,然后測試機利用測試平臺下發(fā)的測試命令下載測試工具,待下載完成后,測試機運行各個測試工具并將測試結(jié)果上傳給測試平臺?;谏鲜鲆?guī)范化的自動測試流程,大大節(jié)約了測試所花費的人力物力,并減少了人為錯誤對測試結(jié)果產(chǎn)生的影響。
參見圖2所示,圖2為本發(fā)明實施例提供的一種性能測試方法的實施例2的流程示意圖,實現(xiàn)該方法的步驟包括,包括:
步驟201:測試平臺確定測試方式;當所述測試方式為單機獨立測試時,執(zhí)行步驟202,當所述測試方式為多機聯(lián)合測試時,執(zhí)行步驟208。
步驟202:測試平臺利用獲取的測試機的登陸信息與對應的測試機建立連接。
假設(shè)測試機為服務器,由于所述服務器信息管理模塊中預先存儲了各個服務器的基本信息,該基本信息中包括服務器的用戶名和密碼等信息,將用戶名和密碼作為測試平臺與測試機建立連接的登錄信息,待測試平臺接收到管理員輸入的用戶名和密碼便可實現(xiàn)測試平臺與測試機間的ssh連接。
步驟203:測試平臺向測試機推送客戶端腳本。
步驟204:測試機獲取測試平臺推送的客戶端腳本,并利用所述客戶端腳本在本地部署測試客戶端,待部署完成后利用測試客戶端向測試平臺反饋部署完成信息。
步驟205:當測試平臺接收到測試客戶端發(fā)送的部署完成信息后,測試平臺發(fā)送測試命令至所述測試客戶端,測試客戶端接收測試平臺發(fā)送的測試命令,并根據(jù)接收的測試命令下載對應的工具包。
步驟206:待測試客戶端成功下載所述工具包后,利用所述測試客戶端直接運行下載的工具包中的各個測試工具,并當測試結(jié)束后,將通過運行測試工具所產(chǎn)生的測試結(jié)果返回至測試平臺。
步驟207:測試平臺接收并保存所述測試客戶端返回的測試結(jié)果。
步驟208:測試平臺利用獲取的測試機的登陸信息與對應的測試機建立連接,并利用獲取的各個負載注入機器的登錄信息分別與對應的各個負載注入機器建立連接。
假設(shè)各個負載注入機器也均為服務器,由于所述服務器信息管理模塊中預先存儲了各個服務器的基本信息,該基本信息中包括服務器的用戶名和密碼等信息,將用戶名和密碼作為測試平臺與負載注入機器建立連接的登錄信息,待測試平臺接收到管理員輸入的用戶名和密碼便可實現(xiàn)測試平臺與對應的負載注入機器間的ssh連接。
步驟209:當測試平臺與測試機和各個負載注入機器均連接成功后,測試平臺分別向測試機和各個負載注入機器推送客戶端腳本。
步驟210:測試機和各個負載注入機器分別利用獲取的客戶端腳本在本地部署測試客戶端,待部署完成后分別利用部署的測試客戶端向測試平臺反饋部署完成信息。
步驟211:當測試平臺接收到測試機的測試客戶端反饋的部署完成信息后,便發(fā)送相應的測試命令至測試機的測試客戶端,測試機的測試客戶端根據(jù)接收的測試命令下載對應的工具包;且當測試平臺接收到負載注入機器的測試客戶端反饋的部署完成信息后,便發(fā)送相應的測試命令至負載注入機器的測試客戶端,各個負載注入機器的測試客戶端根據(jù)接收的測試命令下載對應的工具包。
所述測試命令包括工具包的URL地址、工具名稱和設(shè)置參數(shù);當測試機或是負載注入機器根據(jù)接收的測試命令下載對應的測試工具時,主要是從接收測試命令中的URL地址下載對應的測試工具。
步驟212:當測試機或負載注入機器利用安裝的測試客戶端成功下載對應的工具包后,便分別向測試平臺反饋下載完成信息。
步驟213:待接收到測試機和所有負載注入機器通過測試客戶端發(fā)送的全部下載完成信息后,同時向測試機和各個負載注入機器發(fā)送開始命令,各個負載注入機器的測試客戶端接收到所述開始命令后利用下載工具包中的測試工具同時向測試機注入測試壓力,且測試機的測試客戶端接收到所述開始命令后利用注入的測試壓力運行下載工具包中的測試工具。
部署在測試機或者負載注入機器上的測試客戶端是一個能夠接受測試平臺命令、并在接受命令后可自主的完成制定工作的軟件。在本實施步驟213中,主要是對測試機進行聯(lián)合壓力測試,例如:利用多個負載注入機器同時訪問一臺測試機以對該測試機進行聯(lián)合測試,假設(shè)測試項目包括:數(shù)據(jù)庫壓力測試,web節(jié)點壓力測試,計算能力壓力測試等,各個負載注入機器分別從測試平臺下載包含以上三項測試內(nèi)容的負載注入軟件,待接收到測試平臺發(fā)送的開始命令后開始進行聯(lián)合測試,即同時向測試機發(fā)起數(shù)據(jù)庫壓力測試,web節(jié)點壓力測試,計算能力壓力測試。所述數(shù)據(jù)庫壓力測試即為各個負載注入機器同時訪問測試機上的數(shù)據(jù)庫以測試數(shù)據(jù)庫的吞吐性能;所述web節(jié)點壓力測試即為各個負載注入機器同時訪問測試機上的某一網(wǎng)址,以測試網(wǎng)絡性能;計算能力壓力測試即為利用各個負載注入機器同時向測試機發(fā)送相關(guān)數(shù)據(jù),使得測試機利用這些數(shù)據(jù)進行大量復雜的計算,以考察CPU和內(nèi)存系統(tǒng)的計算能力。待測試機被各個負載注入機器注入了例如數(shù)據(jù)庫壓力測試,web節(jié)點壓力測試,計算能力壓力測試等測試信息后,由于測試機也下載了對應的測試工具,在各個負載注入機器聯(lián)合向測試機注入測試壓力時,測試機運行下載的測試工具便可產(chǎn)生聯(lián)合測試所產(chǎn)生的測試結(jié)果。需要說明是,各個負載注入機器的作用是通過測試客戶端及下載的測試工具使測試機盡量多的產(chǎn)生流量以增加測試機的壓力,在一臺測試機上可能同時運行不同的測試項目。
步驟214:當完成壓力注入測試后,測試機和所有負載注入機器分別通過測試客戶端向測試平臺反饋通過運行測試工具所產(chǎn)生的測試結(jié)果。
步驟215:測試平臺分別接收并保存測試機和各個負載注入機器利用測試客戶端返回的測試結(jié)果。
此外,所述測試客戶端設(shè)置有監(jiān)聽端口,通過執(zhí)行監(jiān)聽端口命令以打開所述測試客戶端的監(jiān)聽端口來接收測試平臺發(fā)送的測試命令或開始命令。
另外,本發(fā)明實施例的測試平臺還包括結(jié)果分析出圖管理功能,主要是對測試數(shù)據(jù)進行分析,以幫助測試人員分析哪些方面是測試機的瓶頸或性能提升的關(guān)鍵,從而確定新測試的測試機與以往測試機的性能差別、或同一批次的不同測試機間的性能差異等,以利用分析結(jié)果決策測試機的升級策略或改進方案。
第一、對同一測試機在不同配置下的測試結(jié)果進行對比,以獲取第一對比結(jié)果。具體的,例如將該測試機的歷史測試數(shù)據(jù)與當前獲取的測試數(shù)據(jù)進行對比分析,由于歷史數(shù)據(jù)與當前數(shù)據(jù)對應的服務器的配置是有所區(qū)別的,分析不同配置下所產(chǎn)生的不同測試結(jié)果,可以幫助測試人員分析哪些方面是測試機的技術(shù)瓶頸或是指示哪些是性能提升的關(guān)鍵因素,由對比結(jié)果決策測試機的升級策略或確定新測試的服務器與以往測試的服務器的性倉泛差另1J等。
第二、對同一配置的至少兩個測試機的測試結(jié)果進行對比,以獲取第二對比結(jié)果。具體的,通過對同一配置的各個測試機進行測試結(jié)果的對比,分析測試數(shù)據(jù)的差異,當數(shù)據(jù)差異較大時,分析導致該差異的具體原因。
需要說明的是,本發(fā)明實施例需為測試工具進行標準化處理,使標準測試工具以插件的形式嵌入整個系統(tǒng)中,將測試工具進行封裝,使其輸入輸出都能夠統(tǒng)一標準。測試工具以壓縮包的形式添加入系統(tǒng)中,壓縮包中包含測試工具、輸入處理腳本、以及結(jié)果處理腳本三個部分組成。
利用所述輸入處理腳本可使測試人員在測試平臺對測試模式進行設(shè)定,即測試模板中包含此工具使用的參數(shù)和相關(guān)控制信息,用戶可以在測試平臺中對參數(shù)進行設(shè)定和修改。
由測試平臺將測試工具發(fā)送到需要測試的測試機上,并在測試機上部署測試客戶端,測試客戶端將設(shè)定參數(shù)與測試工具進行結(jié)合,進行定制化和標準化的測試過程,整個測試過程中測試人員可以查看工具的運行狀態(tài),并可實時查看測試輸出狀態(tài)。
利用結(jié)果處理腳本可使測試人員在測試平臺對測試結(jié)果進行分析,以將需要的信息進行歸類處理。目前所述測試結(jié)果的輸出方式包括:單一數(shù)值輸出(某一測試工具對應的測試結(jié)果)、多數(shù)值一維輸出(多個測試工具對應的多個測試結(jié)果同時輸出,每個測試結(jié)果間沒有關(guān)聯(lián)性)、多數(shù)值二維輸出(多個測試工具對應的多個測試結(jié)果之間有關(guān)聯(lián),以二維數(shù)組的方式出現(xiàn)),且輸出的測試結(jié)果以圖表等方式顯示。
本發(fā)明實施例性能測試方法,當采用多機聯(lián)合測試時,分別向測試機和各個負載注入機器推送客戶端腳本,使測試機和各個負載注入機器利用所述客戶端腳本分別在本地部署測試客戶端,并利用測試平臺下發(fā)的測試命令分別下載對應的測試工具,使測試機利用各個負載注入機器同時注入的測試壓力進行測試,從而在測試機產(chǎn)生大量流量時測試各個部件的性能指標。
此外,基于硬件測試有多種工具可進行選擇,而不同的測試工具,其輸入和輸出的差異性極大,本發(fā)明實施例將其輸入輸出規(guī)范成某種格式,從而可在測試平臺中可對其進行統(tǒng)一調(diào)度和管理。
參見圖3所示,圖3為本發(fā)明實施例提供的一種測試平臺的實施例1的結(jié)構(gòu)示意圖,包括:
確定單元31,用于確定測試方式;第一推送單元32,用于當所述確定單元確定的測試方式為單機獨立測試時,向測試機推送客戶端腳本,以使測試機利用所述客戶端腳本部署測試客戶端;第一發(fā)送單元33,用于發(fā)送測試命令至所述測試客戶端,以使所述測試客戶端根據(jù)接收的測試命令下載對應的工具包并運行下載的工具包中的各個測試工具;第一接收單元34,用于接收所述測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果。
參見圖4所示,圖4為本發(fā)明實施例提供的一種測試平臺的實施例2的結(jié)構(gòu)示意圖,在上述測試平臺實施例1的基礎(chǔ)上,所述測試平臺還包括:
第二推送單元41,用于當所述確定單元確定的測試方式為多機聯(lián)合測試時,分別向測試機和各個負載注入機器推送客戶端腳本,以使測試機和各個負載注入機器分別利用獲取的客戶端腳本部署測試客戶端;第二發(fā)送單元42,用于發(fā)送測試命令至測試機的測試客戶端,以使測試機的測試客戶端根據(jù)接收的測試命令下載對應的工具包;并分別發(fā)送測試命令至各個負載注入機器,以使各個負載注入機器根據(jù)接收的測試命令下載對應的工具包;第二接收單元43,用于接收測試機和所有負載注入機器通過測試客戶端發(fā)送的下載完成信息;第三發(fā)送單元44,用于接收到測試機和所有負載注入機器通過測試客戶端發(fā)送的下載完成信息后,同時向測試機和各個負載注入機器發(fā)送開始命令,以使各個負載注入機器的測試客戶端利用下載工具包中的測試工具同時向測試機注入測試壓力且使測試機的測試客戶端利用注入的測試壓力運行下載工具包中的測試工具;第三接收單元45,用于分別接收測試機和各個負載注入機器利用測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果。
在確定測試方式前,還需要與測試機和各個負載注入機器建立連接,所述測試平臺還包括:
第一連接單元46,用于利用獲取的測試機的登陸信息與對應的測試機建立連接;第二連接單元47,用于利用獲取的各個負載注入機器的登錄信息分別與對應的各個負載注入機器建立連接。
另外,測試平臺還需要對測試結(jié)果進行分析,所述測試平臺還包括:
第一結(jié)果對比單元48,用于對同一測試機在不同配置下的測試結(jié)果進行對比,以獲取第一對比結(jié)果;第二結(jié)果對比單元49,用于對同一配置的至少兩個測試機的測試結(jié)果進行對比,以獲取第二對比結(jié)果。
其中,所述測試命令包括測試包的URL地址、工具名稱和設(shè)置參數(shù)。
其中,所述測試結(jié)果的輸出方式包括但不限于以下三種方式:單一數(shù)值輸出、多數(shù)值一維輸出、多數(shù)值二維輸出。
參見圖5所示,圖5為本發(fā)明實施例提供的一種測試機的實施例1的結(jié)構(gòu)示意圖,包括:
獲取單元51,用于獲取測試平臺推送的客戶端腳本,并利用所述客戶端腳本在本地部署測試客戶端;下載單元52,用于接收測試平臺發(fā)送的測試命令,并根據(jù)接收的測試命令下載對應的工具包;第一運行單元53,用于在測試方式為單機獨立測試時,直接運行下載的工具包中的各個測試工具;結(jié)果返回單元54,用于將通過運行測試工具所產(chǎn)生的測試結(jié)果返回至測試平臺。
參見圖6所示,圖6為本發(fā)明實施例提供的一種測試機的實施例2的結(jié)構(gòu)示意圖,在上述測試機實施例1的基礎(chǔ)上,所述測試機還包括:
第二運行單元61,用于當所述測試方式為多機聯(lián)合測試時,當接收到測試平臺發(fā)送的開始命令后,利用各個負載注入機器注入的測試壓力運行下載工具包中的測試工具。監(jiān)聽單元62,用于通過執(zhí)行監(jiān)聽端口命令以打開所述測試客戶端的監(jiān)聽端口來接收測試平臺發(fā)送的測試命令或開始命令。
其中,所述測試命令包括工具包的URL地址、工具名稱和設(shè)置參數(shù);所述下載單元52,具體用于從接收測試命令中的URL地址下載對應的工具包。
本發(fā)明實施例測試平臺及測試機,當采用單機獨立測試時,向測試機推送客戶端腳本,以使測試機利用所述客戶端腳本在本地部署測試客戶端,然后測試機利用測試平臺下發(fā)的測試命令下載測試工具,待下載完成后,測試機運行各個測試工具并將測試結(jié)果上傳給測試平臺。基于上述規(guī)范化的自動測試流程,大大節(jié)約了測試所花費的人力物力,并減少了人為錯誤對測試結(jié)果產(chǎn)生的影響。
此外,基于硬件測試有多種工具可進行選擇,而不同的測試工具,其輸入和輸出的差異性極大,本發(fā)明實施例將其輸入輸出規(guī)范成某種格式,從而可在測試平臺中可對其進行統(tǒng)一調(diào)度和管理。
通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實施例方法中的全部或部分步驟可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務器,或者諸如媒體網(wǎng)關(guān)等網(wǎng)絡通信設(shè)備,等等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于設(shè)備及系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上所描述的設(shè)備及系統(tǒng)實施例僅僅是示意性的,其中作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程 、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1.一種性能測試方法,其特征在于,包括: 確定測試方式; 當所述測試方式為單機獨立測試時,向測試機推送客戶端腳本,以使測試機利用所述客戶端腳本部署測試客戶端; 發(fā)送測試命令至所述測試客戶端,以使所述測試客戶端根據(jù)接收的測試命令下載對應的工具包并運行下載的工具包中的各個測試工具; 接收所述測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當所述測試方式為多機聯(lián)合測試時,分別向測試機和各個負載注入機器推送客戶端腳本,以使測試機和各個負載注入機器分別利用獲取的客戶端腳本部署測試客戶端; 發(fā)送測試命令至測試機的測試客戶端,以使測試機的測試客戶端根據(jù)接收的測試命令下載對應的工具包;并分別發(fā)送測試命令至各個負載注入機器,以使各個負載注入機器根據(jù)接收的測試命令下載對應的工具包; 待接收到測試機和所有負載注入機器通過測試客戶端發(fā)送的下載完成信息后,同時向測試機和各個負載注入機器發(fā)送開始命令,以使各個負載注入機器的測試客戶端利用下載工具包中的測試工具同時向測試機注入測試壓力且使測試機的測試客戶端利用注入的測試壓力運行下載工具包中的測試工具; 分別接收測試機和各個負載注入機器利用測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 利用獲取的測試機的登陸信息與對應的測試機建立連接; 利用獲取的各個負載注入機器的登錄信息分別與對應的各個負載注入機器建立連接。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述測試命令包括測試包的URL地址、工具名稱和設(shè)置參數(shù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 對同一測試機在不同配置下的測試結(jié)果進行對比,以獲取第一對比結(jié)果; 對同一配置的至少兩個測試機的測試結(jié)果進行對比,以獲取第二對比結(jié)果。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述測試結(jié)果的輸出方式包括:單一數(shù)值輸出、多數(shù)值一維輸出、多數(shù)值二維輸出。
7.一種性能測試方法,其特征在于,包括: 獲取測試平臺推送的客戶端腳本,并利用所述客戶端腳本在本地部署測試客戶端; 接收測試平臺發(fā)送的測試命令,并根據(jù)接收的測試命令下載對應的工具包; 在測試方式為單機獨立測試時,直接運行下載的工具包中的各個測試工具; 將通過運行測試工具所產(chǎn)生的測試結(jié)果返回至測試平臺。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述方法還包括: 當所述測試方式為多機聯(lián)合測試時,當接收到測試平臺發(fā)送的開始命令后,利用各個負載注入機器注入的測試壓力運行下載工具包中的測試工具。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,通過執(zhí)行監(jiān)聽端口命令以打開所述測試客戶端的監(jiān)聽端口來接收測試平臺發(fā)送的測試命令或開始命令。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述測試命令包括工具包的URL地址、工具名稱和設(shè)置參數(shù); 所述根據(jù)接收的測試命令下載對應的工具包包括: 從接收測試命令中的URL地址下載對應的工具包。
11.一種測試平臺,其特征在于,包括: 確定單元,用于確定測試方式; 第一推送單元,用于當所述確定單元確定的測試方式為單機獨立測試時,向測試機推送客戶端腳本,以使測試機利用所述客戶端腳本部署測試客戶端; 第一發(fā)送單元,用于發(fā)送測試命令至所述測試客戶端,以使所述測試客戶端根據(jù)接收的測試命令下載對應的工具包并運行下載的工具包中的各個測試工具; 第一接收單元,用于接收所述測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果O
12.根據(jù)權(quán)利要求11所述的測試平臺,其特征在于,所述測試平臺還包括: 第二推送單元,用于當所述確定單元確定的測試方式為多機聯(lián)合測試時,分別向測試機和各個負載注入機器推送客戶端腳本,以使測試機和各個負載注入機器分別利用獲取的客戶端腳本部署測試客戶端; 第二發(fā)送單元,用于發(fā)送測試命令至測試機的測試客戶端,以使測試機的測試客戶端根據(jù)接收的測試命令下載對應的工具包;并分別發(fā)送測試命令至各個負載注入機器,以使各個負載注入機器根據(jù)接收的測試命令下載對應的工具包; 第二接收單元,用于接收測試機和所有負載注入機器通過測試客戶端發(fā)送的下載完成信息; 第三發(fā)送單元,用于接收到測試機和所有負載注入機器通過測試客戶端發(fā)送的下載完成信息后,同時向測試機和各個負載注入機器發(fā)送開始命令,以使各個負載注入機器的測試客戶端利用下載工具包中的測試工具同時向測試機注入測試壓力且使測試機的測試客戶端利用注入的測試壓力運行下載工具包中的測試工具; 第三接收單元,用于分別·接收測試機和各個負載注入機器利用測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果。
13.根據(jù)權(quán)利要求12所述的測試平臺,其特征在于,所述測試平臺還包括: 第一連接單元,用于利用獲取的測試機的登陸信息與對應的測試機建立連接; 第二連接單元,用于利用獲取的各個負載注入機器的登錄信息分別與對應的各個負載注入機器建立連接。
14.根據(jù)權(quán)利要求11或12所述的測試平臺,其特征在于,所述測試命令包括測試包的URL地址、工具名稱和設(shè)置參數(shù)。
15.根據(jù)權(quán)利要求11所述的測試平臺,其特征在于,所述測試平臺還包括: 第一結(jié)果對比單元,用于對同一測試機在不同配置下的測試結(jié)果進行對比,以獲取第一對比結(jié)果; 第二結(jié)果對比單元,用于對同一配置的至少兩個測試機的測試結(jié)果進行對比,以獲取第二對比結(jié)果。
16.根據(jù)權(quán)利要求1所述的測試平臺,其特征在于,所述測試結(jié)果的輸出方式包括:單一數(shù)值輸出、多數(shù)值一維輸出、多數(shù)值二維輸出。
17.—種測試機,其特征在于,包括: 獲取單元,用于獲取測試平臺推送的客戶端腳本,并利用所述客戶端腳本在本地部署測試客戶端; 下載單元,用于接收測試平臺發(fā)送的測試命令,并根據(jù)接收的測試命令下載對應的工具包; 第一運行單元,用于在測試方式為單機獨立測試時,直接運行下載的工具包中的各個測試工具; 結(jié)果返回單元,用于將通過運行測試工具所產(chǎn)生的測試結(jié)果返回至測試平臺。
18.根據(jù)權(quán)利要求17所述的測試機,其特征在于,所述測試機還包括: 第二運行單元,用于當所述測試方式為多機聯(lián)合測試時,當接收到測試平臺發(fā)送的開始命令后,利用各個負載注入機器注入的測試壓力運行下載工具包中的測試工具。
19.根據(jù)權(quán)利要求18所述的測試機,其特征在于,所述測試機還包括: 監(jiān)聽單元,用于通過執(zhí)行監(jiān)聽端口命令以打開所述測試客戶端的監(jiān)聽端口來接收測試平臺發(fā)送的測試命令或開始命令。
20.根據(jù)權(quán)利要求19所述的測試機,其特征在于,所述測試命令包括工具包的URL地址、工具名稱和設(shè)置參數(shù); 所述下載單元,具體 用于從接收測試命令中的URL地址下載對應的工具包。
全文摘要
本發(fā)明公開了一種性能測試方法,包括確定測試方式;當所述測試方式為單機獨立測試時,向測試機推送客戶端腳本,以使測試機利用所述客戶端腳本部署測試客戶端;發(fā)送測試命令至所述測試客戶端,以使所述測試客戶端根據(jù)接收的測試命令下載對應的工具包并運行下載的工具包中的各個測試工具;接收所述測試客戶端返回的通過運行測試工具所產(chǎn)生的測試結(jié)果。本發(fā)明還公開了一種測試平臺和測試機。
文檔編號G06F11/22GK103186444SQ20131012972
公開日2013年7月3日 申請日期2013年4月15日 優(yōu)先權(quán)日2013年4月15日
發(fā)明者劉宇航, 彭毅 申請人:北京搜狐新時代信息技術(shù)有限公司