專利名稱:一種自動(dòng)測試方法、系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤指一種用于多個(gè)測試任務(wù)腳本自動(dòng)化執(zhí)行的自動(dòng)測 試方法、系統(tǒng)及裝置。
背景技術(shù):
目前,在實(shí)現(xiàn)使用測試腳本進(jìn)行測試時(shí),不同的測試腳本對應(yīng)不同的測試拓?fù)?,?見的測試拓?fù)淇梢苑謩e是如圖1所示的測試拓?fù)?和如圖2所示的測試拓?fù)?。其中,測試 拓?fù)?所需要的測試資源包含一臺(tái)測試設(shè)備1和測試儀。測試拓?fù)?所需要的測試資源包 含測試設(shè)備1、測試設(shè)備2和測試儀。在現(xiàn)有使用測試腳本進(jìn)行測試的過程中,一般會(huì)針對每個(gè)不同種類的測試拓?fù)浞?別搭建至少一個(gè)獨(dú)立的測試環(huán)境,測試環(huán)境中包含了測試拓?fù)渌枰乃袦y試儀和測試 設(shè)備等測試資源。在使用測試腳本進(jìn)行測試時(shí),先根據(jù)測試拓?fù)漕愋?、?yōu)先級(jí)分解成多個(gè)不同的測 試子任務(wù),分解出的每個(gè)測試子任務(wù)里的測試腳本對應(yīng)的測試拓?fù)漕愋投际窍嗤模煌?測試子任務(wù)中的測試腳本所對應(yīng)的測試拓?fù)漕愋涂赡苁窍嗤蛘卟幌嗤?。通過人工選擇 與測試子任務(wù)中測試腳本所需的測試拓?fù)鋵?yīng)的測試環(huán)境,調(diào)用所選擇的測試環(huán)境對測試 腳本進(jìn)行測試。如果測試子任務(wù)所需的測試拓?fù)涞臏y試環(huán)境都處于使用狀態(tài),則需要等待該測試 環(huán)境空閑時(shí),才能進(jìn)行測試。由于每個(gè)測試拓?fù)錅y試環(huán)境都是單獨(dú)搭建,不同測試拓?fù)涞臏y 試環(huán)境中的測試資源不能夠共享使用,因此即使其他測試環(huán)境中的資源能夠滿足測試子任 務(wù)對應(yīng)的測試拓?fù)渲兴璧臏y試資源,也不能為測試子任務(wù)所使用。測試子任務(wù)只能等待 某一個(gè)或幾個(gè)針對其測試拓?fù)浯罱ǖ臏y試環(huán)境空閑時(shí)才能進(jìn)行測試。也就是說,這種方式 測試子任務(wù)所需的測試環(huán)境都忙時(shí)就處于等待狀態(tài),直到符合條件的測試環(huán)境空閑。這種 方式在測試資源充足時(shí),由于每種測試拓?fù)漕愋涂赡軐?yīng)多個(gè)測試環(huán)境來滿足測試任務(wù)的 需要,此時(shí)可以自動(dòng)地調(diào)度測試子任務(wù)到符合測試拓?fù)涞臏y試環(huán)境進(jìn)行并行執(zhí)行,但由于 其資源不能共享,其應(yīng)用過程中存在以下問題(1)由于測試環(huán)境都是獨(dú)立設(shè)置的,每個(gè)測試環(huán)境中的測試資源不能夠被另一個(gè) 測試環(huán)境使用,導(dǎo)致測試資源不能夠充分利用、測試執(zhí)行效率沒有進(jìn)一步提高。例如預(yù)先搭建了三個(gè)測試環(huán)境測試環(huán)境1、測試環(huán)境2和測試環(huán)境3,其中,測 試環(huán)境1和測試環(huán)境2里的測試資源加起來可以滿足測試環(huán)境3的測試資源條件。當(dāng)測試 環(huán)境3中需要執(zhí)行的測試子任務(wù)個(gè)數(shù)比測試環(huán)境1、測試環(huán)境2的多且時(shí)間也比較長,在測 試環(huán)境1和測試環(huán)境2的測試子任務(wù)都執(zhí)行結(jié)束后,測試環(huán)境1、測試環(huán)境2處于空閑狀態(tài), 雖然測試環(huán)境1和測試環(huán)境2的測試資源能夠滿足測試環(huán)境3所需的測試資源,但是由于 測試資源不能共享,測試環(huán)境1和2的測試資源即使在空閑狀態(tài)時(shí)也不能執(zhí)行測試環(huán)境3 所能執(zhí)行的測試子任務(wù)。因此,導(dǎo)致測試資源閑置,測試資源的利用率低。(2)當(dāng)某兩種測試環(huán)境均能滿足測試子任務(wù)的測試需求時(shí),若該測試子任務(wù)的執(zhí)
5行時(shí)間比較長,即使其他的測試資源空閑也不能用于對這個(gè)測試子任務(wù)進(jìn)行并行測試。例如測試子任務(wù)1在測試環(huán)境1上執(zhí)行,且所需要的時(shí)間很長,同時(shí)測試環(huán)境2 也可以滿足測試子任務(wù)1的測試需求,當(dāng)測試環(huán)境2上的測試子任務(wù)執(zhí)行完成處于空閑狀 態(tài)時(shí),即使測試子任務(wù)1還沒有執(zhí)行完,也不能使用測試環(huán)境2的空閑資源進(jìn)行并行執(zhí)行測 試子任務(wù)1。導(dǎo)致測試資源利用率不高,執(zhí)行效率也比較低。(3)即使一個(gè)測試子任務(wù)只需要某個(gè)測試環(huán)境的部分測試資源,但由于各個(gè)測試 環(huán)境已經(jīng)搭建好,不能拆分使用,因此即使一個(gè)測試任務(wù)只需要部分測試資源,也會(huì)使整個(gè) 測試環(huán)境的全部測試資源處于不可用狀態(tài)。例如測試子任務(wù)1的測試拓?fù)涫菧y試環(huán)境1的測試拓?fù)涞囊粋€(gè)子集,當(dāng)測試子任 務(wù)1在測試環(huán)境1中執(zhí)行時(shí),就使得測試環(huán)境1的所有測試資源處于不可用狀態(tài),測試環(huán)境 1中沒有被測試子任務(wù)1使用的部分測試資源也不能釋放給其他測試子任務(wù)使用,因此也 會(huì)導(dǎo)致測試資源閑置,測試資源利用率不高,測試資源利用的靈活度低??梢?,現(xiàn)有技術(shù)中單獨(dú)搭建的各個(gè)測試環(huán)境,當(dāng)其中一個(gè)測試環(huán)境的測試腳本執(zhí) 行完釋放測試資源后,釋放的測試資源不能夠自動(dòng)給另一個(gè)缺少測試資源的測試環(huán)境使 用,除非對測試環(huán)境進(jìn)行重新搭建以滿足其他測試腳本的需求。從而使得在自動(dòng)化測試過 程中需要投入較多的人力資源。例如測試環(huán)境2中缺少一臺(tái)測試設(shè)備或其中的一臺(tái)測試 設(shè)備因故障不能使用,即使測試環(huán)境1中有該測試設(shè)備且處于空閑狀態(tài),也不能直接共享 給測試環(huán)境2使用,而必須人工干預(yù),將測試環(huán)境1中的空閑設(shè)備切換加入到測試環(huán)境2 中,實(shí)現(xiàn)對測試環(huán)境2的重新搭建后才能使用。隨著測試拓?fù)鋸?fù)雜度的提高或者測試設(shè)備數(shù)量的增加,需要調(diào)整的和重新搭建的 可能性也增大,所需投入的人力資源也就更多;由此可見,現(xiàn)有的自動(dòng)化測試實(shí)現(xiàn)方案,測 試資源也不能達(dá)到很好共享利用的效果且需要投入大量的人力、物力、財(cái)力。例如測試環(huán) 境2剛好缺少一臺(tái)測試設(shè)備,需要利用測試環(huán)境1測試腳本執(zhí)行完后釋放的測試設(shè)備,當(dāng)測 試環(huán)境1的測試腳本執(zhí)行完了,需要人工干預(yù)使測試環(huán)境1的測試資源未測試環(huán)境2所利 用時(shí),也許測試人員已經(jīng)下班或者不在,從而不能及時(shí)進(jìn)行切換測試環(huán)境,因此,導(dǎo)致測試 資源就一直處于空閑狀態(tài),測試資源利用率不高,自動(dòng)化測試執(zhí)行效率低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種自動(dòng)測試方法、系統(tǒng)及裝置,用以解決現(xiàn)有技術(shù)中存在測 試資源不能共享,測試資源利用率低,測試效率低等問題。一種自動(dòng)測試方法,包括將接收到的測試任務(wù)分解成測試子任務(wù)加入測試任務(wù)隊(duì)列中,所述測試子任務(wù)中 包含的腳本所需的測試拓?fù)湎嗤徽{(diào)度測試隊(duì)列中的測試子任務(wù),根據(jù)當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測試拓?fù)洌?查找是否有所述測試拓?fù)渌璧目捎脿顟B(tài)的測試儀和測試設(shè)備;通過拓?fù)淝袚Q設(shè)備將查找到的可用狀態(tài)的測試儀和測試設(shè)備組成測試子系統(tǒng)對 測試子任務(wù)進(jìn)行測試。一種自動(dòng)測試裝置,包括任務(wù)接收模塊、任務(wù)調(diào)度模塊、資源管理模塊和任務(wù)執(zhí) 行模塊;
任務(wù)接收模塊,用于將接收到的測試任務(wù)分解成測試子任務(wù)加入測試任務(wù)隊(duì)列 中,所述測試子任務(wù)中包含的腳本所需的測試拓?fù)湎嗤?;任?wù)調(diào)度模塊,用于調(diào)度測試隊(duì)列中的測試子任務(wù),將當(dāng)前調(diào)度的測試子任務(wù)所 對應(yīng)的測試拓?fù)渫ㄖo資源管理模塊;以及當(dāng)所述資源管理模塊通知查找到所述測試拓?fù)?所需的可用狀態(tài)的測試儀和測試設(shè)備時(shí),將當(dāng)前調(diào)度的測試子任務(wù)和資源管理模塊查找到 的所需的可用狀態(tài)的測試儀和測試設(shè)備,通知所述任務(wù)執(zhí)行模塊;資源管理模塊,用于根據(jù)任務(wù)調(diào)度模塊通知的當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測 試拓?fù)洳檎沂欠裼兴鰷y試拓?fù)渌璧目捎脿顟B(tài)的測試儀和測試設(shè)備,并通知任務(wù)調(diào)度模 塊;任務(wù)執(zhí)行模塊,用于通過拓?fù)淝袚Q設(shè)備將任務(wù)調(diào)度模塊通知的查找到的可用狀態(tài) 的測試儀和測試設(shè)備組成測試子系統(tǒng)對測試子任務(wù)進(jìn)行測試。一種自動(dòng)測試系統(tǒng),包括若干測試儀、若干測試設(shè)備、拓?fù)淝袚Q設(shè)備和上述的自 動(dòng)測試裝置;所述自動(dòng)測試裝置,用于將接收到的測試任務(wù)分解成若干測試子任務(wù)加入測試任 務(wù)隊(duì)列中,所述測試子任務(wù)中包含的腳本所需的測試拓?fù)湎嗤?;調(diào)度測試隊(duì)列中的測試子 任務(wù),根據(jù)當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測試拓?fù)?,查找是否有所述測試拓?fù)渌璧目?用狀態(tài)的測試儀和測試設(shè)備;控制拓?fù)淝袚Q設(shè)備將查找到的可用狀態(tài)的測試儀和測試設(shè)備 組成測試子系統(tǒng)對測試子任務(wù)進(jìn)行測試;所述拓?fù)淝袚Q設(shè)備,用于連接所述測試儀和測試設(shè)備,將自動(dòng)測試裝置查找到的 可用狀態(tài)的測試儀和測試設(shè)備組成測試子系統(tǒng)。本發(fā)明有益效果如下本發(fā)明實(shí)施例提供的腳本自動(dòng)測試方法、系統(tǒng)及拓?fù)淝袚Q設(shè)備,通過將接收到的 測試任務(wù)分解成測試子任務(wù)加入測試任務(wù)隊(duì)列中,所述測試子任務(wù)中包含的腳本所需的測 試拓?fù)湎嗤徽{(diào)度測試隊(duì)列中的測試子任務(wù),根據(jù)當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測試拓 撲,查找是否有所述測試拓?fù)渌璧目捎脿顟B(tài)的測試儀和測試設(shè)備;將查找到的可用狀態(tài) 的測試儀和測試設(shè)備組成測試子系統(tǒng)對測試子任務(wù)進(jìn)行測試。該方式通過拓?fù)淝袚Q設(shè)備 實(shí)現(xiàn)測試儀和測試設(shè)備的動(dòng)態(tài)組合,根據(jù)不同測試子任務(wù)的測試拓?fù)湫枨蠼M成不同的測試 子系統(tǒng),對各個(gè)測試子任務(wù)進(jìn)行測試,這樣只要測試儀和測試設(shè)備未被占用,就可以被待測 試的測試子任務(wù)使用,從而能夠充分利用測試系統(tǒng)中的測試資源,包括各個(gè)測試儀和測試 設(shè)備,提高了測試資源利用率,實(shí)現(xiàn)了測試資源的共享使用,由于不同的子系統(tǒng)可以動(dòng)態(tài)組 成,減少了測試資源空閑的可能性。該方法可以不受測試拓?fù)漕愋偷南拗?,只需通過拓?fù)淝?換設(shè)備即可動(dòng)態(tài)利用和共享測試儀和測試設(shè)備形成各種測試拓?fù)涞臏y試子系統(tǒng),為要求不 同測試拓?fù)涞臏y試子任務(wù)所用。且可以同時(shí)組成多個(gè)測試子系統(tǒng),提高測試的速度和效率, 尤其是在運(yùn)行多個(gè)測試子任務(wù)時(shí),其提高測試速度和執(zhí)行效率的作用更加顯著。
圖1為現(xiàn)有技術(shù)中測試拓?fù)涞囊环N結(jié)構(gòu)示例圖;圖2為現(xiàn)有技術(shù)中測試拓?fù)涞牧硪环N結(jié)構(gòu)示例圖;圖3為本發(fā)明實(shí)施例中自動(dòng)測試系統(tǒng)的結(jié)構(gòu)示意圖4為本發(fā)明實(shí)施例一-中自動(dòng)測試方法的實(shí)現(xiàn)流程示意圖5為本發(fā)明實(shí)施例二-中自動(dòng)測試系統(tǒng)的具體結(jié)構(gòu)示意圖6為本發(fā)明實(shí)施例二-中任務(wù)接收模塊的實(shí)現(xiàn)流程示意圖7為本發(fā)明實(shí)施例二-中任務(wù)調(diào)度模塊的實(shí)現(xiàn)流程示意圖8為本發(fā)明實(shí)施例二二中任務(wù)調(diào)度模塊對待測試的測試子任務(wù)進(jìn)行調(diào)度的流程示意圖9為本發(fā)明實(shí)施例二二中任務(wù)調(diào)度模塊對正在測試的測試子任務(wù)進(jìn)行調(diào)度的流程示意圖10為本發(fā)明實(shí)施例—二中資源管理模塊的實(shí)現(xiàn)流程示意圖11為本發(fā)明實(shí)施例—二中任務(wù)執(zhí)行模塊的實(shí)現(xiàn)流程示意圖12為本發(fā)明實(shí)施例:三中一個(gè)自動(dòng)測試實(shí)例的實(shí)現(xiàn)流程圖。
具體實(shí)施例方式針對現(xiàn)有技術(shù)中單獨(dú)搭建的各個(gè)測試環(huán)境資源利用率低、測試效率也比較低的問 題,本申請實(shí)施例提供一種腳本自動(dòng)測試方法,該方法搭建一個(gè)包含各種測試儀、測試設(shè)備 和拓?fù)淝袚Q設(shè)備的測試系統(tǒng)(即搭建一個(gè)統(tǒng)一的測試環(huán)境),將各種測試儀和測試設(shè)備通 過拓?fù)淝袚Q設(shè)備連接,通過自動(dòng)測試裝置的控制使得各個(gè)測試儀和測試設(shè)備能夠動(dòng)態(tài)組合 成滿足各種測試拓?fù)湟蟮臏y試子系統(tǒng)(即動(dòng)態(tài)組合滿足各種測試拓?fù)涞臏y試環(huán)境),實(shí) 現(xiàn)測試資源的靈活組合、動(dòng)態(tài)搭配,以提高測試資源利用率和測試效率。本發(fā)明實(shí)施例提供的自動(dòng)測試系統(tǒng)的結(jié)構(gòu)如圖3所示,包括若干測試儀、若干測 試設(shè)備、拓?fù)淝袚Q設(shè)備和自動(dòng)測試裝置。如圖所示,測試儀包括測試儀1、測試儀2、測試儀
3........測試儀η等,測試設(shè)備包括測試設(shè)備1、測試設(shè)備2、測試設(shè)備3........測試設(shè)
備η等。其中各個(gè)測試儀和各個(gè)測試設(shè)備均與拓?fù)淝袚Q設(shè)備直接相連,并能通過拓?fù)淝袚Q 設(shè)備的控制實(shí)現(xiàn)互連及連接切換。上述自動(dòng)測試裝置,用于將接收到的測試任務(wù)分解成測試子任務(wù)加入測試任務(wù)隊(duì) 列中,其中每個(gè)測試子任務(wù)中包含的腳本所需的測試拓?fù)湎嗤?;調(diào)度測試隊(duì)列中的測試子 任務(wù),根據(jù)當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測試拓?fù)?,查找是否有?dāng)前調(diào)度的測試任務(wù)所 對用的測試拓?fù)渌璧目捎脿顟B(tài)的測試儀和測試設(shè)備;控制拓?fù)淝袚Q設(shè)備將查找到的可用 狀態(tài)的測試儀和測試設(shè)備組成測試子系統(tǒng)對測試子任務(wù)進(jìn)行測試。上述拓?fù)淝袚Q設(shè)備,由于連接所述測試儀和測試設(shè)備,將自動(dòng)測試裝置查找到的 可用狀態(tài)的測試儀和測試設(shè)備組成測試子系統(tǒng)。上述測試儀和測試設(shè)備,用于在自動(dòng)測試裝置的控制下,通過拓?fù)淝袚Q設(shè)備動(dòng)態(tài) 組成對測試子任務(wù)進(jìn)行測試的測試子系統(tǒng)。其中,測試儀用于可以根據(jù)測試腳本的配置發(fā) 送測試所需的測試信號(hào)和原始數(shù)據(jù)信息等。上述自動(dòng)測試裝置可以如圖3所示的單獨(dú)設(shè)置為一個(gè)獨(dú)立的裝置,也可以設(shè)置在 拓?fù)淝袚Q設(shè)備中。下面通過具體實(shí)施例對使用上述自動(dòng)測試系統(tǒng)進(jìn)行測試腳本自動(dòng)測試的實(shí)現(xiàn)過 程進(jìn)行具體描述。實(shí)施例一
8
本發(fā)明實(shí)施例提供一的自動(dòng)測試方法,使用如圖1所示的自動(dòng)測試系統(tǒng)實(shí)現(xiàn),該 方法流程如圖4所示,執(zhí)行步驟如下步驟Sl 對接收到的測試任務(wù)進(jìn)行分解,得到若干測試子任務(wù)。接收到測試人員提交的測試任務(wù)時(shí),一般根據(jù)接收到的測試任務(wù)中各個(gè)測試腳本 的所需的測試拓?fù)?,將接收到的測試任務(wù)中的測試腳本進(jìn)行分類,得到包含需要相同測試 拓?fù)涞娜舾蓽y試腳本的測試子任務(wù);也就是說將接收到的測試任務(wù)進(jìn)行分解得到的測試子 任務(wù)中包含的腳本所需的測試拓?fù)湎嗤?。步驟S2 將分解得到的各個(gè)測試子任務(wù)加入測試任務(wù)隊(duì)列中。將分解得到的測試子任務(wù)加入到測試任務(wù)隊(duì)列中,排隊(duì)等候測試。優(yōu)選的,可以根據(jù)測試子任務(wù)的優(yōu)先級(jí)將測試子任務(wù)加入測試任務(wù)隊(duì)列中,并記 錄測試子任務(wù)的狀態(tài)信息。步驟S3 調(diào)度測試任務(wù)隊(duì)列中的測試子任務(wù)。當(dāng)接收到的測試任務(wù)時(shí)或當(dāng)有測試子任務(wù)測試完成時(shí),都會(huì)觸發(fā)對測試任務(wù)隊(duì)列 中測試子任務(wù)的調(diào)度。一般從第一個(gè)待調(diào)度的測試子任務(wù)開始調(diào)度,并為其查找與其測試 拓?fù)渌枰臏y試儀和測試設(shè)備后,并繼續(xù)調(diào)度下一個(gè)測試子任務(wù),直至調(diào)度完所有的測 試子任務(wù)。優(yōu)選的,按照優(yōu)先級(jí)順序依次調(diào)度測試隊(duì)列中測試子任務(wù)。一般首先對測試任務(wù)隊(duì)列中待測試的測試子任務(wù)進(jìn)行調(diào)度,若沒有可調(diào)度的待測 試的測試子任務(wù)或待測試的測試子任務(wù)調(diào)度完成時(shí),則繼續(xù)調(diào)度正在測試的測試子任務(wù)。步驟S4 根據(jù)當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測試拓?fù)?,查找是否有該測試拓?fù)?所需的可用狀態(tài)的測試儀和測試設(shè)備。若當(dāng)前調(diào)度的測試子任務(wù)為待測試的測試子任務(wù)時(shí),根據(jù)當(dāng)前調(diào)度的測試子任務(wù) 所對應(yīng)的測試拓?fù)?,查找自?dòng)測試系統(tǒng)的測試資源數(shù)據(jù)庫,確定自動(dòng)測試系統(tǒng)中是否有該 測試拓?fù)渌璧奶幱诳臻e狀態(tài)和/或處于可獲取狀態(tài)的測試儀和測試設(shè)備;也就是說,可用狀態(tài)的測試儀包括處于空閑狀態(tài)的測試儀和/或處于可獲取狀 態(tài)的測試儀;可用狀態(tài)的測試設(shè)備包括處于空閑狀態(tài)的測試設(shè)備,和/或處于可獲取狀態(tài) 的測試設(shè)備。其中,處于可獲取狀態(tài)的測試儀和測試設(shè)備是指被由正在運(yùn)行的測試子任務(wù) 分解出來的子測試子任務(wù)占用的測試儀和測試設(shè)備。若當(dāng)前調(diào)度的測試子任務(wù)為正在測試的測試子任務(wù)時(shí),根據(jù)當(dāng)前調(diào)度的測試子任 務(wù)所對應(yīng)的測試拓?fù)?,查找自?dòng)測試系統(tǒng)的測試資源數(shù)據(jù)庫,確定自動(dòng)測試系統(tǒng)中是否有 該測試拓?fù)渌璧奶幱诳臻e狀態(tài)的測試儀和測試設(shè)備。若是,執(zhí)行步驟S5,并返回執(zhí)行步驟S3,繼續(xù)調(diào)度下一個(gè)測試子任務(wù)。否則直接返 回執(zhí)行步驟S3,繼續(xù)調(diào)度下一個(gè)測試子任務(wù)。步驟S5 將查找到的可用狀態(tài)的測試儀和測試設(shè)備組成測試子系統(tǒng)。具體從自動(dòng)測試系統(tǒng)的測試資源數(shù)據(jù)庫中獲取可用狀態(tài)的測試儀和測試設(shè)備,由 拓?fù)淝袚Q設(shè)備按照當(dāng)前調(diào)度的測試子任務(wù)所需的測試拓?fù)鋵⒖捎脿顟B(tài)的測試儀和測試設(shè) 備連接起來,組成與當(dāng)前調(diào)度的測試子任務(wù)所需的測試拓?fù)鋵?yīng)的測試子系統(tǒng)。步驟S6 通過組成的測試子系統(tǒng)對測試子任務(wù)進(jìn)行測試。若當(dāng)前調(diào)度的測試子任務(wù)為待測試的測試子任務(wù)時(shí),通過組成的測試子系統(tǒng)執(zhí)行
9當(dāng)前調(diào)度的測試子任務(wù)的測試腳本。若當(dāng)前調(diào)度的測試子任務(wù)為正在測試的測試子任務(wù)時(shí),將當(dāng)前調(diào)度的正在測試的 測試子任務(wù)進(jìn)行分解,通過組成的測試子系統(tǒng)執(zhí)行分解出的子測試子任務(wù)的測試腳本。實(shí)施例二 本發(fā)明實(shí)施例提供二的腳本自動(dòng)測試方法,針對如圖3所示的自動(dòng)測試系統(tǒng)中拓 撲切換設(shè)備中的各個(gè)模塊,具體說明各個(gè)模塊在測試過程中的實(shí)現(xiàn)流程。自動(dòng)測試系統(tǒng)的 具體結(jié)構(gòu)如圖5所示,包括自動(dòng)測試裝置、拓?fù)淝袚Q設(shè)備、測試儀和測試設(shè)備,其中,測試儀
和測試設(shè)備可以根據(jù)需要組成測試子系統(tǒng)1........測試子系統(tǒng)η等,用于執(zhí)行測試子任
務(wù)1........測試子任務(wù)η等。其中,拓?fù)淝袚Q設(shè)備與測試儀和測試設(shè)備的連接關(guān)如圖3中所示,各個(gè)測試儀和 測試設(shè)備之間不直接連接,均與拓?fù)淝袚Q設(shè)備連接,從而可以實(shí)現(xiàn)針對不同測試拓?fù)涞膭?dòng) 態(tài)組合。其中,自動(dòng)測試裝置具體包括任務(wù)接收模塊10、任務(wù)調(diào)度模塊20、資源管理模塊 30和任務(wù)執(zhí)行模塊40。上述自動(dòng)測試裝置,還包括測試資源數(shù)據(jù)庫50。任務(wù)接收模塊10,用于將接收到的測試任務(wù)分解成若干測試子任務(wù)加入測試任務(wù) 隊(duì)列中,其中一個(gè)測試子任務(wù)中包含的腳本所需的測試拓?fù)湎嗤?。?yōu)選的,上述任務(wù)接收模塊10具體可以包括分解單元和入隊(duì)單元。分解單元,用于根據(jù)接收到的測試任務(wù)中各個(gè)測試腳本的所需的測試拓?fù)洌瑢y 試任務(wù)中的測試腳本進(jìn)行分類,得到包含需要相同測試拓?fù)涞娜舾蓽y試腳本的測試子任 務(wù)。入隊(duì)單元,用于根據(jù)測試子任務(wù)的優(yōu)先級(jí)將測試子任務(wù)加入測試任務(wù)隊(duì)列中,并 記錄測試子任務(wù)的狀態(tài)信息。任務(wù)調(diào)度模塊20,用于調(diào)度測試隊(duì)列中的測試子任務(wù),將當(dāng)前調(diào)度的測試子任務(wù) 所對應(yīng)的測試拓?fù)渫ㄖo資源管理模塊30 ;以及當(dāng)資源管理模塊30通知查找到該測試拓 撲所需的可用狀態(tài)的測試儀和測試設(shè)備時(shí),將當(dāng)前調(diào)度的測試子任務(wù)和資源管理模塊30 查找到的所需的可用狀態(tài)的測試儀和測試設(shè)備,通知該任務(wù)執(zhí)行模塊40。優(yōu)選的,上述任務(wù)調(diào)度模塊20,具體可以包括第一調(diào)度單元和第二調(diào)度單元。第一調(diào)度單元,用于當(dāng)任務(wù)接收模塊10接收到的測試任務(wù)時(shí)或當(dāng)任務(wù)執(zhí)行模塊 40通知有測試子任務(wù)測試完成時(shí),按照優(yōu)先級(jí)順序依次調(diào)度測試隊(duì)列中待測試的測試子任 務(wù);若沒有可調(diào)度的待測試的測試子任務(wù)或待測試的測試子任務(wù)調(diào)度完成時(shí),則調(diào)度正在 測試的測試子任務(wù)。第二調(diào)度單元,用于當(dāng)資源管理模塊30查找到當(dāng)前調(diào)度的測試子任務(wù)測試拓?fù)?所需的可用狀態(tài)的測試儀和測試設(shè)備,將當(dāng)前調(diào)度的測試子任務(wù)和資源管理模塊30查找 到的所需的可用狀態(tài)的測試儀和測試設(shè)備,通知任務(wù)執(zhí)行模塊40。資源管理模塊30,用于根據(jù)任務(wù)調(diào)度模塊通知的當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的 測試拓?fù)洳檎沂欠裼挟?dāng)前調(diào)度的測試子任務(wù)的測試拓?fù)渌璧目捎脿顟B(tài)的測試儀和測試 設(shè)備,通知任務(wù)調(diào)度模塊20。較佳的,上述資源管理模塊30,具體用于根據(jù)任務(wù)調(diào)度模塊20通知的當(dāng)前調(diào)度的 測試子任務(wù)所對應(yīng)的測試拓?fù)洳檎宜鰷y試資源數(shù)據(jù)庫,確定自動(dòng)測試系統(tǒng)中是否有當(dāng)前調(diào)度的測試子任務(wù)的測試拓?fù)渌璧目捎脿顟B(tài)的測試儀和測試設(shè)備,并通知任務(wù)調(diào)度模塊 20。優(yōu)選的,上述資源管理模塊30,具體可以包括第一查找模塊和第二查找模塊。第一查找模塊,用于若當(dāng)前調(diào)度的測試子任務(wù)為待測試的測試子任務(wù)時(shí),根據(jù)當(dāng) 前調(diào)度的測試子任務(wù)所對應(yīng)的測試拓?fù)洌檎易詣?dòng)測試系統(tǒng)的測試資源庫,確定自動(dòng)測試 系統(tǒng)中是否有該測試拓?fù)渌璧奶幱诳臻e狀態(tài)和/或處于可獲取狀態(tài)的測試儀和測試設(shè) 備;其中,處于可獲取狀態(tài)的測試儀和測試設(shè)備是指被由正在運(yùn)行的測試子任務(wù)分解出來 的子測試子任務(wù)占用的測試儀和測試設(shè)備。第二查找模塊,用于若當(dāng)前調(diào)度的測試子任務(wù)為正在測試的測試子任務(wù)時(shí),根據(jù) 當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測試拓?fù)?,查找自?dòng)測試系統(tǒng)的測試資源庫,確定自動(dòng)測 試系統(tǒng)中是否有該測試拓?fù)渌璧奶幱诳臻e狀態(tài)的測試儀和測試設(shè)備。任務(wù)執(zhí)行模塊40,用于將任務(wù)調(diào)度模塊20通知的查找到的可用狀態(tài)的測試儀和 測試設(shè)備組成測試子系統(tǒng)對測試子任務(wù)進(jìn)行測試。優(yōu)選的,上述任務(wù)執(zhí)行模塊40,具體可以包括組合模塊和執(zhí)行模塊。組合單元,用于從自動(dòng)測試系統(tǒng)的測試資源數(shù)據(jù)庫中獲取可用狀態(tài)的測試儀和 測試設(shè)備,按照當(dāng)前調(diào)度的測試子任務(wù)所需的測試拓?fù)?,由拓?fù)淝袚Q設(shè)備將可用狀態(tài)的測 試儀和測試設(shè)備連接起來,組成與當(dāng)前調(diào)度的測試子任務(wù)所需的測試拓?fù)鋵?yīng)的測試子系 統(tǒng)。執(zhí)行單元,用于若當(dāng)前調(diào)度的測試子任務(wù)為待測試的測試子任務(wù)時(shí),通過組成的 測試子系統(tǒng)執(zhí)行當(dāng)前調(diào)度的測試子任務(wù)的測試腳本;若當(dāng)前調(diào)度的測試子任務(wù)為正在測試 的測試子任務(wù)時(shí),將當(dāng)前調(diào)度的正在測試的測試子任務(wù)進(jìn)行分解,通過組成的測試子系統(tǒng) 執(zhí)行分解出的子測試子任務(wù)的測試腳本。上述測試資源數(shù)據(jù)庫50,用于存儲(chǔ)測試儀和測試設(shè)備的狀態(tài)信息;上述狀態(tài)信息 包括空閑狀態(tài)、可獲取狀態(tài)和使用狀態(tài);其中,處于可獲取狀態(tài)的測試儀和測試設(shè)備是指被 由正在運(yùn)行的測試子任務(wù)分解出來的子測試子任務(wù)占用的測試儀和測試設(shè)備;資源管理模塊30,具體用于根據(jù)任務(wù)調(diào)度模塊20通知的當(dāng)前調(diào)度的測試子任務(wù) 所對應(yīng)的測試拓?fù)洳檎覝y試資源數(shù)據(jù)庫50,確定是否有當(dāng)前調(diào)度的測試子任務(wù)測試拓?fù)渌?需的可用狀態(tài)的測試儀和測試設(shè)備,并通知任務(wù)調(diào)度模塊20;其中,若當(dāng)前調(diào)度的是待測 試的測試子任務(wù)時(shí),可用狀態(tài)的測試儀和測試設(shè)備包括空閑狀態(tài)和可獲取狀態(tài)的測試儀和 測試設(shè)備;若當(dāng)前調(diào)度的是正在測試的測試子任務(wù)時(shí),可用狀態(tài)的測試儀和測試設(shè)備包括 空閑狀態(tài)的測試儀和測試設(shè)備。下面針對上述自動(dòng)測試裝置中的各個(gè)模塊,分別說明各個(gè)模塊的在測試過程中的 實(shí)現(xiàn)過程。任務(wù)接收模塊10實(shí)現(xiàn)對測試人員提交的測試任務(wù)的接收和分解后的子任務(wù)入 隊(duì),即上述步驟Si、步驟S2的所述的執(zhí)行過程,其實(shí)現(xiàn)流程如圖6所示,執(zhí)行步驟如下步驟Sll 接收測試人員提交的測試任務(wù)。測試人員將需要測試的測試任務(wù)提交給自動(dòng)測試系統(tǒng),接收到新提交的測試任務(wù) 時(shí),需要對該任務(wù)進(jìn)行處理。步驟S12 將接收到的測試任務(wù)進(jìn)行分解,得到若干測試子任務(wù)。
—般根據(jù)測試任務(wù)中測試腳本的測試拓?fù)涞念愋瓦M(jìn)行分類,將測試拓?fù)湎嗤姆?解到一個(gè)測試子任務(wù)中。優(yōu)選的,進(jìn)一步考慮測試任務(wù)中測試腳本的優(yōu)先級(jí),將測試拓?fù)湎?同且優(yōu)先級(jí)也相同的測試腳本分解到一個(gè)測試子任務(wù)中。步驟S13 確定每個(gè)測試子任務(wù)的測試預(yù)期時(shí)長。每個(gè)測試子任務(wù)預(yù)期所需要的測試預(yù)期時(shí)長,可以根據(jù)每個(gè)測試子任務(wù)中需要執(zhí) 行的測試腳本名稱到測試腳本庫中獲取對應(yīng)測試腳本預(yù)期執(zhí)行時(shí)間長度,進(jìn)而得出測試子 任務(wù)預(yù)期執(zhí)行的總時(shí)間長度,即測試預(yù)期時(shí)長。測試腳本庫是測試人員維護(hù)的一個(gè)文件,其中記錄了測試腳本各種屬性信息,測 試腳本庫里的測試腳本預(yù)期執(zhí)行用時(shí)間長度,是在測試腳本第一次完整執(zhí)行完后,根據(jù)執(zhí) 行該腳本所用的時(shí)間確定出來的,該時(shí)間可以由測試人員填寫。步驟S14 根據(jù)測試子任務(wù)的優(yōu)先級(jí)將測試子任務(wù)加入測試任務(wù)隊(duì)列中。測試任務(wù)隊(duì)列用于存放測試子任務(wù)即測試子任務(wù)的屬性信息,其屬性信息包括測 試子任務(wù)名稱、測試子任務(wù)的狀態(tài)、測試子任務(wù)的測試預(yù)期時(shí)長,此外,還可以包括正在執(zhí) 行的測試子任務(wù)的已測試時(shí)間長度等等。將測試子任務(wù)提交到測試隊(duì)列中時(shí),根據(jù)其優(yōu)先級(jí)提交,針對相同優(yōu)先級(jí)的測試 子任務(wù),則根據(jù)提交的先后順序依次放入測試任務(wù)隊(duì)列中。將測試子任務(wù)放入測試任務(wù)隊(duì)列中時(shí),將其狀態(tài)設(shè)置為“新狀態(tài)”,以表征該測試 子任務(wù)處于待測試狀態(tài)。測試任務(wù)隊(duì)列中的測試子任務(wù)包括待測試狀態(tài)和正在測試狀態(tài)(即運(yùn)行狀態(tài)), 測試任務(wù)隊(duì)列中的測試子任務(wù)還可以包括測試完成狀態(tài)。其中,待測試狀態(tài)包括新提交的 “新狀態(tài)”的測試子任務(wù)和和先前提交的經(jīng)過至少一次調(diào)度沒有找到滿足條件的測試資源 (包括測試儀和測試設(shè)備)來執(zhí)行測試而處于“等待狀態(tài)”的測試子任務(wù)。運(yùn)行狀態(tài)是指測 試子任務(wù)經(jīng)過調(diào)度,有滿足測試條件的測試資源來執(zhí)行測試,從而正在進(jìn)行測試且尚未測 試完成的測試子任務(wù)。測試子任務(wù)名稱是測試人員提交測試子任務(wù)時(shí)定義的,且是唯一的。測試子任務(wù)的測試預(yù)期時(shí)長即上述步驟S13中確定出的測試預(yù)期時(shí)長。測試子任務(wù)已測試時(shí)間長度是針對正在測試的測試子任務(wù)而言的,具體是指測試 子任務(wù)執(zhí)行過程中已經(jīng)消耗的時(shí)間。該時(shí)間在每執(zhí)行完測試子任務(wù)中的一個(gè)測試腳本進(jìn)行 一次更新,具體由任務(wù)執(zhí)行模塊來完成對測試隊(duì)列中的該項(xiàng)紀(jì)錄的更新的。步驟S15 檢測任務(wù)調(diào)度模塊是否正在執(zhí)行測試任務(wù)調(diào)度流程。通過任務(wù)調(diào)度模塊的運(yùn)行狀態(tài)信息變量,可以判斷出任務(wù)調(diào)度模塊是否正在執(zhí)行 測試任務(wù)調(diào)度流程。若是,則執(zhí)行步驟S17 ;若否,執(zhí)行步驟S16。步驟S16 觸發(fā)測試任務(wù)調(diào)度流程。也就是說,新的測試任務(wù)提交時(shí),如果任務(wù)調(diào)度模塊沒有運(yùn)行,既沒有執(zhí)行測試任 務(wù)調(diào)度流程,則觸發(fā)任務(wù)調(diào)度模塊運(yùn)行,啟動(dòng)測試任務(wù)調(diào)度流程。觸發(fā)測試任務(wù)調(diào)度流程后執(zhí)行步驟S17。步驟S17 結(jié)束本次測試任務(wù)提交流程。也就是說,新的測試任務(wù)提交時(shí),如果任務(wù)調(diào)度模塊正在運(yùn)行,既正在執(zhí)行測試任
12務(wù)調(diào)度流程,則可以直接結(jié)束本次測試任務(wù)提交流程,繼續(xù)等待接收測試人員提交的測試 任務(wù)。此外,如果新的測試任務(wù)提交時(shí),任務(wù)調(diào)度模塊沒有運(yùn)行,則在觸發(fā)任務(wù)調(diào)度模塊 運(yùn)行,啟動(dòng)測試任務(wù)調(diào)度流程后結(jié)束本次測試任務(wù)提交流程,繼續(xù)等待接收測試人員提交 的測試任務(wù)。上述任務(wù)調(diào)度模塊20,主要用于測試子任務(wù)以及所需要的測試資源的調(diào)度,也就 是說,任務(wù)調(diào)度模塊的作用從測試任務(wù)隊(duì)列中獲取測試子任務(wù),然后根據(jù)測試資源的滿足 情況來管理測試子任務(wù)的執(zhí)行。其實(shí)現(xiàn)流程如圖7所示,執(zhí)行步驟如下步驟S21 監(jiān)聽到觸發(fā)消息時(shí)啟動(dòng)測試任務(wù)調(diào)度流程。監(jiān)聽測試任務(wù)調(diào)度流程的觸發(fā)消息,測試任務(wù)調(diào)度流程的觸發(fā)消息,一般在任務(wù) 接收模塊接收到新的測試任務(wù)時(shí)或任務(wù)執(zhí)行模塊執(zhí)行完一個(gè)測試子任務(wù)釋放測試資源時(shí), 會(huì)向任務(wù)調(diào)度模塊發(fā)送測試任務(wù)調(diào)度流程的觸發(fā)消息,也就是說,當(dāng)任務(wù)接收模塊接收到 的測試任務(wù)時(shí)或當(dāng)任務(wù)執(zhí)行模塊通知有測試子任務(wù)測試完成時(shí),按照優(yōu)先級(jí)順序依次調(diào)度 測試隊(duì)列中測試子任務(wù)。步驟S22 測試任務(wù)隊(duì)列中是否有待測試狀態(tài)的測試子任務(wù)。一般若是測試任務(wù)提交觸發(fā)調(diào)度模塊執(zhí)行調(diào)度,則測試任務(wù)隊(duì)列中一般有待測試 的測試子任務(wù),若是測試資源釋放觸發(fā)調(diào)度模塊執(zhí)行調(diào)度,則測試隊(duì)列中可能沒有待測試 的測試子任務(wù)。若是,執(zhí)行步驟S23 ;若否,執(zhí)行步驟S25。步驟S23 對待測試狀態(tài)的測試子任務(wù)進(jìn)行調(diào)度。對待測試的測試子任務(wù)進(jìn)行調(diào)度的具體實(shí)現(xiàn)過程在下面進(jìn)行詳細(xì)論述。步驟S24 測試任務(wù)隊(duì)列中待測試狀態(tài)的測試子任務(wù)是否調(diào)度完。若是,執(zhí)行步驟S25,否則返回繼續(xù)執(zhí)行步驟S23。步驟S25 測試任務(wù)隊(duì)列中是否有正在測試狀態(tài)的測試子任務(wù)。若沒有待測試的測試子任務(wù)或在處于待測試狀態(tài)的測試子任務(wù)全部調(diào)度處理完 之后,開始查看是否有正在測試狀態(tài)的測試子任務(wù),并調(diào)度處理正在測試狀態(tài)的測試子任 務(wù)。優(yōu)選的,當(dāng)所有狀態(tài)待測試狀態(tài)的測試子任務(wù)都調(diào)度后,任務(wù)調(diào)度模塊開始從測 試任務(wù)隊(duì)列中按照剩余執(zhí)行時(shí)間(剩余執(zhí)行時(shí)間=測試預(yù)期時(shí)長-已測試時(shí)間長度)從長 到短得關(guān)系調(diào)度正在測試狀態(tài)的測試子任務(wù)。若是,執(zhí)行步驟S26,否則,執(zhí)行步驟S28。步驟S26 對正在測試狀態(tài)的測試子任務(wù)進(jìn)行調(diào)度。對正在測試的測試子任務(wù)進(jìn)行調(diào)度的具體實(shí)現(xiàn)過程在下面進(jìn)行詳細(xì)論述。步驟S27 測試任務(wù)隊(duì)列中正在測試狀態(tài)的測試子任務(wù)是否調(diào)度完。若是,執(zhí)行步驟S28,否則返回繼續(xù)執(zhí)行步驟S26。步驟S28 結(jié)束本次測試任務(wù)調(diào)度流程。當(dāng)處于待測試狀態(tài)和處于正在測試狀態(tài)的測試子任務(wù)全部調(diào)度處理完之后,本次 啟動(dòng)的測試任務(wù)調(diào)度流程結(jié)束。任務(wù)調(diào)度模塊繼續(xù)監(jiān)聽啟動(dòng)測試任務(wù)調(diào)度流程的觸發(fā)消 肩、ο
也就是說,每次測試任務(wù)調(diào)度流程啟動(dòng)后,首先按照測試任務(wù)隊(duì)列中測試子任務(wù) 的排列順序,依次調(diào)度待測試的測試子任務(wù)進(jìn)行處理。然后再從測試任務(wù)隊(duì)列中依次調(diào)度 正在測試的測試子任務(wù)進(jìn)行處理。直至所有狀態(tài)的測試子任務(wù)都調(diào)度處理一次后,本次測 試任務(wù)調(diào)度流程結(jié)束,任務(wù)調(diào)度模塊處于監(jiān)聽狀態(tài)。步驟S23對待測試狀態(tài)的測試子任務(wù)進(jìn)行調(diào)度具體實(shí)現(xiàn)過程如圖8所示,執(zhí)行步 驟如下步驟S231 任務(wù)調(diào)度模塊從測試隊(duì)列中調(diào)度待測試狀態(tài)的測試子任務(wù),并將當(dāng)前 調(diào)度的測試子任務(wù)通知給資源管理模塊。任務(wù)調(diào)度模塊按照測試子任務(wù)在測試任務(wù)隊(duì)列中的優(yōu)先級(jí)順序,從測試任務(wù)隊(duì)列 中依次調(diào)度待測試狀態(tài)(包括“新狀態(tài)”或“等待狀態(tài)”)的測試子任務(wù)。然后調(diào)用資源管理 模塊到測試資源數(shù)據(jù)庫中查找是否有與該測試子任務(wù)的測試拓?fù)渌璧目捎玫臏y試資源, 包括可用狀態(tài)的測試儀和測試設(shè)備。步驟S232 資源管理模塊是否查找到有至少一套可用狀態(tài)的測試儀和測試設(shè)備。若查找到一套滿足當(dāng)前調(diào)度的測試子任務(wù)的測試拓?fù)渌璧目捎脿顟B(tài)的測試儀 和測試設(shè)備時(shí),執(zhí)行步驟S233,否則執(zhí)行步驟S239。步驟S233 判斷查找到的可用狀態(tài)的測試儀和測試設(shè)備中是否包含可獲取狀態(tài) 的測試儀或測試設(shè)備。可獲取狀態(tài)的測試儀和測試設(shè)備是指被一個(gè)測試子任務(wù)分解出的子測試子任務(wù) 占用的測試儀和測試設(shè)備。當(dāng)存在空閑的測試資源,且空閑的測試資源滿足正在測試的測 試子任務(wù)的測試需求時(shí),將正在測試的測試子任務(wù)分解,分解出的子測試子任務(wù)(不限于 一個(gè)子測試子任務(wù),其數(shù)量根據(jù)空閑的測試資源可以組成幾套滿足該測試子任務(wù)需要的測 試子系統(tǒng)確定)由空閑的測試儀和測試設(shè)備組成的測試子系統(tǒng)執(zhí)行測試,將這些用于執(zhí)行 子測試子任務(wù)的空閑狀態(tài)的測試儀和測試設(shè)備的狀態(tài)變?yōu)榭色@取狀態(tài),而測試子任務(wù)最先 占用的測試儀和測試設(shè)備(即父測試子任務(wù)占用的測試儀和測試設(shè)備)仍然為使用狀態(tài), 不能被其他測試子任務(wù)使用。若是,執(zhí)行步驟S234,若否,執(zhí)行步驟S237。步驟S234 確定使用可獲取狀態(tài)的測試儀或測試設(shè)備的子測試子任務(wù)。步驟S235 通知任務(wù)執(zhí)行模塊停止執(zhí)行該子測試子任務(wù)。步驟S236 將該子測試子任務(wù)合并到所屬的測試子任務(wù)中執(zhí)行。也就是說,如果找到一套測試資源且測試資源有“可獲取狀態(tài)”的測試儀和測試設(shè) 備,則停止使用該測試儀或測試設(shè)備的子測試子任務(wù)的運(yùn)行,將可獲取狀態(tài)的測試儀或測 試設(shè)備釋放出來。執(zhí)行當(dāng)前調(diào)度的測試子任務(wù)。同時(shí),把沒有測試完成的子測試子任務(wù)合 并回所屬的測試子任務(wù)中繼續(xù)執(zhí)行。步驟S237 更新測試任務(wù)隊(duì)列中當(dāng)前調(diào)度的測試子任務(wù)為正在測試狀態(tài)。也就是說,當(dāng)查找到的可用狀態(tài)的測試儀和測試設(shè)備中不包含可獲取狀態(tài)的測試 儀或測試設(shè)備是,則可以調(diào)度執(zhí)行當(dāng)前調(diào)度的測試子任務(wù)了。例如如果找到一套測試資源 且測試資源都為“空閑狀態(tài)”,就執(zhí)行調(diào)度的測試子任務(wù),同時(shí)在測試任務(wù)隊(duì)列中設(shè)置該測 試子任務(wù)為“運(yùn)行狀態(tài)”。步驟S238 調(diào)度任務(wù)執(zhí)行模塊將可用狀態(tài)的測試儀和測試設(shè)備組成子系統(tǒng),測試當(dāng)前調(diào)度的測試子任務(wù)。然后執(zhí)行步驟S240。步驟S239 若當(dāng)前調(diào)度的測試子任務(wù)為新狀態(tài)的測試子任務(wù),更新當(dāng)前調(diào)度的測 試子任務(wù)的狀態(tài)為等待狀態(tài)。也就是說,如果資源管理模塊沒有查找到可用狀態(tài)的測試儀和測試設(shè)備,即沒有 測試資源滿足當(dāng)前調(diào)度的測試子任務(wù)的測試需求,則不執(zhí)行調(diào)度測試該測試子任務(wù)的流 程。若其為等待狀態(tài)的測試子任務(wù)則直接執(zhí)行步驟S240,若其為新狀態(tài)的測試子任務(wù)則將 其改為等待狀態(tài),然后執(zhí)行步驟S240。步驟S240 結(jié)束對該測試子任務(wù)的調(diào)度流程。上述處理方式,可以優(yōu)先保證每一個(gè)測試子任務(wù)都有一套測試資源執(zhí)行,防止某 個(gè)測試子任務(wù)的測試資源被其他測試子任務(wù)占用嚴(yán)重處于等待狀態(tài),使得測試子任務(wù)很好 地并行執(zhí)行的效果,達(dá)到充分利用測試資源,提高測試執(zhí)行效率。步驟S26對正在測試狀態(tài)的測試子任務(wù)進(jìn)行調(diào)度的具體實(shí)現(xiàn)過程如圖9所示,執(zhí) 行步驟如下步驟S261 任務(wù)調(diào)度模塊從測試隊(duì)列中調(diào)度正在測試狀態(tài)的測試子任務(wù),并將當(dāng) 前調(diào)度的測試子任務(wù)通知給資源管理模塊。任務(wù)調(diào)度模塊按照設(shè)定的規(guī)則從測試任務(wù)隊(duì)列中依次調(diào)度正在測試狀態(tài)(運(yùn)行 狀態(tài))的測試子任務(wù)。然后調(diào)用資源管理模塊到測試資源數(shù)據(jù)庫中查找是否有與該測試子 任務(wù)的測試拓?fù)渌璧目捎玫臏y試資源(即空閑的測試儀和測試設(shè)備)。例如可以按照正在測試的測試子任務(wù)在測試任務(wù)隊(duì)列中的優(yōu)先級(jí)順序依次調(diào) 度,也可以按照正在測試的測試子任務(wù)的剩余時(shí)間由高到低的順序依次調(diào)度正在運(yùn)行側(cè)測 試子任務(wù)。步驟S262 資源管理模塊是否查找到有至少一套可用狀態(tài)的測試儀和測試設(shè)備。若查找到至少一套滿足當(dāng)前調(diào)度的測試子任務(wù)的測試拓?fù)渌璧目捎脿顟B(tài)的測 試儀和測試設(shè)備時(shí),執(zhí)行步驟S263,否則執(zhí)行步驟S265。也就是說,如果找到一套空閑的測試儀和測試設(shè)備則執(zhí)行調(diào)度該正在運(yùn)行的測試 子任務(wù)的步驟。步驟S263 根據(jù)查找到的可用狀態(tài)的測試儀和測試設(shè)備能夠組建的測試子系統(tǒng) 的數(shù)量對于測試子任務(wù)進(jìn)行分解。例如如果找到還有2套測試測試儀和測試設(shè)備可以滿足該正在運(yùn)行的測試子任 務(wù)的測試需求,則任務(wù)調(diào)度模塊就把該正在運(yùn)行的測試子任務(wù)沒有執(zhí)行的部分按照時(shí)間平 均分成3個(gè)任務(wù)執(zhí)行,新分出了 2個(gè)任務(wù)為子測試子任務(wù)。步驟S264 通知執(zhí)行模塊將查找到的可用狀態(tài)的測試儀和測試設(shè)備組成測試子 系統(tǒng),將分解得到的子測試子任務(wù)加入到組建的測試子系統(tǒng)中執(zhí)行測試。沿用上邊的例子,調(diào)用任務(wù)執(zhí)行模塊將查找到的可用狀態(tài)的測試儀和測試設(shè)備組 成這2個(gè)測試子系統(tǒng)分別執(zhí)行兩個(gè)子測試子任務(wù)。原來測試子任務(wù)仍繼續(xù)執(zhí)行,只是執(zhí)行 的測試腳本變少。步驟S265 結(jié)束對當(dāng)前調(diào)度的正在運(yùn)行的測試子任務(wù)的調(diào)度流程。如果沒有找到滿足當(dāng)前調(diào)度的測試子任務(wù)需求的測試資源,則不對該測試子任務(wù)
15進(jìn)行分解。上述方式,在測試系統(tǒng)的資源有空閑時(shí),能夠動(dòng)態(tài)地充分利用測試資源,通過將測 試子任務(wù)動(dòng)態(tài)分成多個(gè)“子測試子任務(wù)”并行執(zhí)行,在充分利用測試資源的同時(shí),進(jìn)一步提 高了測試執(zhí)行效率。上述資源管理模塊,主要用于查找是否有調(diào)度子任務(wù)需要的可用狀態(tài)的測試儀和 測試設(shè)備,其實(shí)現(xiàn)流程如圖10所示,執(zhí)行步驟如下步驟S31 監(jiān)控任務(wù)調(diào)度模塊需要獲取資源的通知和任務(wù)執(zhí)行模塊釋放資源的通 知。若是任務(wù)調(diào)度模塊需要獲取資源,則執(zhí)行步驟S32 ;若是任務(wù)執(zhí)行模塊釋放資源, 則執(zhí)行步驟S34。其中,測試資源包括測試儀和測試設(shè)備,測試資源的相關(guān)信息統(tǒng)一保存在測試資 源數(shù)據(jù)庫中,測試資源數(shù)據(jù)庫中的保存的測試資源信息包括測試儀的屬性信息(如名 稱)、使用狀態(tài)信息、與拓?fù)淝袚Q設(shè)備的連接關(guān)系(包括測試端口信息)、使用該測試儀的 測試子任務(wù)等;以及測試設(shè)備的名稱、屬性信息、使用狀態(tài)信息與拓?fù)淝袚Q設(shè)備的連接關(guān)系 (包括測試端口信息)、使用該測試設(shè)備的測試子任務(wù)名稱等。這些測試資源的信息,在搭 建自動(dòng)測試系統(tǒng)時(shí)由測試人員預(yù)先設(shè)置,當(dāng)自動(dòng)測試系統(tǒng)改變時(shí),由測試人員更改。其中測試端口信息是指測試儀或測試設(shè)備參與測試的端口信息。測試資源和拓?fù)淝袚Q設(shè)備的連接關(guān)系是測試儀或測試設(shè)備與拓?fù)淝袚Q設(shè)備相互 連接的測試端口信息。測試資源屬性信息包含測試資源類型、測試資源的名稱、測試資源的訪問地址等 fn息ο使用狀態(tài)信息包括可用狀態(tài)(即可用狀態(tài)的測試儀和測試設(shè)備)和不可用狀態(tài) (即不可用狀態(tài)的測試儀和測試設(shè)備),其中,可用狀態(tài)針對不同的測試子任務(wù)的含義不 同,針對待測試的測試子任務(wù)包括可獲取狀態(tài)和空閑狀態(tài),針對正在測試的測試子任務(wù)包 括空閑狀態(tài)。而不可用狀態(tài)針對不同的測試任務(wù)的含義也不同,針對待測試的測試子任務(wù) 包括使用狀態(tài)和壞狀態(tài),針對正在測試的測試子任務(wù)包括可獲取狀態(tài)、使用狀態(tài),當(dāng)測試設(shè) 備或測試儀故障時(shí),還可以包括壞狀態(tài)。其中測試儀和測試設(shè)備的四種狀態(tài)分別說明如下空閑狀態(tài)是指測試儀或測試設(shè)備默認(rèn)的初始狀態(tài),該狀態(tài)的測試儀或測試設(shè)備可 以提供任何測試子任務(wù)使用。使用狀態(tài)是測試資源被測試子任務(wù)使用,而在被釋放前不能被其他測試子任務(wù)使用??色@取狀態(tài)是指被一個(gè)測試子任務(wù)的子測試子任務(wù)占用的測試儀或測試設(shè)備。也 就是說當(dāng)一個(gè)測試子任務(wù)可能占用多套測試資源并行執(zhí)行,將最先占用的一套測試資源設(shè) 置為使用狀態(tài)(不能被其他測試子任務(wù)使用),之后占用的測試資源設(shè)置為可獲取狀態(tài)(可 以被待測試狀態(tài)的測試子任務(wù)使用)。壞狀態(tài)是指測試儀或測試設(shè)備被損壞不能用作測試。使用測試資源的測試子任務(wù)名稱是指當(dāng)測試資源被某個(gè)測試子任務(wù)使用時(shí),同時(shí) 把該測試子任務(wù)的名稱記錄下來,根據(jù)測試子任務(wù)的名稱可以知道測試儀或測試設(shè)備可以供哪個(gè)測試子任務(wù)時(shí)用,其中測試子任務(wù)的名稱是唯一的。步驟S32 查找任務(wù)調(diào)度模塊需要調(diào)度的測試資源。即根據(jù)任務(wù)調(diào)度模塊當(dāng)前調(diào)度的測試子任務(wù),到測試資源數(shù)據(jù)庫查找是否有當(dāng)前 調(diào)度的測試子任務(wù)所需要的可用狀態(tài)的測試儀和測試設(shè)備。如上述對任務(wù)調(diào)度模塊的描述中所述的,若當(dāng)前調(diào)度的是待測試的測試子任務(wù)或 是正在測試的測試子任務(wù),其查找可用狀態(tài)的測試儀和測試設(shè)備的匹配條件不同。如果是正在測試的測試子任務(wù)則只查找測試資源數(shù)據(jù)庫中是否有符合該測試子 任務(wù)需求的空閑狀態(tài)的測試儀和測試設(shè)備。如果是待測試的測試子任務(wù),則查找測試資源 數(shù)據(jù)庫中是否有符合該測試子任務(wù)需求的可獲取狀態(tài)的和空閑狀態(tài)的測試儀和測試設(shè)備。同時(shí)判斷和匹配測試資源的類型(是測試儀還是測試設(shè)備)以及其端口號(hào)是否滿 足,直到找到可用狀態(tài)的測試儀和測試設(shè)備位置,返回查找到的測試儀和測試設(shè)備等查找 結(jié)果。如果查找完整個(gè)數(shù)據(jù)庫都沒有查找到,則返回為查找到滿足測試子任務(wù)需求的測試 儀和測試設(shè)備的查找結(jié)果。步驟S33 向任務(wù)調(diào)度模塊返回查找結(jié)果。然后執(zhí)行步驟S36步驟S34 釋放測試完成的測試子任務(wù)所占用的測試資源。資源管理模塊接收到任務(wù)執(zhí)行模塊通知釋放測試子任務(wù)占用的測試資源時(shí),將該 測試子任務(wù)占用的測試資源的使用狀態(tài)更改為空閑狀態(tài)。步驟S35 觸發(fā)任務(wù)執(zhí)行模塊啟動(dòng)測試任務(wù)調(diào)度流程。資源管理模塊釋放資源后觸發(fā)新的測試任務(wù)調(diào)度流程,以便重新調(diào)度測試子任 務(wù),達(dá)到充分利用測試資源的目的。步驟S36:結(jié)束。上述任務(wù)執(zhí)行模塊,主要用于在資源管理模塊查找到滿足測試條件的測試資源 時(shí),將查找的可用狀態(tài)的測試儀和測試設(shè)備進(jìn)行連接,組成測試子系統(tǒng),將任務(wù)調(diào)度模塊調(diào) 度的測試子任務(wù)該子系統(tǒng)中執(zhí)行。其實(shí)現(xiàn)流程如圖11所示,執(zhí)行步驟如下步驟S41 任務(wù)執(zhí)行模塊根據(jù)任務(wù)調(diào)度模塊的調(diào)度將查找到的可用狀態(tài)的測試儀 和測試設(shè)備組成測試子系統(tǒng)。任務(wù)執(zhí)行模塊接收到一個(gè)測試子任務(wù)執(zhí)行,就根據(jù)測試子任務(wù)的測試拓?fù)?,將?找到的可用狀態(tài)的測試儀和測試設(shè)備根據(jù)其與拓?fù)淝袚Q設(shè)備的連接端口信息連接起來,形 成一個(gè)測試子系統(tǒng)。一般通過對拓?fù)淝袚Q設(shè)備配置,創(chuàng)建特殊虛擬局域網(wǎng)(Virtual Local Area Network, VLAN)的通信隧道,動(dòng)態(tài)搭建與測試子任務(wù)的測試拓?fù)鋵?yīng)的測試子系統(tǒng)。步驟S42 任務(wù)執(zhí)行模塊將任務(wù)調(diào)度模塊當(dāng)前調(diào)度的測試子任務(wù)調(diào)度到組成的測 試子系統(tǒng)中執(zhí)行測試。測試子系統(tǒng)組成后,加載自動(dòng)化運(yùn)行的公共庫、測試腳本,接著開始執(zhí)行測試子任 務(wù)的測試腳本,每執(zhí)行完一個(gè)測試腳本,就及時(shí)更新測試任務(wù)隊(duì)列中測試子任務(wù)的已測試 時(shí)間長度。直到測試子任務(wù)的所有測試腳本執(zhí)行結(jié)束后,就及時(shí)更新測試任務(wù)隊(duì)列中測試 子任務(wù)的狀態(tài)為完成狀態(tài)。也就是說,任務(wù)執(zhí)行模塊的作用是負(fù)責(zé)搭建測試子任務(wù)所需的測試子系統(tǒng),完成
17對測試子系統(tǒng)的測試拓?fù)渑渲煤统跏蓟?、控制測試子任務(wù)的執(zhí)行、控制多個(gè)測試子任務(wù)并 行執(zhí)行、更新測試子任務(wù)的已測試時(shí)間長度等。如圖5中所示,任務(wù)執(zhí)行模塊根據(jù)任務(wù)調(diào)度模塊的調(diào)度可以組成測試子系統(tǒng) 1........測試子系統(tǒng)η分別對測試子任務(wù)1........測試子任務(wù)η進(jìn)行測試。實(shí)施例三本發(fā)明實(shí)施例提供三的自動(dòng)測試方法,以一個(gè)具體實(shí)例說明使用如圖5所示的自 動(dòng)測試系統(tǒng)實(shí)現(xiàn)自動(dòng)測試的過程,其中,提交測試任務(wù)并加入測試任務(wù)隊(duì)列的過程該方法 流程如圖12所示,執(zhí)行步驟如下步驟S51 搭建自動(dòng)測試系統(tǒng)。將拓?fù)淝袚Q設(shè)備、測試儀和測試設(shè)備相連接,具體將測試儀和測試設(shè)備均與拓?fù)?切換設(shè)備連接起來。其中,每個(gè)測試儀、測試設(shè)備與拓?fù)淝袚Q相連接的端口個(gè)數(shù)可以根據(jù)各種不同類 型的測試拓?fù)涞男枨筮M(jìn)行連接,最好以需求端口個(gè)數(shù)最多的為標(biāo)準(zhǔn),連接的測試資源盡可 能多些。例如將四臺(tái)測試儀(測試儀1、2、3、4)和5臺(tái)測試設(shè)備(測試設(shè)備1、2、3、4、5) 連接到一個(gè)拓?fù)淝袚Q設(shè)備,搭建成一個(gè)自動(dòng)測試系統(tǒng)(即統(tǒng)一的測試環(huán)境)步驟S52 創(chuàng)建測試資源數(shù)據(jù)庫,將自動(dòng)測試系統(tǒng)中的測試資源信息錄入測試資 源數(shù)據(jù)庫中。錄入的測試資源信息包括測試資源訪問地址、測試資源類型(測試儀還是測試 設(shè)備)、測試資源的測試端口、測試資源和拓?fù)淝袚Q設(shè)備連接關(guān)系。具體包括測試儀的名 稱、屬性信息、使用狀態(tài)信息與拓?fù)淝袚Q設(shè)備的連接關(guān)系、測試端□信息、使用該測試設(shè)備 的測試子任務(wù)名稱等;以及測試設(shè)備的名稱、屬性信息、使用狀態(tài)信息與拓?fù)淝袚Q設(shè)備的連 接關(guān)系、測試端口信息、使用該測試設(shè)備的測試子任務(wù)名稱等。步驟S53 向自動(dòng)測試系統(tǒng)提交測試任務(wù)。具體參見上述實(shí)施例一和實(shí)施例二中提交測試任務(wù)的步驟。步驟S54 分解提交的測試任務(wù)。例如將提交的測試任務(wù)分解為4個(gè)測試子任務(wù)測試子任務(wù)1、測試子任務(wù)2、測 試子任務(wù)3、測試子任務(wù)4。其中測試子任務(wù)1所需要的測試資源包括1臺(tái)測試儀和1臺(tái)測試設(shè)備、測試時(shí)間為1 小時(shí)、優(yōu)先級(jí)最高。測試子任務(wù)2所需要的測試資源包括1臺(tái)測試儀和1臺(tái)測試設(shè)備、測試時(shí)間為2 小時(shí)、優(yōu)先級(jí)第2。測試子任務(wù)3所需要的測試資源包括1臺(tái)測試儀和2臺(tái)測試設(shè)備,測試時(shí)間為6 小時(shí)、優(yōu)先級(jí)第3。測試子任務(wù)4所需要的測試資源需要1臺(tái)測試儀和3臺(tái)測試設(shè)備,測試時(shí)間為1 小時(shí)、優(yōu)先級(jí)第4。步驟S55 調(diào)度測試子任務(wù)。根據(jù)上邊是實(shí)施例一和二的描述,由任務(wù)調(diào)度模塊調(diào)度測試子任務(wù)。沿用上邊的例子,首先調(diào)度測試子任務(wù)1 ;然后依次調(diào)度測試子任務(wù)2、測試子任 務(wù)3、測試子任務(wù)4
步驟S56 查找當(dāng)前調(diào)度的測試子任務(wù)所需要的測試資源。根據(jù)上邊是實(shí)施例一和二的描述,由資源管理模塊查找是否存在符合當(dāng)前調(diào)度的 測試子任務(wù)的測試拓?fù)涞臏y試儀和測試設(shè)備。沿用上邊的例子,例如針對測試子任務(wù)1,假如測試儀1和測試設(shè)備1滿足測試子任務(wù)1的測試拓?fù)?,?處于空閑狀態(tài),即查找到了可用測試儀和測試設(shè)備。針對測試子任務(wù)2,假如測試儀2和測試設(shè)備2滿足測試子任務(wù)2的測試拓?fù)?,?處于空閑狀態(tài),即查找到了可用測試儀和測試設(shè)備。針對測試子任務(wù)3,假如測試儀3和測試設(shè)備3、4滿足測試子任務(wù)3的測試拓?fù)洌?且處于空閑狀態(tài),即查找到了可用測試儀和測試設(shè)備。針對測試子任務(wù)4,沒有查找到符合測試子任務(wù)4的測試需求的可用測試儀和測 試設(shè)備,則測試子任務(wù)4的狀態(tài)更改為等待狀態(tài)。步驟S57 對當(dāng)前調(diào)度的測試子任務(wù)進(jìn)行測試。由任務(wù)執(zhí)行模塊將查找到的測試儀和測試設(shè)備組成測試子系統(tǒng),對當(dāng)前調(diào)度的測 試子任務(wù)執(zhí)行測試。沿用上邊的例子,例如針對測試子任務(wù)1,將測試儀1和測試設(shè)備1通過拓?fù)淝袚Q設(shè)備組成測試子系統(tǒng) 1,對測試子任務(wù)1進(jìn)行測試;并將測試儀1和測試設(shè)備1狀態(tài)改為使用狀態(tài)。針對測試子任務(wù)2,將測試儀2和測試設(shè)備2通過拓?fù)淝袚Q設(shè)備組成測試子系統(tǒng) 2,對測試子任務(wù)2進(jìn)行測試;并將測試儀2和測試設(shè)備2狀態(tài)改為使用狀態(tài)。針對測試子任務(wù)3,將測試儀3和測試設(shè)備3、4通過拓?fù)淝袚Q設(shè)備組成測試子系統(tǒng) 3,對測試子任務(wù)3進(jìn)行測試;并將測試儀3和測試設(shè)備3、4狀態(tài)改為使用狀態(tài)。步驟S58 測試子任務(wù)測試完成釋放測試資源,觸發(fā)測試任務(wù)調(diào)度流程。測試子任務(wù)完成后任務(wù)執(zhí)行模塊通知資源管理模塊釋放所占用的測試儀和測試 設(shè)備。仍沿用上邊的例子,例如等待一個(gè)小時(shí)后測試子任務(wù)1執(zhí)行結(jié)束,測試儀1和測試設(shè)備1被釋放。又等待一個(gè)小時(shí)后測試子任務(wù)2 (即等待兩個(gè)小時(shí)后)執(zhí)行結(jié)束,測試儀2和測試 設(shè)備2被釋放。測試子任務(wù)2測試完成后,測試任務(wù)4開始測試,再等待一個(gè)小時(shí)后測試子任務(wù) 4(即等待三個(gè)小時(shí)后)執(zhí)行結(jié)束,測試儀1和測試設(shè)備1、2、5被釋放。步驟S59 對測試任務(wù)隊(duì)列中的測試子任務(wù)進(jìn)行調(diào)度。沿用上邊的例子,例如當(dāng)測試子任務(wù)1測試完成時(shí),先調(diào)度測試任務(wù)隊(duì)列處于待測試狀態(tài)的測試子任 務(wù),此時(shí)處于待測試狀態(tài)的只有測試子任務(wù)4,則由于釋放了測試儀1和測試設(shè)備1,空閑的 測試資源只有測試儀1、4,測試設(shè)備1、5。不能滿足測試測試子任務(wù)4的測試需求。則測試 子任務(wù)4繼續(xù)等待,同時(shí)開始調(diào)度正在運(yùn)行的測試子任務(wù)2和3。由于測試子任務(wù)3的剩余執(zhí)行時(shí)間比較長,因此先調(diào)度測試子任務(wù)3,例如測試儀 1和測試設(shè)備1、5滿足測試需求。在調(diào)度了測試子任務(wù)3之后調(diào)度測試任務(wù)2,剩余的測試資源不能滿足其測試需求了。又例如當(dāng)測試子任務(wù)2測試完成時(shí),先調(diào)度測試任務(wù)隊(duì)列處于待測試狀態(tài)的測試子任 務(wù),此時(shí)處于待測試狀態(tài)的只有測試子任務(wù)4,則由于又釋放了測試儀2和測試設(shè)備2,可用 的測試資源有測試儀1、2、4,測試設(shè)備1、2、5,能滿足測試測試子任務(wù)4的測試需求。例如 測試儀1和測試設(shè)備1、2、5滿足測試需求。在調(diào)度了測試子任務(wù)4之后調(diào)度測試任務(wù)3,剩余的測試資源不能滿足其測試需 求了。再例如當(dāng)測試子任務(wù)4測試完成時(shí),測試任務(wù)隊(duì)列沒有處于待測試狀態(tài)的測試子任務(wù), 則開始調(diào)度正在運(yùn)行的測試子任3。此時(shí)空閑的測試資源只有測試儀1、2、4,測試設(shè)備1、2、 5,能夠測試子任務(wù)3的測試需求。例如測試儀1和測試設(shè)備1、2滿足測試需求。步驟S60 對當(dāng)前調(diào)度的測試子任務(wù)進(jìn)行分解后并行測試。若當(dāng)前調(diào)度的是待測試狀態(tài)的測試子任務(wù),則直接組成測試子系統(tǒng)進(jìn)行測試,將 占用的測試資源該為使用狀態(tài)。若當(dāng)前調(diào)度的是正在測試狀態(tài)的測試子任務(wù),則組成測試 子系統(tǒng)進(jìn)行測試,將占用的測試資源該為可獲取狀態(tài)。沿用上邊的例子,例如在測試子任務(wù)1測試完成后,將測試測試儀1和測試設(shè)備1、5組成測試子系統(tǒng)4, 將測試子任務(wù)3拆分出一個(gè)子測試子任務(wù),由測試子系統(tǒng)4執(zhí)行測試。從而實(shí)現(xiàn)了對測試 子任務(wù)3的并行測試。當(dāng)測試子任務(wù)2測試完成時(shí),需要測試儀1和測試設(shè)備1、2、5組成測試子系統(tǒng)5, 由測試子系統(tǒng)5對測試子任務(wù)4的進(jìn)行測試。由于測試儀1和測試設(shè)備1、5屬于可獲取的 測試資源,因此,需要先停止測試子任務(wù)3的子測試子任務(wù)的并行測試,釋放測試資源并將 測試子任務(wù)3的子測試子任務(wù)合并回測試子任務(wù)3中。再例如當(dāng)測試子任務(wù)4測試完成時(shí)將測試儀1和測試設(shè)備1、2組成測試子系統(tǒng)6,將測試 子任務(wù)3拆分出一個(gè)子測試子任務(wù),由測試子系統(tǒng)6執(zhí)行測試。從而實(shí)現(xiàn)了對測試子任務(wù) 3的并行測試。上述處理過程僅可能的充分利用你夠了自動(dòng)測試系統(tǒng)中的測試資源,盡量保證每 個(gè)測試子任務(wù)都有一套測試資源可以被使用,縮短了測試任務(wù)的總體測試時(shí)間。步驟S61 完成對提交的測試任務(wù)的測試。沿用上邊的例子,當(dāng)測試熱舞3測試完成時(shí),完成對提交的測試任務(wù)1的測試。上述僅僅是以提交一個(gè)測試任務(wù)為例進(jìn)行說明,實(shí)際應(yīng)用中,可以在測試過程中 隨時(shí)提交測試任務(wù)進(jìn)行測試。本發(fā)明實(shí)施例提供的上述自動(dòng)測試系統(tǒng)、方法及拓?fù)浣粨Q設(shè)備,通過拓?fù)淝袚Q設(shè) 備連接測試儀和測試設(shè)備,實(shí)現(xiàn)根據(jù)不同測試子任務(wù)的測試拓?fù)湫枨髣?dòng)態(tài)組成不同的測試 子系統(tǒng),對各個(gè)測試子任務(wù)進(jìn)行測試,這樣只要測試儀和測試設(shè)備未被占用,就可以被待測 試的測試子任務(wù)使用,從而能夠充分利用測試系統(tǒng)中的測試資源,包括各個(gè)測試儀和測試 設(shè)備。提高了測試資源利用率,實(shí)現(xiàn)了測試資源的共享使用。由于不同的子系統(tǒng)可以動(dòng)態(tài)
20組成,減少了測試資源空閑的可能性。該方法可以不受測試拓?fù)漕愋偷南拗疲恍柰ㄟ^拓?fù)淝袚Q設(shè)備即可動(dòng)態(tài)利用和共 享測試儀和測試設(shè)備形成各種測試拓?fù)涞臏y試子系統(tǒng),為要求不同測試拓?fù)涞臏y試子任務(wù) 所用??梢酝瑫r(shí)組成多個(gè)測試子系統(tǒng),提高測試的速度和效率,尤其是在運(yùn)行多個(gè)測試子任 務(wù)時(shí),其提高測試速度和執(zhí)行效率的作用更加顯著。該方法只要有空閑的測試資源時(shí)就能夠被各個(gè)不同測試拓?fù)漕愋偷臏y試子任務(wù) 充分利用,且在沒有待測試的測試子任務(wù)時(shí),還可以將正在測試測試子任務(wù)進(jìn)行分解并行 測試。從而進(jìn)一步提高測試執(zhí)行效率,縮短測試時(shí)間。當(dāng)有待測試的測試子任務(wù)時(shí),可已經(jīng) 并行測試的測試資源釋放出來,盡量保證每個(gè)的測試子任務(wù)都能夠盡快獲取到可用的測試 資源,減少等待時(shí)間。該方法可以綜合考慮各個(gè)測試儀和測試設(shè)備的狀態(tài)實(shí)現(xiàn)協(xié)調(diào)共享使用,結(jié)合測試 子系統(tǒng)檢測機(jī)制,檢測測試拓?fù)涞臏y試子系統(tǒng)是否可以使用,測試拓?fù)渲械母鱾€(gè)測試儀和 測試設(shè)備是否能夠相互通信,在不能滿足測試需求時(shí),可以及時(shí)切換到其他符合測試條件 的測試資源執(zhí)行測試,減小和盡量避免測試終止的可能性。上述自動(dòng)測試系統(tǒng)不需要針對不同的測試拓?fù)?,分別搭建多個(gè)測試系統(tǒng),不需要 區(qū)分測試子任務(wù)的測試拓?fù)?,有針對性的選擇固定搭建好的測試系統(tǒng)。而是根據(jù)測試子任 務(wù)的需求動(dòng)態(tài)組合。從而減少了測試儀和測試設(shè)備的投入數(shù)量,減少了自動(dòng)測試的成本投 入。且通過拓?fù)淝袚Q設(shè)備自動(dòng)動(dòng)態(tài)調(diào)配測試資源,減少了人工操作,節(jié)約了人力資源投入。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
一種自動(dòng)測試方法,其特征在于,包括將接收到的測試任務(wù)分解成測試子任務(wù)加入測試任務(wù)隊(duì)列中,所述測試子任務(wù)中包含的腳本所需的測試拓?fù)湎嗤徽{(diào)度測試隊(duì)列中的測試子任務(wù),根據(jù)當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測試拓?fù)?,查找是否有所述測試拓?fù)渌璧目捎脿顟B(tài)的測試儀和測試設(shè)備;通過拓?fù)淝袚Q設(shè)備將查找到的可用狀態(tài)的測試儀和測試設(shè)備組成測試子系統(tǒng)對測試子任務(wù)進(jìn)行測試。
2.如權(quán)利要求1所述的方法,其特征在于,所述將接收到的測試任務(wù)分解成測試子任 務(wù)加入測試任務(wù)隊(duì)列中,具體包括根據(jù)接收到的測試任務(wù)中各個(gè)測試腳本所需的測試拓?fù)洌瑢⑺鰷y試任務(wù)中的測試腳 本進(jìn)行分類,得到包含需要相同測試拓?fù)涞臏y試腳本的測試子任務(wù);根據(jù)測試子任務(wù)的優(yōu)先級(jí)將測試子任務(wù)加入測試任務(wù)隊(duì)列中,并記錄測試子任務(wù)的狀 態(tài)fe息。
3.如權(quán)利要求1所述的方法,其特征在于,所述調(diào)度測試隊(duì)列中的測試子任務(wù),具體包括當(dāng)接收到的測試任務(wù)時(shí)或當(dāng)有測試子任務(wù)測試完成時(shí),按照優(yōu)先級(jí)順序依次調(diào)度測試 隊(duì)列中待測試的測試子任務(wù);若沒有可調(diào)度的待測試的測試子任務(wù)或待測試的測試子任務(wù)調(diào)度完成時(shí),則調(diào)度正在 測試的測試子任務(wù)。
4.如權(quán)利要求1-3任一所述的方法,其特征在于,所述可用狀態(tài)的測試儀包括處于空 閑狀態(tài)的測試儀和/或處于可獲取狀態(tài)的測試儀;所述可用狀態(tài)的測試設(shè)備包括處于空閑狀態(tài)的測試設(shè)備,和/或處于可獲取狀態(tài)的 測試設(shè)備;上述處于可獲取狀態(tài)的測試儀和測試設(shè)備是指被由正在運(yùn)行的測試子任務(wù)分解出來 的子測試子任務(wù)占用的測試儀和測試設(shè)備。
5.如權(quán)利要求4所述的方法,其特征在于,所述根據(jù)當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的 測試拓?fù)洌檎沂欠裼兴鰷y試拓?fù)渌璧目捎脿顟B(tài)的測試儀和測試設(shè)備;包括若當(dāng)前調(diào)度的測試子任務(wù)為待測試的測試子任務(wù)時(shí),根據(jù)當(dāng)前調(diào)度的測試子任務(wù)所對 應(yīng)的測試拓?fù)洌檎沂欠裼性摐y試拓?fù)渌璧奶幱诳臻e狀態(tài)和/或處于可獲取狀態(tài)的測試 儀和測試設(shè)備;若當(dāng)前調(diào)度的測試子任務(wù)為正在測試的測試子任務(wù)時(shí),根據(jù)當(dāng)前調(diào)度的測試子任務(wù)所 對應(yīng)的測試拓?fù)洌檎矣性摐y試拓?fù)渌璧奶幱诳臻e狀態(tài)的測試儀和測試設(shè)備。
6.如權(quán)利要求5所述的方法,其特征在于,若當(dāng)前調(diào)度的測試子任務(wù)為正在測試的測 試子任務(wù)時(shí),所述將查找到的可用狀態(tài)的測試儀和測試設(shè)備組成測試子系統(tǒng)對測試子任務(wù) 進(jìn)行測試,具體包括獲取空閑狀態(tài)的測試儀和測試設(shè)備,按照當(dāng)前調(diào)度的測試子任務(wù)所需的測試拓?fù)鋵⒖捎脿顟B(tài)的測試儀和測試設(shè)備連接起 來,組成與當(dāng)前調(diào)度的測試子任務(wù)所需的測試拓?fù)鋵?yīng)的測試子系統(tǒng);將當(dāng)前調(diào)度的正在測試的測試子任務(wù)進(jìn)行分解,通過組成的測試子系統(tǒng)執(zhí)行分解出的子測試子任務(wù)的測試腳本。
7.一種自動(dòng)測試裝置,其特征在于,包括任務(wù)接收模塊、任務(wù)調(diào)度模塊、資源管理模 塊和任務(wù)執(zhí)行模塊;所述任務(wù)接收模塊,用于將接收到的測試任務(wù)分解成測試子任務(wù)加入測試任務(wù)隊(duì)列 中,所述測試子任務(wù)中包含的腳本所需的測試拓?fù)湎嗤?;所述任?wù)調(diào)度模塊,用于調(diào)度測試隊(duì)列中的測試子任務(wù),將當(dāng)前調(diào)度的測試子任務(wù)所 對應(yīng)的測試拓?fù)渫ㄖo資源管理模塊;以及當(dāng)所述資源管理模塊通知查找到所述測試拓?fù)?所需的可用狀態(tài)的測試儀和測試設(shè)備時(shí),將當(dāng)前調(diào)度的測試子任務(wù)和資源管理模塊查找到 的所需的可用狀態(tài)的測試儀和測試設(shè)備,通知所述任務(wù)執(zhí)行模塊;所述資源管理模塊,用于根據(jù)任務(wù)調(diào)度模塊通知的當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測 試拓?fù)洳檎沂欠裼兴鰷y試拓?fù)渌璧目捎脿顟B(tài)的測試儀和測試設(shè)備,并通知任務(wù)調(diào)度模 塊;所述任務(wù)執(zhí)行模塊,用于通過拓?fù)淝袚Q設(shè)備將所述任務(wù)調(diào)度模塊通知的查找到的可用 狀態(tài)的測試儀和測試設(shè)備組成測試子系統(tǒng)對測試子任務(wù)進(jìn)行測試。
8.如權(quán)利要求7所述的自動(dòng)測試裝置,其特征在于,所述任務(wù)接收模塊,具體包括分解單元,用于根據(jù)接收到的測試任務(wù)中各個(gè)測試腳本的所需的測試拓?fù)洌瑢⑺鰷y 試任務(wù)中的測試腳本進(jìn)行分類,得到包含需要相同測試拓?fù)涞娜舾蓽y試腳本的測試子任 務(wù);入隊(duì)單元,用于根據(jù)測試子任務(wù)的優(yōu)先級(jí)將測試子任務(wù)加入測試任務(wù)隊(duì)列中,并記錄 測試子任務(wù)的狀態(tài)信息。
9.如權(quán)利要求7所述的自動(dòng)測試裝置,其特征在于,所述任務(wù)調(diào)度模塊,具體包括第一調(diào)度單元,用于當(dāng)所述任務(wù)接收模塊接收到的測試任務(wù)時(shí)或當(dāng)所述任務(wù)執(zhí)行模塊通知有測試子任務(wù)測試完成時(shí),按照優(yōu)先級(jí)順序依次調(diào)度測試隊(duì)列中待測試的測試子任 務(wù);若沒有可調(diào)度的待測試的測試子任務(wù)或待測試的測試子任務(wù)調(diào)度完成時(shí),則調(diào)度正在 測試的測試子任務(wù);第二調(diào)度單元,用于當(dāng)所述資源管理模塊查找到所述測試拓?fù)渌璧目捎脿顟B(tài)的測試 儀和測試設(shè)備,將當(dāng)前調(diào)度的測試子任務(wù)和資源管理模塊查找到的所需的可用狀態(tài)的測試 儀和測試設(shè)備,通知所述任務(wù)執(zhí)行模塊。
10.如權(quán)利要求7-9任一所述的自動(dòng)測試裝置,其特征在于,還包括測試資源數(shù)據(jù)庫, 用于存儲(chǔ)測試儀和測試設(shè)備的使用狀態(tài)信息;所述狀態(tài)信息包括空閑狀態(tài)、可獲取狀態(tài)和 使用狀態(tài);所述處于可獲取狀態(tài)的測試儀和測試設(shè)備是指被由正在運(yùn)行的測試子任務(wù)分解 出來的子測試子任務(wù)占用的測試儀和測試設(shè)備;所述資源管理模塊,具體用于根據(jù)任務(wù)調(diào)度模塊通知的當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng) 的測試拓?fù)洳檎宜鰷y試資源數(shù)據(jù)庫,確定是否有所述測試拓?fù)渌璧目捎脿顟B(tài)的測試儀 和測試設(shè)備,并通知任務(wù)調(diào)度模塊;其中,若當(dāng)前調(diào)度的是待測試的測試子任務(wù)時(shí),可用狀 態(tài)的測試儀和測試設(shè)備包括空閑狀態(tài)和可獲取狀態(tài)的測試儀和測試設(shè)備;若當(dāng)前調(diào)度的是 正在測試的測試子任務(wù)時(shí),可用狀態(tài)的測試儀和測試設(shè)備包括空閑狀態(tài)的測試儀和測試設(shè) 備。
11.如權(quán)利要求10所述的自動(dòng)測試裝置,其特征在于,所述資源管理模塊,具體包括第一查找模塊,用于若當(dāng)前調(diào)度的測試子任務(wù)為待測試的測試子任務(wù)時(shí),根據(jù)當(dāng)前調(diào) 度的測試子任務(wù)所對應(yīng)的測試拓?fù)?,查找所述測試資源數(shù)據(jù)庫,確定是否有該測試拓?fù)渌?需的處于空閑狀態(tài)和/或處于可獲取狀態(tài)的測試儀和測試設(shè)備;第二查找模塊,用于若當(dāng)前調(diào)度的測試子任務(wù)為正在測試的測試子任務(wù)時(shí),根據(jù)當(dāng)前 調(diào)度的測試子任務(wù)所對應(yīng)的測試拓?fù)洌檎宜鰷y試資源數(shù)據(jù)庫,確定是否有該測試拓?fù)?所需的處于空閑狀態(tài)的測試儀和測試設(shè)備。
12.如權(quán)利要求11所述的自動(dòng)測試裝置,其特征在于,所述任務(wù)執(zhí)行模塊,具體包括 組合單元,用于獲取可用狀態(tài)的測試儀和測試設(shè)備,由所述拓?fù)淝袚Q設(shè)備按照當(dāng)前調(diào)度的測試子任務(wù)所需的測試拓?fù)鋵⒖捎脿顟B(tài)的測試儀和測試設(shè)備連接起來,組成與當(dāng)前調(diào) 度的測試子任務(wù)所需的測試拓?fù)鋵?yīng)的測試子系統(tǒng);執(zhí)行單元,用于若當(dāng)前調(diào)度的測試子任務(wù)為待測試的測試子任務(wù)時(shí),通過組成的測試 子系統(tǒng)執(zhí)行當(dāng)前調(diào)度的測試子任務(wù)的測試腳本;若當(dāng)前調(diào)度的測試子任務(wù)為正在測試的測 試子任務(wù)時(shí),將當(dāng)前調(diào)度的正在測試的測試子任務(wù)進(jìn)行分解,通過組成的測試子系統(tǒng)執(zhí)行 分解出的子測試子任務(wù)的測試腳本。
13.一種自動(dòng)測試系統(tǒng),其特征在于,包括若干測試儀、若干測試設(shè)備、拓?fù)淝袚Q設(shè)備 和上述權(quán)利要求7-12任一所述的自動(dòng)測試裝置;所述自動(dòng)測試裝置,用于將接收到的測試任務(wù)分解成測試子任務(wù)加入測試任務(wù)隊(duì)列 中,所述測試子任務(wù)中包含的腳本所需的測試拓?fù)湎嗤徽{(diào)度測試隊(duì)列中的測試子任務(wù),根 據(jù)當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測試拓?fù)?,查找是否有所述測試拓?fù)渌璧目捎脿顟B(tài)的 測試儀和測試設(shè)備;控制拓?fù)淝袚Q設(shè)備將查找到的可用狀態(tài)的測試儀和測試設(shè)備組成測試 子系統(tǒng)對測試子任務(wù)進(jìn)行測試;所述拓?fù)淝袚Q設(shè)備,用于連接所述測試儀和測試設(shè)備,將自動(dòng)測試裝置查找到的可用 狀態(tài)的測試儀和測試設(shè)備組成測試子系統(tǒng)。
全文摘要
本發(fā)明公開了一種腳本自動(dòng)測試方法、系統(tǒng)及裝置,該方法包括將接收到的測試任務(wù)分解成測試子任務(wù)加入測試任務(wù)隊(duì)列中,所述測試子任務(wù)中包含的腳本所需的測試拓?fù)湎嗤?;調(diào)度測試隊(duì)列中的測試子任務(wù),根據(jù)當(dāng)前調(diào)度的測試子任務(wù)所對應(yīng)的測試拓?fù)?,查找是否有所述測試拓?fù)渌璧目捎脿顟B(tài)的測試儀和測試設(shè)備;通過拓?fù)淝袚Q設(shè)備將查找到的可用狀態(tài)的測試儀和測試設(shè)備組成測試子系統(tǒng)對測試子任務(wù)進(jìn)行測試。該方式可以實(shí)現(xiàn)測試儀和測試設(shè)備的動(dòng)態(tài)組合,從而能夠充分利用測試系統(tǒng)中的測試資源,提高測試的速度和效率。
文檔編號(hào)H04L12/26GK101917306SQ20101025974
公開日2010年12月15日 申請日期2010年8月20日 優(yōu)先權(quán)日2010年8月20日
發(fā)明者李炳泉 申請人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司