專利名稱:一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明屬于軟件自動(dòng)化測(cè)試領(lǐng)域,具體是一種面向分布式系統(tǒng)自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法。
背景技術(shù):
近年來,軟件規(guī)模不斷擴(kuò)大,復(fù)雜度不斷增加,軟件質(zhì)量和可靠性受到越來越多的重視。目前,軟件測(cè)試技術(shù)是保證軟件質(zhì)量的最直接、最有效的手段。但是對(duì)于一些航天控制軟件、大型武器裝備軟件等安全苛刻性軟件,由于其代碼量通常為百萬行數(shù)量級(jí),系統(tǒng)功能非常復(fù)雜,因此測(cè)試用例數(shù)量龐大,測(cè)試工作非常耗時(shí),而且對(duì)于上述類型的系統(tǒng)軟件會(huì)進(jìn)行多次回歸測(cè)試,只依靠人工測(cè)試會(huì)耗費(fèi)太多的人力、物力。由于回歸測(cè)試中用例是完全設(shè)計(jì)好的,測(cè)試期望的結(jié)果也是完全可以預(yù)料的,這就使得由軟件代替人工操作,完成對(duì)被測(cè)試系統(tǒng)的輸入,并且對(duì)輸出進(jìn)行檢驗(yàn)的軟件自動(dòng)化測(cè)試成為可能。若將回歸測(cè)試自動(dòng)運(yùn)行,可以讓測(cè)試人員從繁瑣和重復(fù)的測(cè)試活動(dòng)中解脫出來,提高測(cè)試效率,縮短回歸測(cè)試時(shí)間。雖然自動(dòng)化測(cè)試要比人工測(cè)試快得多,但在測(cè)試用例數(shù)量龐大的時(shí)候,執(zhí)行一次完整的測(cè)試有時(shí)甚至要花數(shù)天時(shí)間,導(dǎo)致測(cè)試周期過長。因此在對(duì)大量測(cè)試用例的自動(dòng)化執(zhí)行過程中,利用一種合理的測(cè)試用例執(zhí)行調(diào)度方法,以進(jìn)一步縮短測(cè)試時(shí)間是十分必要的。由于測(cè)試用例的執(zhí)行時(shí)間未知,而且部分測(cè)試用例執(zhí)行時(shí)同時(shí)需要多個(gè)主機(jī),所以普通的任務(wù)調(diào)度方法對(duì)測(cè)試用例的執(zhí)行調(diào)度是不適用的,同時(shí)由于被測(cè)系統(tǒng)的差異,很難找出一種通用的、高效的自動(dòng)化測(cè)試執(zhí)行調(diào)度方法。本發(fā)明針對(duì)如下分布式系統(tǒng)系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)固定,系統(tǒng)中存在多類執(zhí)行節(jié)點(diǎn),每一類又包含多個(gè)執(zhí)行節(jié)點(diǎn),同一類的執(zhí)行節(jié)點(diǎn)之間是同構(gòu)的,不同類執(zhí)行節(jié)點(diǎn)之間是異構(gòu)的。針對(duì)該分布式系統(tǒng)設(shè)計(jì)的每個(gè)測(cè)試用例均只在指定的一類執(zhí)行節(jié)點(diǎn)上執(zhí)行,但可能需要在單個(gè)執(zhí)行節(jié)點(diǎn)或同時(shí)在多個(gè)執(zhí)行節(jié)點(diǎn)上執(zhí)行。由于同一類的執(zhí)行節(jié)點(diǎn)之間是同構(gòu)的,這些測(cè)試用例在確定的一類執(zhí)行節(jié)點(diǎn)中的任意一個(gè)上執(zhí)行效果等價(jià),因此測(cè)試用例的執(zhí)行節(jié)點(diǎn)是不固定的,執(zhí)行這些測(cè)試用例時(shí)應(yīng)該根據(jù)一定的策略將它們分發(fā)到不同的執(zhí)行節(jié)點(diǎn)上執(zhí)行。測(cè)試用例在部署被測(cè)軟件的主機(jī)上自動(dòng)化執(zhí)行,該主機(jī)稱為測(cè)試用例的執(zhí)行節(jié)點(diǎn)。針對(duì)上述分布式系統(tǒng)的大量測(cè)試用例的執(zhí)行,簡(jiǎn)單憑借使用自動(dòng)化測(cè)試工具,不能完全實(shí)現(xiàn)自動(dòng)化,還有很多步驟需要手工或通過自動(dòng)化測(cè)試框架如STAF來完成,比如什么時(shí)候執(zhí)行測(cè)試用例、分配到哪臺(tái)被測(cè)主機(jī)上執(zhí)行等。在現(xiàn)有的技術(shù)中,不論通過手工完成還是自動(dòng)化測(cè)試框架,測(cè)試用例的執(zhí)行順序及測(cè)試用例執(zhí)行節(jié)點(diǎn)的選取都必須是測(cè)試人員人工設(shè)定,這樣不僅增加了測(cè)試人員的工作量,而且如果對(duì)測(cè)試用例的執(zhí)行順序安排不當(dāng), 或者測(cè)試用例的執(zhí)行節(jié)點(diǎn)選取不當(dāng),會(huì)出現(xiàn)以下問題(1)部分測(cè)試用例可能需要在被測(cè)軟件剛完成初始化之后便開始執(zhí)行,部分測(cè)試用例執(zhí)行時(shí)需要用到另外一些測(cè)試用例的執(zhí)行結(jié)果,如果測(cè)試用例間的執(zhí)行順序不合理會(huì)導(dǎo)致部分用例因執(zhí)行條件不滿足而無法執(zhí)行;(2)如果測(cè)試用例的執(zhí)行節(jié)點(diǎn)選取不當(dāng),會(huì)導(dǎo)致部分執(zhí)行節(jié)點(diǎn)上的測(cè)試用例已執(zhí)行完畢,另外部分執(zhí)行節(jié)點(diǎn)上仍在執(zhí)行單個(gè)執(zhí)行時(shí)間較長的測(cè)試用例,從而增加了所有測(cè)試用例的總執(zhí)行時(shí)間。(3)如果測(cè)試用例的執(zhí)行節(jié)點(diǎn)選取不當(dāng),會(huì)導(dǎo)致部分執(zhí)行節(jié)點(diǎn)上無用例執(zhí)行即處于空閑的時(shí)間較長,造成測(cè)試資源的利用率不高。
發(fā)明內(nèi)容
本發(fā)明針對(duì)上述分布式系統(tǒng)的自動(dòng)化測(cè)試中存在的需要人工設(shè)定測(cè)試用例的執(zhí)行順序及測(cè)試用例執(zhí)行節(jié)點(diǎn)的問題,提供了一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法,主要針對(duì)功能測(cè)試用例的測(cè)試。本發(fā)明的一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法,具體包括以下步驟步驟一、測(cè)試人員在自動(dòng)化測(cè)試控制端新建一個(gè)測(cè)試任務(wù),并輸入測(cè)試任務(wù)中各測(cè)試用例的基本信息,然后提交該測(cè)試任務(wù);所述的自動(dòng)化測(cè)試控制端部署在與被測(cè)系統(tǒng)獨(dú)立的主機(jī)中;所述的測(cè)試用例的基本信息包括測(cè)試用例的編號(hào)、預(yù)期執(zhí)行時(shí)間、執(zhí)行優(yōu)先級(jí)、需要的執(zhí)行節(jié)點(diǎn)類別和執(zhí)行節(jié)點(diǎn)數(shù)目、以及測(cè)試用例執(zhí)行需要的其他資源。步驟二、自動(dòng)化測(cè)試控制端依次讀取測(cè)試任務(wù)中每個(gè)測(cè)試用例的基本信息,將測(cè)試用例添加到未執(zhí)行的測(cè)試用例鏈表中。步驟三、取未執(zhí)行的測(cè)試用例鏈表中優(yōu)先級(jí)最高的所有測(cè)試用例,根據(jù)執(zhí)行節(jié)點(diǎn)類別進(jìn)行分組,將在同一類執(zhí)行節(jié)點(diǎn)上執(zhí)行的測(cè)試用例分為一組,各組測(cè)試用例并行地在對(duì)應(yīng)類別的執(zhí)行節(jié)點(diǎn)上執(zhí)行。步驟四、判斷是否執(zhí)行完所有的測(cè)試用例,若否,轉(zhuǎn)步驟三執(zhí)行,若是,執(zhí)行步驟五。步驟五、將本次測(cè)試任務(wù)所有測(cè)試用例的執(zhí)行結(jié)果顯示給用戶查看,結(jié)束本次測(cè)試任務(wù)。步驟一中所述的測(cè)試用例的執(zhí)行優(yōu)先級(jí),就是該測(cè)試用例被劃分到的測(cè)試用例類別的優(yōu)先級(jí)值。所述的測(cè)試用例的類別包括6類,按照優(yōu)先級(jí)從高到低依次為在被測(cè)系統(tǒng)剛進(jìn)入初始狀態(tài)下執(zhí)行的測(cè)試用例,執(zhí)行添加操作的測(cè)試用例,執(zhí)行查看操作的測(cè)試用例, 執(zhí)行編輯操作的測(cè)試用例,執(zhí)行刪除操作的測(cè)試用例以及執(zhí)行重置操作的測(cè)試用例。步驟三中所述的各組測(cè)試用例并行地在對(duì)應(yīng)類別的執(zhí)行節(jié)點(diǎn)上執(zhí)行,具體每一組測(cè)試用例執(zhí)行過程為(1)對(duì)該組中的所有測(cè)試用例先按照需要的執(zhí)行節(jié)點(diǎn)數(shù)目從多到少的順序排序,再對(duì)具有相同的執(zhí)行節(jié)點(diǎn)數(shù)目的測(cè)試用例,首先將都為第一次執(zhí)行的測(cè)試用例排在所有預(yù)期執(zhí)行時(shí)間不為0的測(cè)試用例之前,然后對(duì)所有預(yù)期執(zhí)行時(shí)間不為0的測(cè)試用例按照預(yù)期執(zhí)行時(shí)間從長到短的順序排序;對(duì)于具有相同的執(zhí)行節(jié)點(diǎn)數(shù)目且都為第一次執(zhí)行的測(cè)試用例,它們之間的相對(duì)順序是隨機(jī)的;( 依次判斷未執(zhí)行的測(cè)試用例的執(zhí)行條件是否滿足,若滿足,為該測(cè)試用例分配執(zhí)行節(jié)點(diǎn)及執(zhí)行需要的額外資源,并執(zhí)行該測(cè)試用例,然后判斷下一個(gè)測(cè)試用例,若不滿足則直接判斷下一個(gè)測(cè)試用例;重復(fù)該判斷直至被測(cè)系統(tǒng)中無空閑的對(duì)應(yīng)類別的執(zhí)行節(jié)點(diǎn)或者該組中所有的測(cè)試用例均已判斷完畢;(3)監(jiān)測(cè)所有正在執(zhí)行的測(cè)試用例的執(zhí)行狀態(tài),若監(jiān)測(cè)到任意一個(gè)測(cè)試用例執(zhí)行完畢,判斷該組測(cè)試用例中是否有未執(zhí)行的測(cè)試用例,若有轉(zhuǎn)至( 執(zhí)行,若沒有執(zhí)行下一步;(4)等待當(dāng)前所有正在執(zhí)行的測(cè)試用例執(zhí)行完畢,更新數(shù)據(jù)庫中該組中所有測(cè)試用例的預(yù)期執(zhí)行時(shí)間,保存測(cè)試用例的執(zhí)行結(jié)果。本發(fā)明的優(yōu)點(diǎn)與積極效果在于(1)本發(fā)明實(shí)現(xiàn)了對(duì)測(cè)試用例的執(zhí)行控制與調(diào)度,通過按優(yōu)先級(jí)降低的順序執(zhí)行測(cè)試用例,降低了測(cè)試用例中因執(zhí)行條件不滿足導(dǎo)致測(cè)試用例無法執(zhí)行的可能性;通過根據(jù)測(cè)試用例執(zhí)行需要的節(jié)點(diǎn)數(shù)、預(yù)期執(zhí)行時(shí)間對(duì)其執(zhí)行順序進(jìn)行排序,降低了因單個(gè)執(zhí)行時(shí)間較長的測(cè)試用例最后執(zhí)行而增加多測(cè)試用例的總執(zhí)行時(shí)間的可能性,減小了多個(gè)測(cè)試用例的總執(zhí)行時(shí)間。(2)本發(fā)明使用測(cè)試用例執(zhí)行調(diào)度方法將測(cè)試用例分發(fā)到所有執(zhí)行節(jié)點(diǎn)上執(zhí)行, 減少了執(zhí)行節(jié)點(diǎn)處于空閑狀態(tài)的時(shí)間,從而提高了系統(tǒng)資源的平均利用率。(3)本發(fā)明通過自動(dòng)化測(cè)試控制端控制執(zhí)行控制代理啟動(dòng)自動(dòng)化測(cè)試工具執(zhí)行測(cè)試用例,實(shí)現(xiàn)了分布式軟件系統(tǒng)測(cè)試用例的自動(dòng)化執(zhí)行,測(cè)試人員提交測(cè)試任務(wù)之后無需參與測(cè)試用例的執(zhí)行過程,簡(jiǎn)化了測(cè)試人員的工作。
圖1為本發(fā)明的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法的整體流程圖;圖2為本發(fā)明的同一優(yōu)先級(jí)的一組測(cè)試用例執(zhí)行控制與調(diào)度流程圖;圖3為本發(fā)明的單個(gè)測(cè)試用例執(zhí)行流程圖;圖4為本發(fā)明的測(cè)試任務(wù)文件示意圖。
具體實(shí)施例方式下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。本發(fā)明一種分布式自動(dòng)化測(cè)試的測(cè)試用例執(zhí)行控制與調(diào)度方法,如圖1所示,由如下步驟組成步驟一測(cè)試人員在自動(dòng)化測(cè)試控制端新建一個(gè)測(cè)試任務(wù),然后在添加測(cè)試用例的頁面中,輸入本次測(cè)試任務(wù)的所有測(cè)試用例的基本信息。所述的自動(dòng)化測(cè)試控制端部署在與被測(cè)系統(tǒng)獨(dú)立的主機(jī)中,提供了測(cè)試人員提交測(cè)試任務(wù)的途徑,并負(fù)責(zé)實(shí)現(xiàn)對(duì)測(cè)試用例的執(zhí)行控制與調(diào)度。所述的測(cè)試用例是測(cè)試人員通過規(guī)范的測(cè)試用例編寫軟件編寫得到的,然后再通過現(xiàn)有的自動(dòng)化測(cè)試工具編寫或錄制測(cè)試用例對(duì)應(yīng)的腳本文件,測(cè)試用例及對(duì)應(yīng)的腳本文件均已存到數(shù)據(jù)庫中,可由測(cè)試用例的編號(hào)查詢得到。數(shù)據(jù)庫除了存儲(chǔ)測(cè)試用例及對(duì)應(yīng)的腳本文件之外,也存儲(chǔ)本次測(cè)試任務(wù)中所有測(cè)試用例的執(zhí)行結(jié)果等信息。所述的測(cè)試任務(wù)由多個(gè)測(cè)試用例組成,測(cè)試任務(wù)中只包含各測(cè)試用例的基本信息,各測(cè)試用例的基本信息包括測(cè)試用例的編號(hào),測(cè)試用例的預(yù)期執(zhí)行時(shí)間,測(cè)試用例的執(zhí)行優(yōu)先級(jí),測(cè)試用例執(zhí)行所需要的執(zhí)行節(jié)點(diǎn)類別及執(zhí)行節(jié)點(diǎn)數(shù)目,測(cè)試用例執(zhí)行時(shí)需要的其他資源。測(cè)試人員在自動(dòng)化測(cè)試控制端上輸入測(cè)試用例以上信息,即實(shí)現(xiàn)了將測(cè)試用例添加到測(cè)試任務(wù)中。
所述的測(cè)試用例的預(yù)期執(zhí)行時(shí)間是根據(jù)該測(cè)試用例之前執(zhí)行的時(shí)間來預(yù)測(cè)的,由于自動(dòng)化測(cè)試主要用于回歸測(cè)試中,此時(shí)被測(cè)系統(tǒng)的環(huán)境及軟件版本已基本固定,因此測(cè)試用例每次執(zhí)行的時(shí)間也比較穩(wěn)定,根據(jù)該測(cè)試用例之前的執(zhí)行時(shí)間來預(yù)測(cè)本次的執(zhí)行時(shí)間是比較準(zhǔn)確的。所述的測(cè)試用例的預(yù)期執(zhí)行時(shí)間通過訪問數(shù)據(jù)庫中對(duì)應(yīng)測(cè)試用例的信息得到。若測(cè)試用例是第一次執(zhí)行,則設(shè)置其預(yù)期執(zhí)行時(shí)間為0。具體測(cè)試用例的預(yù)期執(zhí)行時(shí)間由以下公式得到
權(quán)利要求
1.一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法,其特征在于,該方法具體包括以下步驟步驟一、測(cè)試人員在自動(dòng)化測(cè)試控制端新建一個(gè)測(cè)試任務(wù),并輸入測(cè)試任務(wù)中各測(cè)試用例的基本信息,然后提交該測(cè)試任務(wù);所述的自動(dòng)化測(cè)試控制端部署在與被測(cè)系統(tǒng)獨(dú)立的主機(jī)中;所述的測(cè)試用例的基本信息包括測(cè)試用例的編號(hào)、預(yù)期執(zhí)行時(shí)間、執(zhí)行優(yōu)先級(jí)、需要的執(zhí)行節(jié)點(diǎn)類別和執(zhí)行節(jié)點(diǎn)數(shù)目、以及測(cè)試用例執(zhí)行需要的其他資源;所述的測(cè)試用例執(zhí)行需要的其他資源,是指測(cè)試用例執(zhí)行時(shí)除了執(zhí)行節(jié)點(diǎn)之外需要使用的實(shí)體資源以及虛擬資源;步驟二、自動(dòng)化測(cè)試控制端依次讀取測(cè)試任務(wù)中每個(gè)測(cè)試用例的基本信息,將測(cè)試用例添加到未執(zhí)行的測(cè)試用例鏈表中;步驟三、取未執(zhí)行的測(cè)試用例鏈表中優(yōu)先級(jí)最高的所有測(cè)試用例,根據(jù)執(zhí)行節(jié)點(diǎn)類別進(jìn)行分組,將在同一類執(zhí)行節(jié)點(diǎn)上執(zhí)行的測(cè)試用例分為一組,各組測(cè)試用例并行地在對(duì)應(yīng)類別的執(zhí)行節(jié)點(diǎn)上執(zhí)行;步驟四、判斷是否執(zhí)行完所有的測(cè)試用例,若否,轉(zhuǎn)步驟三執(zhí)行,若是,執(zhí)行步驟五;步驟五、將本次測(cè)試任務(wù)所有測(cè)試用例的執(zhí)行結(jié)果顯示給用戶查看,結(jié)束本次測(cè)試任務(wù)。
2.根據(jù)權(quán)利要求1所述的一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法, 其特征在于,所述的測(cè)試用例的編號(hào),用于在數(shù)據(jù)庫中唯一檢索查詢對(duì)應(yīng)編號(hào)的測(cè)試用例及該測(cè)試用例對(duì)應(yīng)的腳本文件。
3.根據(jù)權(quán)利要求1所述的一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法, 其特征在于,所述的預(yù)期執(zhí)行時(shí)間,通過下面公式得到2ETn=IRTl,n = 2 0, = 1其中,ETn, ETlri分別表示測(cè)試用例的第η次與第(η-1)次執(zhí)行的預(yù)期執(zhí)行時(shí)間,RTn+ RT1分別表示測(cè)試用例的第(η-1)次與第1次執(zhí)行的實(shí)際執(zhí)行時(shí)間,測(cè)試用例的第一次執(zhí)行的的預(yù)期執(zhí)行時(shí)間ET1設(shè)置為0。
4.根據(jù)權(quán)利要求1所述的一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法, 其特征在于,所述的測(cè)試用例的執(zhí)行優(yōu)先級(jí),具體確定方法為根據(jù)該測(cè)試用例的主要操作步驟中的動(dòng)作判斷該測(cè)試用例的類別,然后將該類測(cè)試用例的優(yōu)先級(jí)值設(shè)為該測(cè)試用例的執(zhí)行優(yōu)先級(jí);所述的測(cè)試用例的類別包括6類,按照優(yōu)先級(jí)從高到低依次為在被測(cè)系統(tǒng)剛進(jìn)入初始狀態(tài)下執(zhí)行的測(cè)試用例,執(zhí)行添加操作的測(cè)試用例,執(zhí)行查看操作的測(cè)試用例,執(zhí)行編輯操作的測(cè)試用例,執(zhí)行刪除操作的測(cè)試用例以及執(zhí)行重置操作的測(cè)試用例。
5.根據(jù)權(quán)利要求4所述的一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法, 其特征在于,所述的測(cè)試用例,根據(jù)主要操作步驟中的動(dòng)作被劃分為多類測(cè)試用例時(shí),將該測(cè)試用例的執(zhí)行優(yōu)先級(jí)根據(jù)被劃分為的優(yōu)先級(jí)最低的一類測(cè)試用例的優(yōu)先級(jí)值進(jìn)行設(shè)置。
6.根據(jù)權(quán)利要求1所述的一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法,其特征在于,所述的測(cè)試任務(wù),采用XML文件描述,具體包括以下元素用于表示一個(gè)測(cè)試任務(wù)的根元素<task>,包括兩個(gè)子元素〈resources〉、<uces>以及一個(gè)用于在數(shù)據(jù)庫中唯一檢索該測(cè)試任務(wù)的屬性;元素〈resources〉用于表示該測(cè)試任務(wù)執(zhí)行過程中所要用到的測(cè)試資源,含有兩個(gè)子元素<nodes>元素和<other_resources>元素,<nodes>元素用于表示被測(cè)系統(tǒng)中該測(cè)試任務(wù)能用的執(zhí)行節(jié)點(diǎn)信息,每個(gè)能用的執(zhí)行節(jié)點(diǎn)用元素<node>表示;元素〈node〉具有兩個(gè)屬性表示執(zhí)行節(jié)點(diǎn)所屬的類別的屬性以及表示執(zhí)行節(jié)點(diǎn)網(wǎng)絡(luò)地址的屬性;<other_res0urCes>元素用于表示該測(cè)試任務(wù)所有要用的其他測(cè)試資源的信息,包含0個(gè)或1個(gè)以上用來表示一種其他測(cè)試資源的子元素〈resource〉,每個(gè)子元素 〈resource〉具有兩個(gè)屬性表示該資源名稱的屬性和表示該資源數(shù)目的屬性;元素〈uces〉用于表示該測(cè)試任務(wù)包含的所有測(cè)試用例信息,該元素含有1個(gè)以上子元素<uc>,每個(gè)子元素<uc>表示一個(gè)測(cè)試用例,<uc>元素包括一個(gè)用于在數(shù)據(jù)庫中唯一檢索測(cè)試用例的屬性,一個(gè)表示測(cè)試用例的預(yù)期執(zhí)行時(shí)間的元素<time>,一個(gè)表示測(cè)試用例的執(zhí)行優(yōu)先級(jí)的元素〈priority〉,以及一個(gè)表示測(cè)試用例執(zhí)行所需要的測(cè)試資源的元素 <uc_resources> ;所述的元素<uc_resources>包含一個(gè)用于表示測(cè)試用例執(zhí)行需要的執(zhí)行節(jié)點(diǎn)信息的元素<uC_n0de>,以及0個(gè)或1個(gè)以上用于表示測(cè)試用例執(zhí)行需要的其他資源的元素<uc_other_resource> ;所述的<uc_node>元素具有兩個(gè)屬性表示需要的執(zhí)行節(jié)點(diǎn)類別的屬性以及表示測(cè)試用例執(zhí)行所需的執(zhí)行節(jié)點(diǎn)數(shù)目的屬性。
7.根據(jù)權(quán)利要求1所述的一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法, 其特征在于,步驟三中所述的各組測(cè)試用例并行地在對(duì)應(yīng)類別的執(zhí)行節(jié)點(diǎn)上執(zhí)行,其中每組測(cè)試用例被執(zhí)行的具體過程相同,具體是第1步對(duì)該組中的所有測(cè)試用例先按照需要的執(zhí)行節(jié)點(diǎn)數(shù)目從多到少的順序排序, 再對(duì)具有相同的執(zhí)行節(jié)點(diǎn)數(shù)目的測(cè)試用例,首先將都為第一次執(zhí)行的測(cè)試用例排在所有預(yù)期執(zhí)行時(shí)間不為0的測(cè)試用例之前,然后對(duì)所有預(yù)期執(zhí)行時(shí)間不為0的測(cè)試用例按照預(yù)期執(zhí)行時(shí)間從長到短的順序排序;對(duì)于具有相同的執(zhí)行節(jié)點(diǎn)數(shù)目且都為第一次執(zhí)行的測(cè)試用例,它們之間的相對(duì)順序是隨機(jī)的;第2步依次判斷未執(zhí)行的測(cè)試用例的執(zhí)行條件是否滿足,若滿足,為該測(cè)試用例分配執(zhí)行節(jié)點(diǎn)及執(zhí)行需要的其他資源,并執(zhí)行該測(cè)試用例,然后判斷下一個(gè)測(cè)試用例,若不滿足則直接判斷下一個(gè)測(cè)試用例;重復(fù)該判斷直至被測(cè)系統(tǒng)中無空閑的對(duì)應(yīng)類別的執(zhí)行節(jié)點(diǎn)或者該組中所有的測(cè)試用例均已判斷完畢,然后執(zhí)行第3步;所述的執(zhí)行條件指測(cè)試用例需要的執(zhí)行節(jié)點(diǎn)數(shù)目和執(zhí)行需要的其他資源數(shù)目均不能大于當(dāng)前被測(cè)系統(tǒng)中對(duì)應(yīng)空閑資源的數(shù)目;第3步監(jiān)測(cè)所有正在執(zhí)行的測(cè)試用例的執(zhí)行狀態(tài),若監(jiān)測(cè)到任意一個(gè)測(cè)試用例執(zhí)行完畢,判斷該組測(cè)試用例中是否有未執(zhí)行的測(cè)試用例,若有轉(zhuǎn)至第2步執(zhí)行,若沒有執(zhí)行下一步;第4步等待當(dāng)前所有正在執(zhí)行的測(cè)試用例執(zhí)行完畢,更新數(shù)據(jù)庫中該組中所有測(cè)試用例的預(yù)期執(zhí)行時(shí)間。
8.根據(jù)權(quán)利要求7所述的一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法, 其特征在于,第2步所述的執(zhí)行單個(gè)測(cè)試用例的具體過程如下步驟a、自動(dòng)化測(cè)試控制端向該測(cè)試用例的每個(gè)執(zhí)行節(jié)點(diǎn)上的執(zhí)行控制代理發(fā)送該測(cè)試用例在該執(zhí)行節(jié)點(diǎn)上要執(zhí)行的腳本文件;步驟b、自動(dòng)化測(cè)試控制端向該測(cè)試用例的每個(gè)執(zhí)行節(jié)點(diǎn)上的執(zhí)行控制代理發(fā)送開始執(zhí)行腳本的命令,各執(zhí)行控制代理接收到命令后,啟動(dòng)自動(dòng)化測(cè)試工具執(zhí)行相應(yīng)的腳本文件;步驟C、自動(dòng)化測(cè)試控制端監(jiān)聽各執(zhí)行控制代理發(fā)回的執(zhí)行結(jié)果,并判斷該測(cè)試用例是否執(zhí)行超時(shí),若沒有,自動(dòng)化測(cè)試控制端接收并保存該測(cè)試用例的所有執(zhí)行結(jié)果,該測(cè)試用例執(zhí)行完畢;若超時(shí),則執(zhí)行步驟d ;步驟d、自動(dòng)化測(cè)試控制端向該測(cè)試用例的每個(gè)執(zhí)行節(jié)點(diǎn)上的執(zhí)行控制代理發(fā)送終止腳本執(zhí)行的指令,并設(shè)置該測(cè)試用例的執(zhí)行結(jié)果為異常,結(jié)束該測(cè)試用例的執(zhí)行。
全文摘要
本發(fā)明針對(duì)功能測(cè)試用例的測(cè)試,提出一種面向分布式系統(tǒng)的自動(dòng)化測(cè)試的執(zhí)行控制與調(diào)度方法方法。該方法首先對(duì)新建的測(cè)試任務(wù)中的大量測(cè)試用例根據(jù)優(yōu)先級(jí)進(jìn)行分類,然后按照優(yōu)先級(jí)從高到低的順序依次執(zhí)行處于同一優(yōu)先級(jí)的測(cè)試用例;對(duì)于處于同一優(yōu)先級(jí)的測(cè)試用例先根據(jù)其執(zhí)行節(jié)點(diǎn)類別進(jìn)行分組,接著并行執(zhí)行各組測(cè)試用例,各執(zhí)行節(jié)點(diǎn)并行執(zhí)行該組內(nèi)的測(cè)試用例,直至該組內(nèi)所有測(cè)試用例都執(zhí)行完成。本發(fā)明方法實(shí)現(xiàn)了讓大量測(cè)試用例在被測(cè)的分布式系統(tǒng)上自動(dòng)化執(zhí)行,而且縮短了總執(zhí)行時(shí)間,并提高了被測(cè)系統(tǒng)的資源平均利用率。
文檔編號(hào)G06F11/36GK102214139SQ20111014644
公開日2011年10月12日 申請(qǐng)日期2011年6月1日 優(yōu)先權(quán)日2011年6月1日
發(fā)明者余丹, 儲(chǔ)大為, 尹杰, 張強(qiáng), 張楊, 王志超, 馬世龍 申請(qǐng)人:北京航空航天大學(xué)