本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種軟件測(cè)試的方法、裝置及系統(tǒng)。
背景技術(shù):
軟件測(cè)試是指在規(guī)定的條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件質(zhì)量,并對(duì)其是否能滿足設(shè)計(jì)要求進(jìn)行評(píng)估的過(guò)程。
現(xiàn)有技術(shù)中,在進(jìn)行軟件測(cè)試時(shí),需要為軟件測(cè)試搭建測(cè)試環(huán)境。在搭建測(cè)試環(huán)境時(shí),一般需要測(cè)試人員自行搭建,這些測(cè)試環(huán)境一般搭建在獨(dú)占的硬件設(shè)備上,該測(cè)試環(huán)境無(wú)法被外部共享。
通過(guò)上述描述可見(jiàn),現(xiàn)有技術(shù)的軟件測(cè)試方案中的測(cè)試環(huán)境主要是搭建在獨(dú)占的硬件設(shè)備上,無(wú)法與外部共享,資源利用率較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種軟件測(cè)試的方法、裝置及系統(tǒng),能夠提高資源的利用率。
第一方面,本發(fā)明實(shí)施例提供了一種軟件測(cè)試的方法,包括:
接收外部輸入的測(cè)試環(huán)境需求信息;
根據(jù)所述測(cè)試環(huán)境需求信息,在云端創(chuàng)建至少一個(gè)虛擬機(jī),在所述至少一個(gè)虛擬機(jī)上搭建測(cè)試環(huán)境;
包括:
接收外部輸入的至少一個(gè)測(cè)試腳本;
從所述至少一個(gè)測(cè)試腳本中,為每個(gè)所述虛擬機(jī)分配對(duì)應(yīng)的所述測(cè)試腳本,實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本。
進(jìn)一步地,所述在所述至少一個(gè)虛擬機(jī)上搭建測(cè)試環(huán)境,包括:
在所述至少一個(gè)虛擬機(jī)上安裝測(cè)試工具;
所述實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本,包括:
實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)上的測(cè)試工具中執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本。
進(jìn)一步地,所述測(cè)試腳本中包括至少一個(gè)測(cè)試用例;
進(jìn)一步包括:接收外部輸入的控制信息;
根據(jù)所述控制信息,控制各個(gè)虛擬機(jī)的測(cè)試腳本的執(zhí)行順序,以及每個(gè)虛擬機(jī)的測(cè)試腳本中至少一個(gè)測(cè)試用例的執(zhí)行順序。
進(jìn)一步地,所述實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本,包括:
根據(jù)每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本,生成每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試任務(wù);
將所述測(cè)試任務(wù)存儲(chǔ)到預(yù)設(shè)的數(shù)據(jù)庫(kù)中,使得每個(gè)虛擬機(jī)中的測(cè)試工具從所述數(shù)據(jù)庫(kù)中獲取對(duì)應(yīng)的測(cè)試任務(wù),并執(zhí)行獲取的測(cè)試任務(wù)。
進(jìn)一步地,在所述從所述至少一個(gè)測(cè)試腳本中,為每個(gè)所述虛擬機(jī)分配對(duì)應(yīng)的所述測(cè)試腳本,實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本之后,進(jìn)一步包括:
實(shí)時(shí)監(jiān)測(cè)每個(gè)虛擬機(jī)的運(yùn)行狀態(tài);
根據(jù)每個(gè)虛擬機(jī)的運(yùn)行狀態(tài),調(diào)度每個(gè)虛擬機(jī)上的測(cè)試腳本的運(yùn)行。
進(jìn)一步地,該方法進(jìn)一步包括:設(shè)置所述測(cè)試環(huán)境的共享接口,使得外部通過(guò)所述共享接口共享所述測(cè)試環(huán)境。
第二方面,本發(fā)明實(shí)施例提供了一種軟件測(cè)試的裝置,包括:
訪問(wèn)單元,用于接收外部輸入的測(cè)試環(huán)境需求信息,接收外部輸入的至少一個(gè)測(cè)試腳本;
云管理單元,用于根據(jù)所述測(cè)試環(huán)境需求信息,在云端創(chuàng)建至少一個(gè)虛擬機(jī),在所述至少一個(gè)虛擬機(jī)上搭建測(cè)試環(huán)境;
測(cè)試管理單元,用于從所述至少一個(gè)測(cè)試腳本中,為每個(gè)所述虛擬機(jī)分配對(duì)應(yīng)的所述測(cè)試腳本,實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本。
進(jìn)一步地,所述云管理單元,在執(zhí)行所述在所述至少一個(gè)虛擬機(jī)上搭建測(cè)試環(huán)境時(shí),用于在所述至少一個(gè)虛擬機(jī)上安裝測(cè)試工具;
所述測(cè)試管理單元,在執(zhí)行所述實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本時(shí),用于實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)上的測(cè)試工具中執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本。
進(jìn)一步地,該裝置進(jìn)一步包括:數(shù)據(jù)庫(kù);
所述測(cè)試管理單元,在執(zhí)行所述實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本時(shí),用于根據(jù)每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本,生成每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試任務(wù),將所述測(cè)試任務(wù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,使得每個(gè)虛擬機(jī)中的測(cè)試工具從所述數(shù)據(jù)庫(kù)中獲取對(duì)應(yīng)的測(cè)試任務(wù),并執(zhí)行獲取的測(cè)試任務(wù);
所述數(shù)據(jù)庫(kù),用于存儲(chǔ)所述測(cè)試管理單元生成的每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試任務(wù)。
進(jìn)一步地,所述測(cè)試腳本中包括至少一個(gè)測(cè)試用例;
進(jìn)一步包括:
接收單元,用于接收外部輸入的控制信息;
控制單元,用于根據(jù)所述控制信息,控制各個(gè)虛擬機(jī)的測(cè)試腳本的執(zhí)行順序,以及每個(gè)虛擬機(jī)的測(cè)試腳本中至少一個(gè)測(cè)試用例的執(zhí)行順序。
進(jìn)一步地,該裝置進(jìn)一步包括:
監(jiān)測(cè)單元,用于實(shí)時(shí)監(jiān)測(cè)每個(gè)虛擬機(jī)的運(yùn)行狀態(tài);
調(diào)度單元,用于根據(jù)每個(gè)虛擬機(jī)的運(yùn)行狀態(tài),調(diào)度每個(gè)虛擬機(jī)上的測(cè)試腳本的運(yùn)行。
進(jìn)一步地,該裝置進(jìn)一步包括:設(shè)置單元,用于設(shè)置所述測(cè)試環(huán)境的共享接口,使得外部通過(guò)所述共享接口共享所述測(cè)試環(huán)境。
第三方面,本發(fā)明實(shí)施例提供了一種軟件測(cè)試的系統(tǒng),包括:
如第二方面中任一所述的軟件測(cè)試的裝置和云端;
所述軟件測(cè)試的裝置與所述云端相連;
所述云端,用于根據(jù)所述測(cè)試環(huán)境需求信息,創(chuàng)建至少一個(gè)虛擬機(jī),在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本。
在本發(fā)明實(shí)施例中,根據(jù)外部輸入的測(cè)試環(huán)境需求信息,在云端通過(guò)虛擬機(jī)搭建出測(cè)試環(huán)境,在每個(gè)虛擬機(jī)的測(cè)試環(huán)境中運(yùn)行對(duì)應(yīng)的測(cè)試腳本來(lái)說(shuō)實(shí)現(xiàn)軟件測(cè)試,由于測(cè)試環(huán)境是在云端通過(guò)虛擬機(jī)來(lái)實(shí)現(xiàn)的,需要使用該測(cè)試環(huán)境的用戶可以訪問(wèn)云端來(lái)使用該測(cè)試環(huán)境,實(shí)現(xiàn)了測(cè)試環(huán)境的共享,提高了資源的利用率。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一實(shí)施例提供的一種軟件測(cè)試的方法的流程圖;
圖2是本發(fā)明一實(shí)施例提供的另一種軟件測(cè)試的方法的流程圖;
圖3是本發(fā)明一實(shí)施例提供的一種軟件測(cè)試的裝置的示意圖;
圖4是本發(fā)明一實(shí)施例提供的另一種軟件測(cè)試的裝置的示意圖;
圖5是本發(fā)明一實(shí)施例提供的一種軟件測(cè)試的系統(tǒng)的示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實(shí)施例提供了一種軟件測(cè)試的方法,該方法可以包括以下步驟:
步驟101:接收外部輸入的測(cè)試環(huán)境需求信息;
步驟102:根據(jù)所述測(cè)試環(huán)境需求信息,在云端創(chuàng)建至少一個(gè)虛擬機(jī),在所述至少一個(gè)虛擬機(jī)上搭建測(cè)試環(huán)境;
步驟103:接收外部輸入的至少一個(gè)測(cè)試腳本;
步驟104:從所述至少一個(gè)測(cè)試腳本中,為每個(gè)所述虛擬機(jī)分配對(duì)應(yīng)的所述測(cè)試腳本,實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本。
在本發(fā)明實(shí)施例中,根據(jù)外部輸入的測(cè)試環(huán)境需求信息,在云端通過(guò)虛擬機(jī)搭建出測(cè)試環(huán)境,在每個(gè)虛擬機(jī)的測(cè)試環(huán)境中運(yùn)行對(duì)應(yīng)的測(cè)試腳本來(lái)說(shuō)實(shí)現(xiàn)軟件測(cè)試,由于測(cè)試環(huán)境是在云端通過(guò)虛擬機(jī)來(lái)實(shí)現(xiàn)的,需要使用該測(cè)試環(huán)境的用戶可以訪問(wèn)云端來(lái)使用該測(cè)試環(huán)境,實(shí)現(xiàn)了測(cè)試環(huán)境的共享,提高了資源的利用率。
在本發(fā)明一實(shí)施例中,所述在所述至少一個(gè)虛擬機(jī)上搭建測(cè)試環(huán)境,包括:
在所述至少一個(gè)虛擬機(jī)上安裝測(cè)試工具;
所述實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本,包括:
實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)上的測(cè)試工具中執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本。
在本實(shí)施例中,將測(cè)試工具部署到每個(gè)虛擬機(jī)上,通過(guò)測(cè)試工具來(lái)運(yùn)行測(cè)試腳本,可以利用測(cè)試工具實(shí)現(xiàn)自動(dòng)化軟件測(cè)試。這里的測(cè)試工具可以是autotest工具。
為了更靈活地進(jìn)行測(cè)試,在本發(fā)明一實(shí)施例中,所述測(cè)試腳本中包括至少一個(gè)測(cè)試用例;
進(jìn)一步包括:接收外部輸入的控制信息;
根據(jù)所述控制信息,控制各個(gè)虛擬機(jī)的測(cè)試腳本的執(zhí)行順序,以及每個(gè)虛擬機(jī)的測(cè)試腳本中至少一個(gè)測(cè)試用例的執(zhí)行順序。
在本實(shí)施例中,用戶可以通過(guò)輸入控制信息來(lái)實(shí)現(xiàn)所需要的測(cè)試過(guò)程。舉例來(lái)說(shuō),在云端創(chuàng)建了兩個(gè)虛擬機(jī),分別是虛擬機(jī)A和虛擬機(jī)B,虛擬機(jī)A對(duì)應(yīng)測(cè)試腳本A,虛擬機(jī)B對(duì)應(yīng)測(cè)試腳本B,測(cè)試腳本A中包括測(cè)試用例A和測(cè)試用例B。用戶可以輸入控制信息,控制虛擬機(jī)A先執(zhí)行測(cè)試腳本A,再控制虛擬機(jī)B執(zhí)行測(cè)試腳本B,還可以控制虛擬機(jī)A先執(zhí)行測(cè)試用例B,再執(zhí)行測(cè)試用例A??傊脩艨梢酝ㄟ^(guò)控制信息來(lái)實(shí)現(xiàn)所需要的測(cè)試過(guò)程。特別是,在測(cè)試腳本之間需要進(jìn)行數(shù)據(jù)交互時(shí),通過(guò)控制信息可以保證軟件測(cè)試的正常進(jìn)行。舉例來(lái)說(shuō),測(cè)試腳本B需要使用測(cè)試腳本A的測(cè)試結(jié)果,這是如果先執(zhí)行測(cè)試腳本B,就可能導(dǎo)致軟件測(cè)試不準(zhǔn)確。通過(guò)控制信息可以避免該情況的發(fā)生。
在本發(fā)明一實(shí)施例中,所述實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本,包括:
根據(jù)每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本,生成每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試任務(wù);
將所述測(cè)試任務(wù)存儲(chǔ)到預(yù)設(shè)的數(shù)據(jù)庫(kù)中,使得每個(gè)虛擬機(jī)中的測(cè)試工具從所述數(shù)據(jù)庫(kù)中獲取對(duì)應(yīng)的測(cè)試任務(wù),并執(zhí)行獲取的測(cè)試任務(wù)。
在本發(fā)明實(shí)施例中,將每個(gè)虛擬機(jī)的測(cè)試腳本轉(zhuǎn)換為測(cè)試任務(wù),每個(gè)虛擬機(jī)中的測(cè)試工具自動(dòng)獲取對(duì)應(yīng)的測(cè)試任務(wù)來(lái)執(zhí)行。通過(guò)測(cè)試任務(wù)可以使得虛擬機(jī)能夠更加準(zhǔn)確地完成軟件測(cè)試。測(cè)試任務(wù)中可以規(guī)定當(dāng)前測(cè)試任務(wù)的執(zhí)行時(shí)間,當(dāng)前任務(wù)對(duì)應(yīng)的測(cè)試腳本或者測(cè)試腳本中的測(cè)試用例,當(dāng)前測(cè)試任務(wù)需要收集哪些測(cè)試結(jié)果。通過(guò)測(cè)試任務(wù)可以使得測(cè)試過(guò)程更加精準(zhǔn)地完成。這里的數(shù)據(jù)庫(kù)可以是Mysql數(shù)據(jù)庫(kù)。這里的測(cè)試工具可以是autotest工具,autotest工具可以通過(guò)autoserv進(jìn)程從數(shù)據(jù)庫(kù)中獲取對(duì)應(yīng)的測(cè)試任務(wù)。另外,測(cè)試任務(wù)可以通過(guò)虛擬機(jī)的IP地址來(lái)標(biāo)識(shí)。每個(gè)虛擬機(jī)中的測(cè)試工具可以根據(jù)測(cè)試任務(wù)對(duì)應(yīng)的IP地址來(lái)獲取對(duì)應(yīng)的測(cè)試任務(wù)。具體地,在云端創(chuàng)建了至少一個(gè)虛擬機(jī)之后,獲取每個(gè)虛擬機(jī)的IP地址。在生成測(cè)試任務(wù)時(shí),通過(guò)IP地址來(lái)標(biāo)識(shí)每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試任務(wù)。
為了使得測(cè)試過(guò)程更加流場(chǎng),在本發(fā)明一實(shí)施例中,在所述從所述至少一個(gè)測(cè)試腳本中,為每個(gè)所述虛擬機(jī)分配對(duì)應(yīng)的所述測(cè)試腳本,實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本之后,進(jìn)一步包括:
實(shí)時(shí)監(jiān)測(cè)每個(gè)虛擬機(jī)的運(yùn)行狀態(tài);
根據(jù)每個(gè)虛擬機(jī)的運(yùn)行狀態(tài),調(diào)度每個(gè)虛擬機(jī)上的測(cè)試腳本的運(yùn)行。
這里的虛擬機(jī)的運(yùn)行狀態(tài)包括:虛擬機(jī)的物理資源的使用情況,具體地,虛擬機(jī)的物理資源的使用情況可以包括:虛擬機(jī)的內(nèi)存的使用率,虛擬機(jī)的CPU的使用率、虛擬機(jī)的硬盤(pán)的使用率等。
在虛擬機(jī)運(yùn)行測(cè)試腳本的過(guò)程中,隨著虛擬機(jī)的運(yùn)行狀態(tài)的變化,可能會(huì)影響測(cè)試的速度或者測(cè)試的準(zhǔn)確度,通過(guò)本發(fā)明實(shí)施例可以對(duì)每個(gè)虛擬機(jī)進(jìn)行調(diào)度,具體地,可以停止運(yùn)行當(dāng)前虛擬機(jī)上的當(dāng)前測(cè)試腳本,或者,停止運(yùn)行當(dāng)前虛擬機(jī)上的當(dāng)前測(cè)試腳本的某個(gè)測(cè)試用例,或者,開(kāi)始運(yùn)行當(dāng)前虛擬機(jī)上的測(cè)試腳本,或者,開(kāi)始運(yùn)行當(dāng)前虛擬機(jī)上的當(dāng)前測(cè)試腳本的某個(gè)測(cè)試用例。
為了方便共享測(cè)試環(huán)境,在本發(fā)明一實(shí)施例中,該方法進(jìn)一步包括:設(shè)置所述測(cè)試環(huán)境的共享接口,使得外部通過(guò)所述共享接口共享所述測(cè)試環(huán)境。
在本實(shí)施例中,用戶可以用戶該共享接口使用該測(cè)試環(huán)境。用戶通過(guò)該共享接口無(wú)需重新搭建測(cè)試環(huán)境,只需輸入需要的測(cè)試用例即可實(shí)現(xiàn)相應(yīng)的軟件測(cè)試。當(dāng)用戶需要對(duì)測(cè)試過(guò)程進(jìn)行控制時(shí),可以輸入對(duì)應(yīng)的控制信息來(lái)控制測(cè)試過(guò)程。
如圖2所示,本發(fā)明實(shí)施例提供了一種軟件測(cè)試的方法,該方法可以包括以下步驟:
步驟201:接收外部輸入的測(cè)試環(huán)境需求信息。
具體地,測(cè)試環(huán)境需求信息可以包括:虛擬機(jī)的操作系統(tǒng)、以及虛擬機(jī)的網(wǎng)絡(luò)需求、硬盤(pán)需求、內(nèi)存需求、CPU需求等物理資源的需求。
步驟202:根據(jù)測(cè)試環(huán)境需求信息,在云端創(chuàng)建至少一個(gè)虛擬機(jī),在至少一個(gè)虛擬機(jī)上安裝測(cè)試工具。
具體地,根據(jù)測(cè)試環(huán)境需求信息向云端申請(qǐng)?zhí)摂M機(jī),云端可以根據(jù)測(cè)試環(huán)境需求信息選擇對(duì)應(yīng)的鏡像,根據(jù)尋找出的鏡像創(chuàng)建對(duì)應(yīng)的虛擬機(jī)。
在至少一個(gè)虛擬機(jī)上搭建測(cè)試環(huán)境,包括:在每個(gè)虛擬機(jī)上安裝測(cè)試工具,該測(cè)試工具可以是autotest工具。具體地,可以添加autotest工具的客戶端,而autotest工具的服務(wù)端可以部署在服務(wù)器上。
在至少一個(gè)虛擬機(jī)上搭建測(cè)試環(huán)境,還可以包括:根據(jù)測(cè)試環(huán)境需求信息,在虛擬機(jī)上安裝操作系統(tǒng),或者應(yīng)用軟件,為后續(xù)的測(cè)試做準(zhǔn)備。
步驟203:接收外部輸入的至少一個(gè)測(cè)試腳本,其中,測(cè)試腳本中包括至少一個(gè)測(cè)試用例。
具體地,用戶可以根據(jù)測(cè)試需要設(shè)置對(duì)應(yīng)的測(cè)試腳本。
步驟204:從至少一個(gè)測(cè)試腳本中,為每個(gè)虛擬機(jī)分配對(duì)應(yīng)的測(cè)試腳本。
另外,還可以設(shè)置每個(gè)虛擬機(jī)需要收集的信息,包括:需要收集的執(zhí)行測(cè)試腳本的測(cè)試結(jié)果,執(zhí)行測(cè)試腳本的過(guò)程中參數(shù)的數(shù)據(jù)等。
步驟205:接收外部輸入的控制信息。
步驟206:根據(jù)控制信息,控制各個(gè)虛擬機(jī)的測(cè)試腳本的執(zhí)行順序,以及每個(gè)虛擬機(jī)的測(cè)試腳本中至少一個(gè)測(cè)試用例的執(zhí)行順序。
步驟207:實(shí)現(xiàn)在各個(gè)虛擬機(jī)上的測(cè)試工具中,按照各個(gè)虛擬機(jī)的測(cè)試腳本的執(zhí)行順序,執(zhí)行各個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本,按照每個(gè)虛擬機(jī)的測(cè)試腳本中至少一個(gè)測(cè)試用例的執(zhí)行順序,執(zhí)行每個(gè)虛擬機(jī)的測(cè)試腳本中至少一個(gè)測(cè)試用例。
在本發(fā)明實(shí)施例中,在云端創(chuàng)建虛擬機(jī),利用虛擬機(jī)搭建所需要的測(cè)試環(huán)境,節(jié)省了安裝和維護(hù)測(cè)試環(huán)境的人力和物理資源,與測(cè)試工具結(jié)合,進(jìn)行自動(dòng)化測(cè)試,降低測(cè)試的人力成本,縮短了測(cè)試周期。
如圖3所示,本發(fā)明實(shí)施例提供了一種軟件測(cè)試的裝置,包括:
訪問(wèn)單元301,用于接收外部輸入的測(cè)試環(huán)境需求信息,接收外部輸入的至少一個(gè)測(cè)試腳本;
云管理單元302,用于根據(jù)所述測(cè)試環(huán)境需求信息,在云端創(chuàng)建至少一個(gè)虛擬機(jī),在所述至少一個(gè)虛擬機(jī)上搭建測(cè)試環(huán)境;
測(cè)試管理單元303,用于從所述至少一個(gè)測(cè)試腳本中,為每個(gè)所述虛擬機(jī)分配對(duì)應(yīng)的所述測(cè)試腳本,實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本。
訪問(wèn)單元可以為用戶提供訪問(wèn)界面,可以通過(guò)瀏覽器來(lái)實(shí)現(xiàn),通過(guò)訪問(wèn)單元,用戶可以輸入測(cè)試腳本、測(cè)試環(huán)境需求信息、控制信息,也可以獲取測(cè)試結(jié)果。
測(cè)試管理單元可以用于分析測(cè)試系統(tǒng)資源之間的要求,以及發(fā)送在云端創(chuàng)建虛擬機(jī)的命令和在虛擬機(jī)安裝測(cè)試工具的命令。
在本發(fā)明一實(shí)施例中,所述云管理單元,在執(zhí)行所述在所述至少一個(gè)虛擬機(jī)上搭建測(cè)試環(huán)境時(shí),用于在所述至少一個(gè)虛擬機(jī)上安裝測(cè)試工具;
所述測(cè)試管理單元,在執(zhí)行所述實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本時(shí),用于實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)上的測(cè)試工具中執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本。
如圖4所示,在本發(fā)明一實(shí)施例中,該裝置進(jìn)一步包括:數(shù)據(jù)庫(kù)401;
所述測(cè)試管理單元303,在執(zhí)行所述實(shí)現(xiàn)在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本時(shí),用于根據(jù)每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本,生成每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試任務(wù),將所述測(cè)試任務(wù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,使得每個(gè)虛擬機(jī)中的測(cè)試工具從所述數(shù)據(jù)庫(kù)中獲取對(duì)應(yīng)的測(cè)試任務(wù),并執(zhí)行獲取的測(cè)試任務(wù);
所述數(shù)據(jù)庫(kù)401,用于存儲(chǔ)所述測(cè)試管理單元303生成的每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試任務(wù)。
每個(gè)虛擬機(jī)的測(cè)試工具可以根據(jù)數(shù)據(jù)庫(kù)進(jìn)行測(cè)試任務(wù)的調(diào)度。具體地,當(dāng)測(cè)試工具為autotest工具時(shí),可以通過(guò)autoserv進(jìn)程進(jìn)行測(cè)試任務(wù)的調(diào)度。
在本發(fā)明一實(shí)施例中,所述測(cè)試腳本中包括至少一個(gè)測(cè)試用例;
進(jìn)一步包括:
接收單元,用于接收外部輸入的控制信息;
控制單元,用于根據(jù)所述控制信息,控制各個(gè)虛擬機(jī)的測(cè)試腳本的執(zhí)行順序,以及每個(gè)虛擬機(jī)的測(cè)試腳本中至少一個(gè)測(cè)試用例的執(zhí)行順序;
在本發(fā)明一實(shí)施例中,該裝置進(jìn)一步包括:
監(jiān)測(cè)單元,用于實(shí)時(shí)監(jiān)測(cè)每個(gè)虛擬機(jī)的運(yùn)行狀態(tài);
調(diào)度單元,用于根據(jù)每個(gè)虛擬機(jī)的運(yùn)行狀態(tài),調(diào)度每個(gè)虛擬機(jī)上的測(cè)試腳本的運(yùn)行;
在本發(fā)明一實(shí)施例中,該裝置進(jìn)一步包括:設(shè)置單元,用于設(shè)置所述測(cè)試環(huán)境的共享接口,使得外部通過(guò)所述共享接口共享所述測(cè)試環(huán)境。
如圖5所示,本發(fā)明實(shí)施例提供了一種軟件測(cè)試的系統(tǒng),包括:
本發(fā)明實(shí)施例中任一的軟件測(cè)試的裝置501和云端502;
所述軟件測(cè)試的裝置501與所述云端502相連;
所述云端502,用于根據(jù)所述測(cè)試環(huán)境需求信息,創(chuàng)建至少一個(gè)虛擬機(jī),在每個(gè)所述虛擬機(jī)的測(cè)試環(huán)境中,執(zhí)行每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本。
在本發(fā)明一實(shí)施例中,云端設(shè)置有共享接口,用戶可以通過(guò)該共享接口共享測(cè)試環(huán)境。云端的各個(gè)虛擬機(jī)之間可以進(jìn)行數(shù)據(jù)交互。
云端包括虛擬機(jī),在虛擬機(jī)中可以安裝有測(cè)試工具,測(cè)試工具可以執(zhí)行所在的虛擬機(jī)對(duì)應(yīng)的測(cè)試腳本,實(shí)現(xiàn)測(cè)試過(guò)程。
當(dāng)軟件測(cè)試的裝置的數(shù)據(jù)庫(kù)中存儲(chǔ)有測(cè)試管理單元生成的每個(gè)虛擬機(jī)對(duì)應(yīng)的測(cè)試任務(wù)。云端的每個(gè)虛擬機(jī)的測(cè)試工具可以從數(shù)據(jù)庫(kù)中獲取所在的虛擬機(jī)對(duì)應(yīng)的測(cè)試任務(wù),并執(zhí)行獲取的測(cè)試任務(wù),實(shí)現(xiàn)測(cè)試過(guò)程。
當(dāng)軟件測(cè)試的裝置包括控制單元時(shí),云端根據(jù)控制單元發(fā)來(lái)的控制各個(gè)虛擬機(jī)的測(cè)試腳本的執(zhí)行順序的控制命令,運(yùn)行各個(gè)虛擬機(jī)上的測(cè)試腳本;云端根據(jù)控制單元發(fā)來(lái)的每個(gè)虛擬機(jī)的測(cè)試腳本中至少一個(gè)測(cè)試用例的執(zhí)行順序的控制命令,運(yùn)行每個(gè)虛擬機(jī)上的測(cè)試用例。
當(dāng)軟件測(cè)試的裝置包括調(diào)度單元時(shí),云端的每個(gè)虛擬機(jī)根據(jù)調(diào)度單元發(fā)來(lái)的調(diào)度命令運(yùn)行對(duì)應(yīng)的測(cè)試腳本。舉例來(lái)說(shuō),調(diào)度單元發(fā)出停止虛擬機(jī)A運(yùn)行測(cè)試腳本A的命令,則云端接收到該命令后,根據(jù)該命令使虛擬機(jī)A停止運(yùn)行測(cè)試腳本A。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過(guò)程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見(jiàn)本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
本發(fā)明各個(gè)實(shí)施例至少具有如下有益效果:
1、在本發(fā)明實(shí)施例中,根據(jù)外部輸入的測(cè)試環(huán)境需求信息,在云端通過(guò)虛擬機(jī)搭建出測(cè)試環(huán)境,在每個(gè)虛擬機(jī)的測(cè)試環(huán)境中運(yùn)行對(duì)應(yīng)的測(cè)試腳本來(lái)說(shuō)實(shí)現(xiàn)軟件測(cè)試,由于測(cè)試環(huán)境是在云端通過(guò)虛擬機(jī)來(lái)實(shí)現(xiàn)的,需要使用該測(cè)試環(huán)境的用戶可以訪問(wèn)云端來(lái)使用該測(cè)試環(huán)境,實(shí)現(xiàn)了測(cè)試環(huán)境的共享,提高了資源的利用率。
2、在本發(fā)明實(shí)施例中,在云端創(chuàng)建虛擬機(jī),利用虛擬機(jī)搭建所需要的測(cè)試環(huán)境,節(jié)省了安裝和維護(hù)測(cè)試環(huán)境的人力和物理資源,與測(cè)試工具結(jié)合,進(jìn)行自動(dòng)化測(cè)試,降低測(cè)試的人力成本,縮短了測(cè)試周期。
需要說(shuō)明的是,在本文中,諸如第一和第二之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)〃·····”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)中。
最后需要說(shuō)明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說(shuō)明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。