国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種自動(dòng)化測試方法和裝置的制作方法

      文檔序號(hào):6585012閱讀:226來源:國知局
      專利名稱:一種自動(dòng)化測試方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,具體而言,涉及一種自動(dòng)化測試方法和裝置。
      背景技術(shù)
      WindowsQX操作系統(tǒng)易破壞且不穩(wěn)定,使用時(shí)間久了,系統(tǒng)中便會(huì)留下一堆堆垃 圾文件,使系統(tǒng)相當(dāng)臃腫,造成系統(tǒng)運(yùn)行速度慢、頻繁出錯(cuò)甚至死機(jī)。而對于Windows NT 或者WindOWS2000等操作系統(tǒng),也存在諸多問題,導(dǎo)致需要經(jīng)常重新安裝操作系統(tǒng),安裝 Windows操作系統(tǒng)花費(fèi)的時(shí)間大約為一個(gè)小時(shí)左右,可是讓系統(tǒng)恢復(fù)到正常使用的狀態(tài),即 安裝有各種程序軟件的狀態(tài),卻需要花費(fèi)很長時(shí)間和精力,影響用戶正常使用計(jì)算機(jī)。目前,測試工作往往一次只在一個(gè)操作系統(tǒng)版本下測試一個(gè)或多個(gè)測試用例;同 時(shí),相關(guān)技術(shù)中的測試工作過多的依賴操作人員參與完成,具體體現(xiàn)在1.需要手工選擇并人工恢復(fù)操作系統(tǒng);2.需要手工選擇并啟動(dòng)操作系統(tǒng);3.需要人工登錄操作系統(tǒng);4.需要人工啟動(dòng)測試程序。由于測試工作重復(fù)性高,任務(wù)量大,且隨著技術(shù)水平的提高,越來越多的測試需要 在多個(gè)操作系統(tǒng)版本下執(zhí)行,對每個(gè)操作系統(tǒng)版本進(jìn)行測試時(shí),每次都需要操作者手動(dòng)選 擇并啟動(dòng)操作系統(tǒng)、人工登錄操作系統(tǒng)、人工啟動(dòng)測試程序和人工進(jìn)行操作系統(tǒng)的恢復(fù)等 操作,給操作者帶來了較大的工作量;因此,采用相關(guān)的測試方法往往需要投入大量的人力 和時(shí)間成本,使用不方便。針對相關(guān)測試技術(shù)中需要投入大量的人力和時(shí)間成本的問題,目前尚未提出有效 的解決方案。

      發(fā)明內(nèi)容
      針對相關(guān)測試技術(shù)中需要大量的人力和時(shí)間成本的問題而提出本發(fā)明,為此,本 發(fā)明的主要目的在于提供一種自動(dòng)化測試方法和裝置,以解決上述問題至少之一。 為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種自動(dòng)化測試方法。 根據(jù)本發(fā)明的自動(dòng)化測試方法包括 依次地恢復(fù)各個(gè)操作系統(tǒng); 對當(dāng)前恢復(fù)的操作系統(tǒng)加載被測試程序; 針對所述被加載的被測試程序測試用例群; 其中,通過執(zhí)行框架程序?qū)崿F(xiàn)上述步驟的流程控制。
      為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種自動(dòng)化測試裝置,包括 系統(tǒng)恢復(fù)模塊,用于依次地恢復(fù)各個(gè)操作系統(tǒng);
      加載模塊,用于對所述系統(tǒng)恢復(fù)模塊當(dāng)前恢復(fù)的操作系統(tǒng)加載被測試程序; 測試模塊,用于針對所述加載模塊加載的被加載的被測試程序測試用例群;
      框架程序控制模塊,用于通過執(zhí)行框架程序?qū)λ鱿到y(tǒng)恢復(fù)模塊、所述加載模塊 和所述測試模塊進(jìn)行控制。本發(fā)明通過采用執(zhí)行框架程序,可以實(shí)現(xiàn)自動(dòng)控制操作系統(tǒng)的恢復(fù),以及自動(dòng)啟 動(dòng)恢復(fù)的操作系統(tǒng),進(jìn)而實(shí)現(xiàn)自動(dòng)化測試恢復(fù)的操作系統(tǒng),解決了測試較多依賴人工參與 才能完成的問題,不需要投入太多的人力和花費(fèi)過多的時(shí)間,優(yōu)化了測試操作;尤其對多個(gè) 操作系統(tǒng)版本進(jìn)行測試,不必每次都人工參與操作系統(tǒng)的恢復(fù)、人工啟動(dòng)恢復(fù)的操作系統(tǒng) (人工登錄恢復(fù)的操作系統(tǒng))、以及人工啟動(dòng)被測試程序,較大地節(jié)省的人力和時(shí)間,提高 了測試效率。


      此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖1是本發(fā)明實(shí)施例提供的自動(dòng)化測試方法的流程圖;圖2是本發(fā)明實(shí)施例1提供的自動(dòng)化測試方法的流程圖;圖3是本發(fā)明實(shí)施例1提供的恢復(fù)操作系統(tǒng)的方法流程圖;圖4是本發(fā)明實(shí)施例1提供的自動(dòng)安裝軟件開發(fā)包的方法流程圖;圖5是本發(fā)明實(shí)施例1提供的自動(dòng)執(zhí)行測試用例群的方法流程圖;圖6是本發(fā)明實(shí)施例2提供的自動(dòng)化測試方法的流程圖;圖7是本發(fā)明實(shí)施例2提供的自動(dòng)恢復(fù)Linux B系統(tǒng)的自動(dòng)配置方法流程圖;圖8是本發(fā)明實(shí)施例2提供的判斷當(dāng)前操作系統(tǒng)是否未被測試過的方法流程圖;圖9是本發(fā)明實(shí)施例2提供的自動(dòng)安裝軟件開發(fā)包的方法流程圖;圖10是本發(fā)明實(shí)施例2提供的自動(dòng)執(zhí)行測試用例群的方法流程圖;圖11是本發(fā)明實(shí)施例提供的自動(dòng)化測試裝置的結(jié)構(gòu)框圖。
      具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的 情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面結(jié)合附圖對技術(shù)方案的實(shí)施作進(jìn)一步的詳細(xì)描述本發(fā)明實(shí)施例提供了一種自動(dòng)化測試方法,如圖1所示,該方法包括步驟10 依次地恢復(fù)各個(gè)操作系統(tǒng);步驟20 對當(dāng)前恢復(fù)的操作系統(tǒng)加載被測試程序;該被測試程序具體可以為用于測試的軟件開發(fā)包。步驟30 針對所述被加載的被測試程序測試用例群;其中,本發(fā)明實(shí)施例是通過執(zhí)行框架程序?qū)崿F(xiàn)上述步驟的流程控制。其中,上述框架程序?yàn)樽远x的測試框架,本實(shí)施例為Framework,其中包含有系 統(tǒng)恢復(fù)過程中用到的一系列文件,這些文件由用戶事先手動(dòng)定義完成。本實(shí)施例通過執(zhí)行上述框架程序?qū)崿F(xiàn)步驟10至步驟30的流程控制,該框架程序 可以根據(jù)系統(tǒng)的具體情況自動(dòng)完成操作系統(tǒng)的恢復(fù)、被測試程序的加載和用例群的測試, 而不再需要操作者手動(dòng)觸發(fā)上述過程,較大地縮短了測試時(shí)間和節(jié)省了測試費(fèi)用,提高了測試效率。優(yōu)選的,通過執(zhí)行框架程序?qū)崿F(xiàn)上述步驟的流程控制包括在該框架程序中設(shè)置第一標(biāo)識(shí);啟動(dòng)該框架程序;第一標(biāo)識(shí)的狀態(tài)值為第一工作狀態(tài)時(shí),確定執(zhí)行上述步驟10,即,依次地恢復(fù)各個(gè) 操作系統(tǒng)的步驟;第一標(biāo)識(shí)的狀態(tài)值為第二工作狀態(tài)時(shí),確定執(zhí)行上述步驟20,即,對當(dāng)前恢復(fù)的操 作系統(tǒng)加載被測試程序的步驟;第一標(biāo)識(shí)的狀態(tài)值為第三工作狀態(tài)時(shí),確定執(zhí)行上述步驟30,即,針對被加載的被 測試程序測試用例群的步驟。優(yōu)選的,上述第一標(biāo)識(shí)的狀態(tài)值為第一工作狀態(tài)時(shí),確定執(zhí)行依次地恢復(fù)各個(gè)操 作系統(tǒng)的步驟(即步驟10)包括修改上述第一標(biāo)識(shí)的狀態(tài)值為第二工作狀態(tài)。優(yōu)選的,當(dāng)上述框架程序在Windows操作系統(tǒng)環(huán)境下運(yùn)行時(shí),第一標(biāo)識(shí)的狀態(tài)值 為第一工作狀態(tài)時(shí),確定執(zhí)行上述依次地恢復(fù)各個(gè)操作系統(tǒng)的步驟(即步驟10)包括從該框架程序的配置文件中讀取確定的操作系統(tǒng)的系統(tǒng)備份文件名和 GUID (Global Unique Identifier,全球唯一標(biāo)識(shí)碼);根據(jù)系統(tǒng)備份文件名組合成Ghost恢復(fù)軟件能識(shí)別的批處理文件;根據(jù)GUID生成系統(tǒng)啟動(dòng)命令,執(zhí)行該系統(tǒng)啟動(dòng)命令,將默認(rèn)系統(tǒng)啟動(dòng)設(shè)置為 WinPE ;啟動(dòng)上述WinPE,該WinPE根據(jù)該批處理文件對確定的操作系統(tǒng)進(jìn)行恢復(fù)。其中,根據(jù)上述⑶ID生成的系統(tǒng)啟動(dòng)命令具體可以是bcdedit命令,該命令可以 將默認(rèn)系統(tǒng)啟動(dòng)設(shè)置為WinPE ;WinPE是用于進(jìn)行系統(tǒng)恢復(fù)和備份的軟件;WinPE是帶有限服務(wù)的Windows子 系統(tǒng),基于以保護(hù)模式運(yùn)行的Windows XPProfessional內(nèi)核和Vista內(nèi)核。它包括運(yùn) 行Windows安裝程序及腳本、連接網(wǎng)絡(luò)共享、自動(dòng)化基本過程以及執(zhí)行硬件驗(yàn)證所需的 最小功能。換句話說,WinPE可以被看作是一個(gè)只擁有最少核心服務(wù)的小操作系統(tǒng)。與 Win9X/2000/XP相比,WinPE的主要不同點(diǎn)是它可以自定義制作自身的可啟動(dòng)副本,在保 證需要的核心服務(wù)的同時(shí)保持最小的操作系統(tǒng)體積,同時(shí)它又是標(biāo)準(zhǔn)的32位及64位視窗 API (Application Programming Interface,應(yīng)用程序編程接口)的系統(tǒng)平臺(tái)。bcdedit是一個(gè)管理BCD (Boot Configuration Data,啟動(dòng)系統(tǒng)引導(dǎo)配置數(shù)據(jù))文 件存儲(chǔ)的命令行工具。它有多種功能,包括創(chuàng)建新存儲(chǔ)、修改現(xiàn)有存儲(chǔ)以及添加啟動(dòng)菜單 選項(xiàng)等,它是編輯WindowsVista和更新版本的Windows的啟動(dòng)配置的主要工具。該工具 與Windows Vista分發(fā)一起包含在% WINDIR% \System32文件夾中。BCD文件提供了一個(gè) 用于描述啟動(dòng)應(yīng)用程序和啟動(dòng)應(yīng)用程序設(shè)置的存儲(chǔ),該存儲(chǔ)中的對象和元素可有效地替換 Boot. ini0當(dāng)該框架程序在Linux操作系統(tǒng)環(huán)境下運(yùn)行時(shí),第一標(biāo)識(shí)的狀態(tài)值為第一工作狀 態(tài)時(shí),確定執(zhí)行上述依次地恢復(fù)各個(gè)操作系統(tǒng)的步驟(即步驟10)包括從上述框架程序的配置文件中讀取確定的操作系統(tǒng)的系統(tǒng)備份文件名;根據(jù)上述系統(tǒng)備份文件名生成腳本文件;
      執(zhí)行上述腳本文件恢復(fù)確定的操作系統(tǒng)。其中,腳本文件可以為根據(jù)dd命令生成的dd腳本,dd命令是Linux/UNIX操作系 統(tǒng)中的一個(gè)命令,其功能是用指定大小的塊拷貝一個(gè)文件,并在拷貝的同時(shí)進(jìn)行指定的轉(zhuǎn)換。在Linux運(yùn)行環(huán)境下,上述框架程序可以通過Linux操作系統(tǒng)加載,加載過程包 括Linux操作系統(tǒng)啟動(dòng)后,調(diào)用編譯腳本文件,例如Shell腳本文件;執(zhí)行該編譯腳本文件中的編譯命令(例如make命令)生成上述框架程序;加載上述框架程序。優(yōu)選的,通過執(zhí)行上述框架程序?qū)崿F(xiàn)上述步驟的流程控制還包括在上述框架程序中設(shè)置第二標(biāo)識(shí);相應(yīng)地,第一標(biāo)識(shí)的狀態(tài)值為第一工作狀態(tài)時(shí),確定執(zhí)行上述依次地恢復(fù)各個(gè)操 作系統(tǒng)的步驟(即步驟10)包括啟動(dòng)上述框架程序后,根據(jù)第二標(biāo)識(shí)的系統(tǒng)指示值確定要恢復(fù)的操作系統(tǒng),對確 定的操作系統(tǒng)執(zhí)行恢復(fù)操作。本發(fā)明實(shí)施例中設(shè)置第二標(biāo)識(shí)是用來指示當(dāng)前對哪個(gè)操作系統(tǒng)進(jìn)行恢復(fù),框架程 序進(jìn)行操作系統(tǒng)恢復(fù)時(shí),可以根據(jù)第二標(biāo)識(shí)中的系統(tǒng)指示值確定當(dāng)前要恢復(fù)的操作系統(tǒng), 該系統(tǒng)指示值具體可以使用系統(tǒng)的標(biāo)識(shí)碼或者能夠標(biāo)識(shí)系統(tǒng)的其他值。優(yōu)選的,確定執(zhí)行上述對當(dāng)前恢復(fù)的操作系統(tǒng)加載被測試程序的步驟(即步驟 20)包括修改第一標(biāo)識(shí)的狀態(tài)值為第三工作狀態(tài)。優(yōu)選的,確定執(zhí)行上述對當(dāng)前恢復(fù)的操作系統(tǒng)加載被測試程序的步驟(即步驟 20)包括自動(dòng)讀取上述框架程序中的配置文件,從該配置文件中獲取被測試程序的名稱;將該被測試程序的名稱組合成能夠自動(dòng)安裝的批處理文件;執(zhí)行上述能夠自動(dòng)安裝的批處理文件,即可完成上述被測試程序的加載。優(yōu)選的,上述確定執(zhí)行針對上述被加載的被測試程序測試用例群的步驟(即步驟 30)包括自動(dòng)讀取上述框架程序的配置文件中的第二標(biāo)識(shí)的系統(tǒng)指示值;當(dāng)上述第二標(biāo)識(shí)的系統(tǒng)指示值不為第一值時(shí),讀取用例群中配置文件的個(gè)數(shù);其 中,第一值為預(yù)先設(shè)定的,可以為0或其他數(shù)值;當(dāng)上述用例群中配置文件的個(gè)數(shù)是不為0時(shí),執(zhí)行上述被加載的被測試程序,寫 日志文件,直至執(zhí)行完所有的用例群;判斷是否執(zhí)行到最后一個(gè)操作系統(tǒng),如果是,將上述第二標(biāo)識(shí)的系統(tǒng)指示值設(shè)置 為上述第一值,并修改上述第一標(biāo)識(shí)的狀態(tài)值為第四工作狀態(tài);否則,將上述第二標(biāo)識(shí)的系 統(tǒng)指示值加1,并修改上述第一標(biāo)識(shí)的狀態(tài)值為第一工作狀態(tài)。優(yōu)選的,上述判斷是否執(zhí)行到最后一個(gè)操作系統(tǒng)的步驟包括判斷上述第二標(biāo)識(shí)的系統(tǒng)指示值是否等于上述配置文件中的操作系統(tǒng)數(shù),如果等 于,上述當(dāng)前操作系統(tǒng)為最后一個(gè)操作系統(tǒng);否則,上述當(dāng)前操作系統(tǒng)不是最后一個(gè)操作系統(tǒng)。本發(fā)明實(shí)施例通過采用執(zhí)行框架程序,可以實(shí)現(xiàn)自動(dòng)控制操作系統(tǒng)的恢復(fù),以及 自動(dòng)啟動(dòng)恢復(fù)的操作系統(tǒng),進(jìn)而實(shí)現(xiàn)自動(dòng)化測試恢復(fù)的操作系統(tǒng),解決了測試較多依賴人 工參與才能完成的問題,不需要投入太多的人力和花費(fèi)過多的時(shí)間,優(yōu)化了測試操作;尤其 對多個(gè)操作系統(tǒng)版本進(jìn)行測試,不必每次都人工進(jìn)行操作系統(tǒng)的恢復(fù)、啟動(dòng)恢復(fù)的操作系 統(tǒng)、以及加載被測試程序和測試用例群等,較大地節(jié)省的人力和時(shí)間,提高了測試效率。實(shí)施例1本實(shí)施例提供的自動(dòng)化測試方法是在Windows運(yùn)行環(huán)境下實(shí)現(xiàn)的,本發(fā)明實(shí)施例 1中,F(xiàn)ramework為自定義的測試框架,其中包含有系統(tǒng)恢復(fù)過程中用到的一系列文件,這 些文件由用戶事先手動(dòng)定義完成。使用本發(fā)明實(shí)施例1提供的自動(dòng)化測試方法之前,先對計(jì)算機(jī)進(jìn)行以下手動(dòng)配 置,包括 安裝Windows操作系統(tǒng);配置需要自動(dòng)恢復(fù)的各個(gè)操作系統(tǒng),使這些操作系統(tǒng)能夠自動(dòng)進(jìn)行登錄,并在登 錄后自動(dòng)運(yùn)行測試Framework ;進(jìn)一步配置上述各操作系統(tǒng),使其能夠進(jìn)行自動(dòng)恢復(fù);需要說明的是,本步驟配置 的內(nèi)容包括A)加載 WinPE 2. 0 ;B)通過Vista系統(tǒng)提供的bcdedit工具創(chuàng)建WinPE的啟動(dòng)項(xiàng),使計(jì)算機(jī)啟動(dòng)后在 操作系統(tǒng)選擇列表中出現(xiàn)2個(gè)bed條目;C)將創(chuàng)建bed條目時(shí)產(chǎn)生的⑶ID的值寫入配置文件中(sysbakFile. ini),以便 自動(dòng)切換系統(tǒng)時(shí)用;D)將配置完的系統(tǒng)進(jìn)行備份,將備份文件的名稱寫入恢復(fù)配置文件(sysbakFile. ini)中;E)編寫控制 Framework 進(jìn)程的配置文件(sysAutoFile. ini)。將配置完的系統(tǒng)進(jìn)行備份時(shí),可以通過GHOST (GeneralHardware Oriented Software Transfer,面向通用型硬件傳送軟件)實(shí)現(xiàn),GHOST可以把磁盤上的內(nèi)容備份到 鏡像文件中去,也可以快速的把鏡像文件恢復(fù)到磁盤中,實(shí)現(xiàn)一個(gè)干凈的操作系統(tǒng)。GHOST實(shí)現(xiàn)備份的具體過程為在安裝操作系統(tǒng)時(shí),把所有的系統(tǒng)組件都安裝上, 然后安裝各種各樣的系統(tǒng)補(bǔ)丁,創(chuàng)建第一個(gè)GH0備份文件,這個(gè)備份文件可以在已有的應(yīng) 用軟件都已經(jīng)過時(shí)的時(shí)候重新安裝軟件;或者,在安裝完所有熟悉的軟件后創(chuàng)建一個(gè)GH0 備份文件,用以系統(tǒng)重裝后隨時(shí)恢復(fù)到所熟悉的工作環(huán)境?;謴?fù)配置文件sysbakFile. ini的格式如下[系統(tǒng)信息]COUNT = 16;bak name 備份的系統(tǒng)的文件名稱;⑶ID填入創(chuàng)建bed條目時(shí)產(chǎn)生的⑶ID值BAKNAME0 = WinXPX64SPlEN. GH0GUI DO =氺氺氺氺氺
      BAKNAME1 = WinXPX64SP2EN. GHOGUID1 =氺氺氺氺氺配置文件sysAutoFile. ini的格式如下[系統(tǒng)信息];等待系統(tǒng)完全啟動(dòng)時(shí)間(單位秒)WAITTIME = 10;操作系統(tǒng)總數(shù)0SNUM = 16;當(dāng)前操作系統(tǒng)ID,本實(shí)施例以操作系統(tǒng)ID作為第二標(biāo)識(shí)的系統(tǒng)指示值CURR0SID = 0;Framework工作狀態(tài)位,1 配置更新操作系統(tǒng),2 自動(dòng)安裝,3 自動(dòng)測試,_1 不 做任何操作STATE = -1;產(chǎn)品類型,0-999;0 產(chǎn)品1,1 產(chǎn)品2,2 產(chǎn)品3,3 產(chǎn)品4......PID = 9;產(chǎn)品名PNAME=測試群目錄;軟件開發(fā)包的安裝包文件名稱,UKey為runtime包的文件名稱SDKNAME = www English, exe;軟件開發(fā)包的描述SDKCAPT = My SDK en如果要進(jìn)行測試工作,則需要將sysAutoFile. ini文件的配置項(xiàng),即第一標(biāo)識(shí) STATE的狀態(tài)值設(shè)置為1,并根據(jù)測試要求進(jìn)行其它項(xiàng)的設(shè)置??商鎿Q的,本發(fā)明實(shí)施例中,系統(tǒng)配置文件sysbakFile. ini和控制Framework進(jìn) 程的配置文件(sysAutoFile. ini)可以合成一個(gè),這時(shí),原來系統(tǒng)配置文件sysbakFile. ini中的COUNT項(xiàng)和控制Framework進(jìn)程的配置文件sysAutoFile. ini中的0SNUM項(xiàng)應(yīng)該 統(tǒng)一成一個(gè),因?yàn)檫@兩個(gè)值含義相同,都表明需要進(jìn)行恢復(fù)的操作系統(tǒng)總數(shù)。如圖2所示,為本發(fā)明實(shí)施例1提供的自動(dòng)化測試方法的流程圖,包括步驟100 系統(tǒng)加載 Framework ;步驟101 Framework打開配置文件,讀取其中的Framework第一標(biāo)識(shí)的狀態(tài)值;該第一標(biāo)識(shí)的狀態(tài)值為上述手動(dòng)配置過程中設(shè)置的Framework的第一標(biāo)識(shí)的狀 態(tài)值(STATE的值),本實(shí)施例中Framework的第一標(biāo)識(shí)的狀態(tài)值的取值有四種,第一狀態(tài) 值配置更新操作系統(tǒng),第二狀態(tài)值自動(dòng)安裝被測試程序,第三狀態(tài)值自動(dòng)測試用例群, 第四狀態(tài)值不做任何操作;本發(fā)明實(shí)施例中,設(shè)定Framework的第一標(biāo)識(shí)的狀態(tài)值的第一狀態(tài)值為1 ;第二狀 態(tài)值為2 ;第三狀態(tài)值為3 ;第四狀態(tài)值為-1。步驟102 framework判斷第一標(biāo)識(shí)的狀態(tài)值,如果該值為1,執(zhí)行步驟103 ;如果 該值為2,執(zhí)行步驟104 ;如果該值為3,執(zhí)行步驟105 ;如果該值為-1,執(zhí)行步驟106 ;
      步驟103 Framework根據(jù)恢復(fù)配置文件sysbakFile. ini中的內(nèi)容組合Ghost能 識(shí)別的批處理文件、生成相應(yīng)命令,并執(zhí)行該命令,將計(jì)算機(jī)啟動(dòng)的默認(rèn)系統(tǒng)設(shè)置為WinPE, 進(jìn)行恢復(fù)系統(tǒng)操作的自動(dòng)配置;然后執(zhí)行步驟107 ;該步驟具體包括Framework讀取需要恢復(fù)的操作系統(tǒng)個(gè)數(shù),判斷當(dāng)前是否有操 作系統(tǒng)需要恢復(fù),如果沒有,結(jié)束全部操作;否則,讀取要恢復(fù)的系統(tǒng)備份文件的文件名和 GUID,并判斷當(dāng)前系統(tǒng)是否未被測試過,如果未被測試過且當(dāng)前系統(tǒng)不是最后一個(gè)系統(tǒng),則 根據(jù)上述獲取的文件名組合成Ghost恢復(fù)軟件能識(shí)別的批處理文件,同時(shí)還根據(jù)上述獲取 的⑶ID生成bcdedit命令,之后,F(xiàn)ramework執(zhí)行上述生成的bcdedit命令,將計(jì)算機(jī)的默 認(rèn)系統(tǒng)啟動(dòng)設(shè)置為WinPE;步驟104 自動(dòng)安裝被測試程序,本實(shí)施例中的被測試程序具體為用于測試的軟 件開發(fā)包,重啟當(dāng)前系統(tǒng),然后執(zhí)行步驟108 ;該步驟具體包括framework根據(jù)控制其進(jìn)程的系統(tǒng)配置文件sysAutoFile. ini中的軟件開發(fā)包名稱組合生成批處理文件setup, cmd,并根據(jù)系統(tǒng)恢復(fù)配置文件 sysbakFile. ini中的配置將當(dāng)前系統(tǒng)對應(yīng)的⑶ID保存起來,以便系統(tǒng)重啟后直接調(diào)取與 當(dāng)前操作系統(tǒng)對應(yīng)的GUID ;步驟105 自動(dòng)運(yùn)行測試用例群;該步驟具體包括framework自動(dòng)按順序執(zhí)行測試用例群,并記錄每個(gè)測試用例 運(yùn)行情況的日志文件;執(zhí)行完全部測試用例后,執(zhí)行步驟109 ;步驟106 結(jié)束測試,F(xiàn)ramework自行退出;步驟107 配置完成后,將Framework的第一標(biāo)識(shí)的狀態(tài)值(STATE)設(shè)置為2,重啟 進(jìn)入WinPE,WinPE根據(jù)上述配置恢復(fù)當(dāng)前操作系統(tǒng);結(jié)束配置更新操作系統(tǒng),然后返回步 驟 100 ;步驟108 framework修改第一標(biāo)識(shí)的狀態(tài)值(STATE)為3,并重啟當(dāng)前操作系統(tǒng), 然后返回步驟100 ;該步驟具體為將Framework的第一標(biāo)識(shí)的狀態(tài)值設(shè)置為3,表明系統(tǒng)安裝完軟件 開發(fā)包后需要執(zhí)行測試用例群;執(zhí)行上述組合好的setup, cmd ;重啟當(dāng)前操作系統(tǒng),返回步 驟 100 ;步驟109 framework根據(jù)當(dāng)前情況修改第一標(biāo)識(shí)的狀態(tài)值,并重新啟動(dòng)當(dāng)前操作 系統(tǒng),返回步驟100 ;在測試用例群全部執(zhí)行完后,結(jié)束測試操作,F(xiàn)ramework將判斷是否執(zhí)行到最 后一個(gè)操作系統(tǒng),如果是,將當(dāng)前操作系統(tǒng)ID的值置0,將Framework狀態(tài)值置_1 (表示 Framework無需任何操作);否則,將當(dāng)前操作系統(tǒng)ID的值1,并將Framework的第一標(biāo)識(shí)的 狀態(tài)值置1 (表明需要配置更新下一個(gè)操作系統(tǒng)),重新啟動(dòng)當(dāng)前操作系統(tǒng),返回步驟100。其中,F(xiàn)ramework執(zhí)行完最后一個(gè)測試用例后,讀取sysAutoFile. ini中的操作系 統(tǒng)數(shù)(0SNUM),根據(jù)當(dāng)前操作系統(tǒng)ID和操作系統(tǒng)數(shù)判斷是否執(zhí)行到最后一個(gè)操作系統(tǒng),即, 比較當(dāng)前操作系統(tǒng)ID和操作系統(tǒng)數(shù);如果當(dāng)前操作系統(tǒng)ID小于操作系統(tǒng)數(shù),將操作系統(tǒng) ID的值加1,還將STATE的值設(shè)置為1,之后重新啟動(dòng)當(dāng)前系統(tǒng),返回步驟100;否則,將當(dāng)前 操作系統(tǒng)ID的值設(shè)置為0,并將STATE的值設(shè)置為-1,結(jié)束。如圖3所示,為本發(fā)明實(shí)施例1提供的恢復(fù)操作系統(tǒng)的方法流程圖,包括
      步驟1030 讀取恢復(fù)配置文件sysbakFile. ini中的COUNT項(xiàng),并讀取 sysAutoFile. ini 文件中的 CURR0SID 的值;COUNT項(xiàng)表明需要恢復(fù)的操作系統(tǒng)個(gè)數(shù),它的值在Framework中預(yù)先已經(jīng)配置好;本發(fā)明實(shí)施例中,用CURR0SID(第二標(biāo)識(shí))的系統(tǒng)指示值表明要恢復(fù)的多個(gè)操作 系統(tǒng)的順序,CURR0SID的不同取值代表要恢復(fù)的不同操作系統(tǒng)。步驟1031 讀取對應(yīng)項(xiàng)的Ghost恢復(fù)文件配置項(xiàng)的值;本步驟主要讀取要恢復(fù)的系統(tǒng)備份文件的文件名(BACKNAME),即讀取之 前配置好的BACKNAME0、BACKNAME 1變量的值,如前配置,BACKNAME0對應(yīng)的文件名為 WinXPX64SPlEN. GH0, BACKNAME 1 對應(yīng)的文件名為 WinXPX64SP2EN. GH0 ;還讀取 Ghost 備份文 件中GUID的值,GUID是每個(gè)操作系統(tǒng)加載WinPE后,系統(tǒng)指向WinPE的唯一的標(biāo)識(shí)符(ID)。步驟1032 判斷是否切換到最后一個(gè)操作系統(tǒng),如果不是最后一個(gè)操作系統(tǒng),執(zhí) 行步驟1033 ;否則,執(zhí)行步驟1036 ;判斷過程具體為根據(jù)CURR0SID值是否與COUNT的值(需要切換的操作系統(tǒng)數(shù)) 相等,如果相等,則說明切換到了最后一個(gè)操作系統(tǒng);否則繼續(xù)切換;步驟1033 根據(jù)讀取的當(dāng)前系統(tǒng)信息中配置項(xiàng)內(nèi)容進(jìn)行組合,組合成Ghost能識(shí) 別的批處理文件;該步驟具體為根據(jù)步驟1031中獲取的備份文件名生成Ghost能識(shí)別的批處理文 件;步驟1034 將該配置項(xiàng)組合成bcdedit命令;該步驟具體為根據(jù)步驟1031中獲取的⑶ID值生成bcdedit命令;步驟1035 執(zhí)行上述bcdedit命令,使得計(jì)算機(jī)的默認(rèn)系統(tǒng)啟動(dòng)設(shè)置為WinPE ;步驟1036 將 sysAutoFile. ini 中的 Framework 的第一標(biāo)識(shí)的狀態(tài)值(STATE)設(shè) 置為-1,結(jié)束配置更新操作系統(tǒng),返回步驟100。其中,在執(zhí)行上述步驟1030之前,F(xiàn)ramework可以先從恢復(fù)配置文件sysbakFile. ini中讀取需要恢復(fù)的操作系統(tǒng)個(gè)數(shù);根據(jù)讀取的操作系統(tǒng)個(gè)數(shù)判斷當(dāng)前是否有操作系統(tǒng) 需要恢復(fù),如果有,執(zhí)行上述步驟1030 ;否則,結(jié)束配置操作。當(dāng)Framework的第一標(biāo)識(shí)的狀態(tài)值為2時(shí),自動(dòng)安裝測試的軟件開發(fā)包,如圖4所 示,為本發(fā)明實(shí)施例1提供的自動(dòng)安裝軟件開發(fā)包的方法流程圖,包括步驟1041 Framework從控制其進(jìn)程的系統(tǒng)配置文件sysAutoFile. ini中讀取要 被安裝的軟件開發(fā)包名稱;即,讀取sysAutoFile. ini中SDKNAME(軟件開發(fā)包名稱)值;sysAutoFile. ini中的內(nèi)容在本發(fā)明實(shí)施例開始之前的操作中已經(jīng)配置完成;步驟1042 將軟件開發(fā)包名稱組合成一個(gè)能夠自動(dòng)安裝的批處理文件Setup, cmd(啟動(dòng)用可執(zhí)行程序);步驟1043 將sysbakFile. ini中的STATE配置項(xiàng)的值置為3 ;軟件開發(fā)包組合完成后,將sysbakFile. ini中的STATE配置項(xiàng)的值置為3,表明開 始運(yùn)行測試用例群;步驟1044 Framework執(zhí)行步驟1042中組合的批處理文件setup, cmd,對應(yīng)的軟 件開發(fā)包被自動(dòng)安裝到指定的操作系統(tǒng)中;優(yōu)選的,執(zhí)行完步驟1044后,還可以根據(jù)系統(tǒng)恢復(fù)配置文件sysbakFile. ini中的配置將當(dāng)前系統(tǒng)對應(yīng)的GUID保存起來,以便系統(tǒng)重啟后直接調(diào)取與當(dāng)前系統(tǒng)對應(yīng)的GUID。 在這個(gè)操作系統(tǒng)中,安排了一次系統(tǒng)重啟的操作,因?yàn)樽远x驅(qū)動(dòng)的軟件開發(fā)包可能由于 當(dāng)前系統(tǒng)環(huán)境下的因素導(dǎo)致系統(tǒng)重啟;步驟1045 結(jié)束軟件開發(fā)包的安裝,重啟系統(tǒng)。不同的軟件開發(fā)包與不同的測試用例群相關(guān)聯(lián),因此安裝了某個(gè)軟件開發(fā)包就意 味著只能執(zhí)行與其相關(guān)聯(lián)的特定測試用例群,因此,需要在步驟1043中將sysbakFile. ini 中的第一標(biāo)識(shí)(STATE)的狀態(tài)值置為3。當(dāng)Framework的第一標(biāo)識(shí)的狀態(tài)值為3時(shí),自動(dòng)執(zhí)行測試用例群,如圖5所示,為 本發(fā)明實(shí)施例1提供的自動(dòng)執(zhí)行測試用例群的方法流程圖,包括步驟1051 Framework 讀取 sysAutoFile. ini 中的當(dāng)前操作系統(tǒng) ID(CURROSID);步驟1052 當(dāng)前操作系統(tǒng)ID(⑶RR0SID)值是否為第一值?如果是,執(zhí)行步驟 1053 ;否則,執(zhí)行步驟1054 ;第一值用來指定要恢復(fù)的第一個(gè)操作系統(tǒng),本步驟中,設(shè)定第一值為0,也可以為 其它數(shù)值。步驟1053 刪除已有日志文件;步驟1054 讀取用例群中配置文件的個(gè)數(shù);步驟1055 判斷測試用例群個(gè)數(shù)是否為0,如果不是0,執(zhí)行步驟1056 ;否則,執(zhí)行 步驟1058 ;步驟1056 執(zhí)行測試用例程序;Framework自動(dòng)按順序執(zhí)行測試用例群,并記錄每個(gè)測試用例運(yùn)行情況的日志文 件;步驟1057 寫日志文件;步驟1058 判斷是否執(zhí)行到最后一個(gè)測試用例,如果是,結(jié)束測試操作;否則,返 回步驟1056 ;本發(fā)明實(shí)施例提供的自動(dòng)化測試方法,系統(tǒng)每次啟動(dòng),F(xiàn)ramework都會(huì)根據(jù)自身的 第一標(biāo)識(shí)的狀態(tài)值(STATE的值)來執(zhí)行對應(yīng)的操作,操作結(jié)束后更改STATE的值,以確保 下次進(jìn)入系統(tǒng)后執(zhí)行相應(yīng)的操作。通過上述操作,本發(fā)明實(shí)施例實(shí)現(xiàn)了 Windows運(yùn)行環(huán)境 下多個(gè)操作系統(tǒng)版本間測試的全自動(dòng)化,提高了測試效率,節(jié)省了測試成本。實(shí)施例2本實(shí)施例提供的自動(dòng)化測試方法是在Linux運(yùn)行環(huán)境下實(shí)現(xiàn)的,本發(fā)明實(shí)施例2 中,F(xiàn)ramework為自定義的測試框架,其中包含有系統(tǒng)恢復(fù)過程中用到的一系列文件,并非 微軟的.netframework。Grub是一個(gè)多重操作系統(tǒng)啟動(dòng)管理器,用來引導(dǎo)不同系統(tǒng),如Windows,Linux。其 功能相當(dāng)于Windows系統(tǒng)下的B⑶啟動(dòng)配置數(shù)據(jù)項(xiàng)。開始執(zhí)行本發(fā)明實(shí)施例2提供的自動(dòng)化測試方法之前,先要進(jìn)行以下手動(dòng)配置, 包括將硬盤分區(qū),分為主分區(qū)(10G),測試系統(tǒng)區(qū)(10G),交換區(qū)(2G),數(shù)據(jù)區(qū)(40),備 份區(qū)(剩余空間);上述分區(qū)除交換區(qū)外,其余都為第三擴(kuò)展文件系統(tǒng)ext3,eXt3是一個(gè)日 志文件系統(tǒng)。
      在主分區(qū)安裝一個(gè)Linux系統(tǒng),主要是用于測試系統(tǒng)的備份和恢復(fù);安裝的Linux系統(tǒng)需要配置為能自動(dòng)登錄,能自動(dòng)運(yùn)行測試Framework,準(zhǔn)備好能 自動(dòng)切換的配置文件,安裝grub2和安裝gcc,需要說明的是,如果系統(tǒng)自帶gcc,就不用再 安裝了。另外還要求安裝的Linux系統(tǒng)能訪問數(shù)據(jù)區(qū)和備份區(qū)。在測試系統(tǒng)區(qū)安裝Linux系統(tǒng),該系統(tǒng)平臺(tái)主要是用于測試SDK (Software Development Kit,軟件開發(fā)工具包)的,要求能訪問主分區(qū)、數(shù)據(jù)區(qū),將啟動(dòng)信息寫入主分 區(qū)的grub, cfg文件中,grub, cfg文件格式如下##D0 NOT EDIT THIS FILE##It is automatical ly generated by/usr/local/sbin/update-grub usingtemplates# from /usr/local/etc/grub. d and settings from/usr/ local/etc/default/grub####BEGIN/usr/local/etc/grub. d/00_header###set default = 0set timeout = 5set root = (hdO, 1)terminal console###END/usr/local/etc/grub. d/00_header######BEGIN/usr/local/etc/grub. d/10_hurd######END/usr/local/etc/grub. d/10_hurd######BEGIN/usr/local/etc/grub. d/10_linux###menuentry" GNU/Linux, linux 2.6.11-1.1369_FC4smp" {linux(hdO,1)/boot/vmlinuz—2. 6. 11-1. 1369_FC4smproot = /dev/hdbl roinitrd(hd0,1)/boot/initrd-2. 6. 11-1. 1369_FC4smp. img}menuentry" Linux mint7kernel 2.6.28-11" {set root = (hd0,5)linux(hdO,5)/boot/vmlinuz-2. 6. 28-11-genericroot = / dev/sda5 roinitrd (hdO, 5)/boot/initrd. img_2. 6. 28-11 -generic}###END/usr/local/etc/grub. d/10_linux###grub, cfg文件可以通過grub2的控制臺(tái)命令自動(dòng)生成,文件中的set命令部分的 值是可以修改的,本實(shí)施例中顯示的操作系統(tǒng)列表列了 2個(gè),S卩menuentry命令,設(shè)置grub. cfg文件的步驟包括設(shè)置啟動(dòng)分區(qū),設(shè)置系統(tǒng)內(nèi)核文件;如果再安裝別的系統(tǒng),可以在最 后一個(gè)” } ”后添加menuentry,格式同上面的menuentry。
      grub, cfg文件存放在/boot/grub目錄下,將當(dāng)前磁盤(即,測試系統(tǒng)區(qū))分成兩 個(gè)區(qū)磁盤1區(qū)和磁盤2區(qū),在磁盤1區(qū)和磁盤2區(qū)中分別裝有Linux A操作系統(tǒng)和Linux B操作系統(tǒng)。Linux A系統(tǒng)用于Linux B系統(tǒng)的恢復(fù),Linux B為測試系統(tǒng)。在開始下面操 作前,先進(jìn)入默認(rèn)的Linux B系統(tǒng),并將Framework的工作狀態(tài)值設(shè)置為0,在恢復(fù)前,將配 置grub的默認(rèn)啟動(dòng)項(xiàng)改成Linux A。如圖6所示,為本發(fā)明實(shí)施例2提供的自動(dòng)化測試方法的流程圖,該方法以在 Linux運(yùn)行環(huán)境下實(shí)現(xiàn)為例,具體包括步驟201 系統(tǒng)啟動(dòng)后,自動(dòng)引導(dǎo)和編譯腳本文件,生成框架程序Framework,并將 Framework加載到當(dāng)前操作系統(tǒng)中;該步驟具體為系統(tǒng)啟動(dòng)后,自動(dòng)調(diào)用shell腳本(類似于在windows中執(zhí)行批處 理,該腳本的內(nèi)容事先編寫好),腳本的內(nèi)容就是執(zhí)行make命令,執(zhí)行該make命令的目的是 為了生成框架程序Framework,在Linux系統(tǒng)中對程序進(jìn)行編譯使用make命令,如果make 命令在命令行中輸入?yún)?shù),則執(zhí)行makefile文件。makefile文件的內(nèi)容形如SOURCE = ATAutoTest. cppCFLAGS = -gall g++$ (CFLAGS)$(SOURCE)$(LIB S)_o ATAutoTest-gclean rm ATAutoTest步驟 202 Framework 打開配置文件 sysAutoFile. cfg,讀取 Framework 的第一標(biāo) 識(shí)的狀態(tài)值(即,sysAutoFile. cfg中STATE的值);其中,本實(shí)施例中的配置文件sysAutoFile. cfg的格式與實(shí)施例1中的配置文件 sysAutoFile. ini格式相同,這里不再贅述;步驟203 framework根據(jù)讀取的第一標(biāo)識(shí)的狀態(tài)值判斷其自身的工作狀態(tài),本實(shí) 施例中第一標(biāo)識(shí)的狀態(tài)值有五種,分別為第一狀態(tài)值、第二狀態(tài)值、第三狀態(tài)值、第四狀態(tài) 值和第五狀態(tài)值;如果該值為第一狀態(tài)值,執(zhí)行步驟204 ;如果該值為第二狀態(tài)值,執(zhí)行步 驟205 ;如果該值為第三狀態(tài)值,執(zhí)行步驟206 ;如果該值為第四狀態(tài)值,執(zhí)行步驟207 ;如 果該值為第五狀態(tài)值,執(zhí)行步驟208 ;本發(fā)明實(shí)施例2中,設(shè)定Framework的第一標(biāo)識(shí)的狀態(tài)值和對應(yīng)的工作狀態(tài)如 下第一狀態(tài)值為0,對應(yīng)的工作狀態(tài)為在當(dāng)前測試系統(tǒng)下,進(jìn)行系統(tǒng)恢復(fù)前的配置操 作;第二狀態(tài)值為1,對應(yīng)的工作狀態(tài)為執(zhí)行自動(dòng)恢復(fù)Linux B系統(tǒng)的操作;第三狀態(tài)值為2,對應(yīng)的工作狀態(tài)為執(zhí)行自動(dòng)安裝被測試程序,本實(shí)施例具體為用 于測試的軟件開發(fā)包;第四狀態(tài)值為3,對應(yīng)的工作狀態(tài)為執(zhí)行自動(dòng)運(yùn)行測試用例群的操作;第五狀態(tài)值為-1,對應(yīng)的工作狀態(tài)為無需進(jìn)行任何操作。步驟204 在當(dāng)前測試系統(tǒng)下進(jìn)行系統(tǒng)恢復(fù)前操作的配置,配置完成后重新啟動(dòng) Linux A系統(tǒng),返回步驟201 ;
      其中,系統(tǒng)恢復(fù)前操作的配置和實(shí)施例1中提到的配置內(nèi)容相同,這里不再詳述。步驟205 執(zhí)行自動(dòng)恢復(fù)Linux B系統(tǒng)的操作,執(zhí)行完成后重新啟動(dòng)當(dāng)前的Linux B操作系統(tǒng),返回步驟201 ;Framework執(zhí)行自動(dòng)恢復(fù)Linux B系統(tǒng)的操作,具體可以采用dd命令直接進(jìn)行恢
      復(fù)操作。如圖7所示,為本實(shí)施例2提供的自動(dòng)恢復(fù)Linux B系統(tǒng)的自動(dòng)配置方法流程圖, 具體包括步驟2051 讀取之前配置的sysAutoFile. cfg文件中的CURR0SID值,將指向測試 系統(tǒng)的grub, cfg設(shè)置為默認(rèn)啟動(dòng);步驟2052 執(zhí)行系統(tǒng)恢復(fù)腳本;步驟2053 將配置文件的STATE的值修改為2 ;步驟2054 重新啟動(dòng)系統(tǒng),具體為重新啟動(dòng)Linux B系統(tǒng)。步驟206 執(zhí)行自動(dòng)安裝軟件開發(fā)包,安裝完成后重新啟動(dòng)當(dāng)前系統(tǒng)(Linux B), 返回步驟201 ;該步驟主要為framework從配置文件中讀取要被安裝的軟件開發(fā)包的名稱,組 合成一個(gè)Setup的Shell腳本,F(xiàn)ramework執(zhí)行這個(gè)腳本文件,軟件開發(fā)包SDK將被自動(dòng)安 裝到操作系統(tǒng)中。在本操作中,有一次系統(tǒng)重新啟動(dòng)的操作,是因?yàn)樽远x驅(qū)動(dòng)的軟件開發(fā) 包可能由于當(dāng)前系統(tǒng)環(huán)境的因素而導(dǎo)致系統(tǒng)重啟。步驟207 執(zhí)行自動(dòng)運(yùn)行測試用例群(組)操作;運(yùn)行完成后重新啟動(dòng)當(dāng)前系統(tǒng) (Linux B),返回步驟 201 ;該步驟具體包括framework自動(dòng)按順序執(zhí)行測試用例群,并記錄每個(gè)測試用例 運(yùn)行情況的日志文件;在測試用例群全部執(zhí)行完后,F(xiàn)ramework判斷是否執(zhí)行到最后一個(gè) 操作系統(tǒng),如果是,將操作系統(tǒng)⑶RR0ID置0,將Framework的第一標(biāo)識(shí)的狀態(tài)值置_1 (表示 Framework無需任何操作);否則,將操作系統(tǒng)CURR0ID加1,并將Framework的第一標(biāo)識(shí)的 狀態(tài)值置1 (表明需要配置更新下一個(gè)操作系統(tǒng)),重新啟動(dòng)當(dāng)前操作系統(tǒng),返回步驟201。步驟208 不作任何操作,或測試結(jié)束,退出Framework ;每次進(jìn)入系統(tǒng),F(xiàn)ramework會(huì)根據(jù)其第一標(biāo)識(shí)的狀態(tài)值(STATE值)來進(jìn)行不同的 操作,操作結(jié)束后更改STATE的值,以確保下次進(jìn)入系統(tǒng)后執(zhí)行下一步操作。如圖8所示,為步驟204中判斷當(dāng)前操作系統(tǒng)是否未被測試過的方法流程圖,包 括步驟2041 讀取配置文件 sysbakFile. cfg 的 COUNT 項(xiàng),并讀取 sysAutoFile. cfg 的CURR0SID(當(dāng)前操作系統(tǒng)ID)值;COUNT項(xiàng)表明需要恢復(fù)的操作系統(tǒng)個(gè)數(shù),它的值在Framework中已經(jīng)配置好。步驟2042 讀取要恢復(fù)的系統(tǒng)備份文件的文件名;步驟2043 判斷是否切換到最后一個(gè)操作系統(tǒng),如果不是,執(zhí)行步驟2044 ;否則, 執(zhí)行步驟2048 ;判斷過程具體為判斷CURR0SID的值是否與COUNT的值(操作系統(tǒng)的總數(shù),即需 要切換的操作系統(tǒng)數(shù))相等,如果相等,則說明切換到了最后一個(gè)操作系統(tǒng);否則繼續(xù)切換。
      步驟2044 根據(jù)讀取的當(dāng)前系統(tǒng)信息中的配置項(xiàng)內(nèi)容進(jìn)行組合,組合成dd腳本;該步驟具體為根據(jù)步驟2042中獲取的備份文件名生成dd腳本。步驟2045 修改grub, cfg文件,使計(jì)算機(jī)的默認(rèn)系統(tǒng)自動(dòng)設(shè)置為執(zhí)行恢復(fù)的操作 系統(tǒng) Linux A。步驟2046 將系統(tǒng)自動(dòng)配置文件sysAutoFile. cfg中的STATE的值置為2 ; Framework的第一標(biāo)識(shí)的狀態(tài)值STATE的值為2表明下一步系統(tǒng)需要自動(dòng)安裝軟件開發(fā)包。步驟2047 重新啟動(dòng)當(dāng)前系統(tǒng),返回步驟201 ;步驟2048 將系統(tǒng)自動(dòng)配置文件sysAutoFi le. cfg中的Framework第一標(biāo)識(shí) (STATE)的狀態(tài)值置-1,結(jié)束。第一標(biāo)識(shí)的狀態(tài)值為-1,表示Framework當(dāng)前不需要執(zhí)行任何操作。其中,在執(zhí)行上述步驟2041之前,F(xiàn)ramework可以先從恢復(fù)配置文件sysbakFile. cfg中讀取需要恢復(fù)的操作系統(tǒng)個(gè)數(shù);根據(jù)讀取的操作系統(tǒng)個(gè)數(shù)判斷當(dāng)前是否有操作系統(tǒng) 需要恢復(fù),如果有,執(zhí)行上述步驟2041 ;否則,結(jié)束操作。如圖9所示,為本發(fā)明實(shí)施例2中Linux運(yùn)行環(huán)境下Framework自動(dòng)安裝軟件開 發(fā)包的方法流程圖,包括步驟2061 Framework讀取配置文件sysAutoFile. cfg中軟件開發(fā)包的名稱;步驟2062 framework將上述軟件開發(fā)包名組合成自動(dòng)安裝的批處理文件Setup, cmd腳本;步驟 2063 Framework 將 sysAutoFile. cfg 中的 Framework 的第一標(biāo)識(shí)的狀態(tài)值 設(shè)置為3 ;該步驟主要用于表明系統(tǒng)安裝完軟件開發(fā)包后需要執(zhí)行測試用例群;步驟2064 Framework 執(zhí)行批處理文件 Setup, cmd ;步驟2065 framework重啟當(dāng)前系統(tǒng),返回步驟201。如圖10所示,為本發(fā)明實(shí)施例2中Linux運(yùn)行環(huán)境下Framework自動(dòng)執(zhí)行測試用 例群的方法流程圖。包括步驟2071 Framework 讀取 sysAutoFile. ini 中的當(dāng)前操作系統(tǒng) ID(CURROSID);步驟2072 當(dāng)前操作系統(tǒng)ID值是否為第一值?如果是,執(zhí)行步驟2073 ;否則,執(zhí) 行步驟2074 ;第一值用來指定要恢復(fù)的第一個(gè)操作系統(tǒng),本步驟中,設(shè)定第一值為0,也可以為 其它數(shù)值。步驟2073 刪除已有日志文件;步驟2074 讀取測試用例群中配置文件的個(gè)數(shù);步驟2075 判斷測試用例群中配置文件的個(gè)數(shù)是否為0,如果不是0,執(zhí)行步驟 2076 ;否則,執(zhí)行步驟2079。步驟2076 執(zhí)行測試用例程序;步驟2077 寫日志文件;步驟2078 判斷是否執(zhí)行到最后一個(gè)測試用例,如果是,執(zhí)行步驟2079 ;否則,返 回步驟2076 ;步驟2079 讀取 sysAutoFile. cfg 中的操作系統(tǒng)數(shù)(0SNUM);
      步驟20710 判斷是否切換到最后一個(gè)操作系統(tǒng),即比較步驟2071中讀取的當(dāng)前 操作系統(tǒng)ID是否小于步驟2079中讀取的操作系統(tǒng)數(shù);如果當(dāng)前操作系統(tǒng)ID小于步驟2079 中讀取的操作系統(tǒng)數(shù),則說明沒有切換到最后一個(gè)操作系統(tǒng),執(zhí)行步驟20711 ;否則,如果 當(dāng)前操作系統(tǒng)ID等于步驟2079中讀取的操作系統(tǒng)數(shù),說明切換到最后一個(gè)操作系統(tǒng),執(zhí)行 步驟20714 ;步驟20711 將當(dāng)前操作系統(tǒng)ID (⑶RR0SID)的值加1 ;步驟20712 將Framework的第一標(biāo)識(shí)的狀態(tài)值(STATE的值)設(shè)置為0 ;步驟20713 重新啟動(dòng)當(dāng)前系統(tǒng);并返回步驟201 ;步驟20714 將當(dāng)前操作系統(tǒng)ID (⑶RR0SID)的值設(shè)置為上述第一值,即0 ;步驟20715 將Framework的第一標(biāo)識(shí)的狀態(tài)值(STATE的值)設(shè)置為_1,結(jié)束;上述步驟201-207中介紹的在Linux下的系統(tǒng)恢復(fù)操作也可以采用Ghost恢復(fù)軟 件完成,具體操作原理與Windows下類似,操作上的區(qū)別在于LinuX系統(tǒng)下的系統(tǒng)恢復(fù)操 作需要在每次執(zhí)行一個(gè)操作前都加載Framework,對加載的Framework執(zhí)行自動(dòng)編譯。本實(shí)施例所涉及的軟件開發(fā)包包含在被測試程序范圍內(nèi),本實(shí)施例所涉及的當(dāng)前 操作系統(tǒng)標(biāo)識(shí)⑶RR0SID,即指第二標(biāo)識(shí),第二標(biāo)識(shí)也可以用其它形式表示。本發(fā)明實(shí)施例提供的自動(dòng)化測試方法,系統(tǒng)每次啟動(dòng)都會(huì)自動(dòng)加載并運(yùn)行 Framework,F(xiàn)ramework根據(jù)第一標(biāo)識(shí)的狀態(tài)值(STATE的值)來執(zhí)行對應(yīng)的操作,操作結(jié)束 后更改STATE的值,以確保下次進(jìn)入系統(tǒng)后執(zhí)行相應(yīng)的操作。通過上述操作,本發(fā)明實(shí)施例 實(shí)現(xiàn)了 Linux運(yùn)行環(huán)境下多個(gè)操作系統(tǒng)版本間測試的全自動(dòng)化,提高了測試效率,節(jié)省了 測試成本。如圖11所示,根據(jù)本發(fā)明實(shí)施例,提供了一種自動(dòng)化測試裝置,該裝置包括系統(tǒng)恢復(fù)模塊402,用于依次地恢復(fù)各個(gè)操作系統(tǒng);加載模塊404,用于對系統(tǒng)恢復(fù)模塊402當(dāng)前恢復(fù)的操作系統(tǒng)加載被測試程序;測試模塊406,用于針對加載模塊404加載的上述被加載的被測試程序測試用例 群;框架程序控制模塊408,用于通過執(zhí)行框架程序?qū)ο到y(tǒng)恢復(fù)模塊402、加載模塊 404和測試模塊406進(jìn)行控制。本實(shí)施例的框架程序控制模塊408中的框架程序可以為實(shí)施例1或?qū)嵤├? 中的Framework,其對系統(tǒng)恢復(fù)模塊402、加載模塊404和測試模塊406的控制可以通過 Framework中的工作狀態(tài)值進(jìn)行判斷并啟動(dòng)對應(yīng)模塊的功能,具體可參照實(shí)施例1或?qū)嵤?例2實(shí)現(xiàn),這里不再贅述。本實(shí)施例提供的自動(dòng)測試裝置,采用框架程序控制模塊408控制系統(tǒng)恢復(fù)模塊 402、加載模塊404和測試模塊406的方法,實(shí)現(xiàn)了自動(dòng)進(jìn)行操作系統(tǒng)的恢復(fù),自動(dòng)啟動(dòng)恢復(fù) 的操作系統(tǒng),自動(dòng)加載被測試程序,以及自動(dòng)使用被測試程序測試用例群,解決了目前對操 作系統(tǒng)恢復(fù)需要較多的人力和時(shí)間成本的問題,優(yōu)化了測試裝置,提高了測試裝置的測試 效率,增加了產(chǎn)品的實(shí)用性。需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的 計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不 同于此處的順序執(zhí)行所示出或描述的步驟。
      此外,如這里所描述的,術(shù)語“存儲(chǔ)介質(zhì),,可以表示用于存儲(chǔ)數(shù)據(jù)的一種或多種裝 置,包括只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁RAM、磁心存儲(chǔ)器、磁盤存儲(chǔ)介質(zhì)、光 存儲(chǔ)介質(zhì)、閃存裝置和/或用于存儲(chǔ)信息的其他機(jī)器可讀介質(zhì)。術(shù)語“機(jī)器可讀介質(zhì)”包括 但不限于便攜式或固定存儲(chǔ)裝置、光存儲(chǔ)裝置、無線通道或能夠存儲(chǔ)、容納、或承載指令和/ 或數(shù)據(jù)的各種其他介質(zhì)。另外,可以通過硬件、軟件、固件、中間件、微碼、硬件描述語言或其組合來實(shí)現(xiàn)實(shí) 施例。當(dāng)用軟件、固件、中間件或微碼來實(shí)現(xiàn)時(shí),可以在諸如存儲(chǔ)介質(zhì)的機(jī)器可讀介質(zhì)中存 儲(chǔ)用于執(zhí)行必要任務(wù)的程序代碼或碼段。(多個(gè))處理器可以執(zhí)行必要任務(wù)。碼段可以表 示進(jìn)程、函數(shù)、子程序、程序、例行程序、子例行程序、模塊、對象、軟件包、類、或指令、數(shù)據(jù)結(jié) 構(gòu)、或程序語言的任意組合。通過傳輸和/或接收信息、數(shù)據(jù)、自變量、或存儲(chǔ)內(nèi)容來將碼段 耦合到另一碼段或硬件電路。信息、自變量、參數(shù)、數(shù)據(jù)等可以經(jīng)由包括存儲(chǔ)器共享、消息傳 遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)鹊娜我夂线m方式來傳遞、傳輸、或傳送。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ) 在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們 中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的 硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人 員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、 等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      一種自動(dòng)化測試方法,其特征在于,包括依次地恢復(fù)各個(gè)操作系統(tǒng);對當(dāng)前恢復(fù)的操作系統(tǒng)加載被測試程序;針對所述被加載的被測試程序測試用例群;其中,通過執(zhí)行框架程序?qū)崿F(xiàn)上述步驟的流程控制。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過執(zhí)行框架程序?qū)崿F(xiàn)上述步驟的流程 控制包括在所述框架程序中設(shè)置第一標(biāo)識(shí); 啟動(dòng)所述框架程序;所述第一標(biāo)識(shí)的狀態(tài)值為第一工作狀態(tài)時(shí),確定執(zhí)行所述依次地恢復(fù)各個(gè)操作系統(tǒng)的 步驟;所述第一標(biāo)識(shí)的狀態(tài)值為第二工作狀態(tài)時(shí),確定執(zhí)行所述對當(dāng)前恢復(fù)的操作系統(tǒng)加載 被測試程序的步驟;所述第一標(biāo)識(shí)的狀態(tài)值為第三工作狀態(tài)時(shí),確定執(zhí)行所述針對所述被加載的被測試程 序測試用例群的步驟。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一標(biāo)識(shí)的狀態(tài)值為第一工作狀態(tài) 時(shí),確定執(zhí)行所述依次地恢復(fù)各個(gè)操作系統(tǒng)的步驟包括修改所述第一標(biāo)識(shí)的狀態(tài)值為第二工作狀態(tài)。
      4.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)所述框架程序在Windows操作系統(tǒng)環(huán)境 下運(yùn)行時(shí),所述第一標(biāo)識(shí)的狀態(tài)值為第一工作狀態(tài)時(shí),確定執(zhí)行所述依次地恢復(fù)各個(gè)操作 系統(tǒng)的步驟包括從所述框架程序的配置文件中讀取所述確定的操作系統(tǒng)的系統(tǒng)備份文件名和全球唯 一標(biāo)識(shí)碼⑶ID ;根據(jù)所述系統(tǒng)備份文件名組合成Ghost恢復(fù)軟件能識(shí)別的批處理文件; 根據(jù)所述GUID生成系統(tǒng)啟動(dòng)命令,執(zhí)行所述系統(tǒng)啟動(dòng)命令,將默認(rèn)系統(tǒng)啟動(dòng)設(shè)置為 WinPE ;啟動(dòng)所述WinPE,所述WinPE根據(jù)所述批處理文件對所述確定的操作系統(tǒng)進(jìn)行恢復(fù)。
      5.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)所述框架程序在Linux操作系統(tǒng)環(huán)境下 運(yùn)行時(shí),所述第一標(biāo)識(shí)的狀態(tài)值為第一工作狀態(tài)時(shí),確定執(zhí)行所述依次地恢復(fù)各個(gè)操作系 統(tǒng)的步驟包括從所述框架程序的配置文件中讀取所述確定的操作系統(tǒng)的系統(tǒng)備份文件名; 根據(jù)所述系統(tǒng)備份文件名生成腳本文件; 執(zhí)行所述腳本文件,恢復(fù)所述確定的操作系統(tǒng)。
      6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述框架程序是Linux操作系統(tǒng)加載的, 包括所述Linux操作系統(tǒng)啟動(dòng)后,調(diào)用編譯腳本文件; 執(zhí)行所述編譯腳本文件中的編譯命令生成所述框架程序; 加載所述框架程序。
      7.根據(jù)權(quán)利要求2所述的方法,其特征在于,通過執(zhí)行框架程序?qū)崿F(xiàn)上述步驟的流程控制還包括在所述框架程序中設(shè)置第二標(biāo)識(shí);所述第一標(biāo)識(shí)的狀態(tài)值為第一工作狀態(tài)時(shí),確定執(zhí)行所述依次地恢復(fù)各個(gè)操作系統(tǒng)的 步驟包括啟動(dòng)所述框架程序后,根據(jù)所述第二標(biāo)識(shí)的系統(tǒng)指示值確定要恢復(fù)的操作系統(tǒng),對確 定的操作系統(tǒng)執(zhí)行恢復(fù)操作。
      8.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述確定執(zhí)行所述對當(dāng)前恢復(fù)的操作系 統(tǒng)加載被測試程序的步驟包括修改所述第一標(biāo)識(shí)的狀態(tài)值為第三工作狀態(tài)。
      9.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述確定執(zhí)行所述對當(dāng)前恢復(fù)的操作系 統(tǒng)加載被測試程序的步驟包括自動(dòng)讀取所述框架程序中的配置文件,從所述配置文件中獲取被測試程序的名稱; 將所述被測試程序的名稱組合成能夠自動(dòng)安裝的批處理文件; 執(zhí)行上述能夠自動(dòng)安裝的批處理文件。
      10.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述確定執(zhí)行所述針對所述被加載的被 測試程序測試用例群的步驟包括自動(dòng)讀取所述框架程序的配置文件中的第二標(biāo)識(shí)的系統(tǒng)指示值; 當(dāng)所述第二標(biāo)識(shí)的系統(tǒng)指示值不為第一值時(shí),讀取用例群中配置文件的個(gè)數(shù); 當(dāng)所述用例群中配置文件的個(gè)數(shù)是不為0時(shí),執(zhí)行所述被加載的被測試程序,寫日志 文件,直至執(zhí)行完所有的用例群;判斷是否執(zhí)行到最后一個(gè)操作系統(tǒng),如果是,將所述第二標(biāo)識(shí)的系統(tǒng)指示值設(shè)置為所 述第一值,并修改所述第一標(biāo)識(shí)的狀態(tài)值為第四工作狀態(tài);否則,將所述第二標(biāo)識(shí)的系統(tǒng)指 示值加1,并修改所述第一標(biāo)識(shí)的狀態(tài)值為第一工作狀態(tài)。
      11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述判斷是否執(zhí)行到最后一個(gè)操作系 統(tǒng)包括判斷所述第二標(biāo)識(shí)的系統(tǒng)指示值值是否等于所述配置文件中的操作系統(tǒng)數(shù),如果等 于,所述當(dāng)前操作系統(tǒng)為最后一個(gè)操作系統(tǒng);否則,所述當(dāng)前操作系統(tǒng)不是最后一個(gè)操作系 統(tǒng)。
      12.一種自動(dòng)化測試裝置,其特征在于,所述裝置包括 系統(tǒng)恢復(fù)模塊,用于依次地恢復(fù)各個(gè)操作系統(tǒng);加載模塊,用于對所述系統(tǒng)恢復(fù)模塊當(dāng)前恢復(fù)的操作系統(tǒng)加載被測試程序; 測試模塊,用于針對所述加載模塊加載的被加載的被測試程序測試用例群; 框架程序控制模塊,用于通過執(zhí)行框架程序?qū)λ鱿到y(tǒng)恢復(fù)模塊、所述加載模塊和所 述測試模塊進(jìn)行控制。
      全文摘要
      本發(fā)明公開了一種自動(dòng)化測試方法和裝置,其中,該自動(dòng)化測試方法包括依次地恢復(fù)各個(gè)操作系統(tǒng);對當(dāng)前恢復(fù)的操作系統(tǒng)加載被測試程序;針對所述被加載的被測試程序測試用例群;其中,通過執(zhí)行框架程序?qū)崿F(xiàn)上述步驟的流程控制。所述自動(dòng)化測試裝置包括系統(tǒng)恢復(fù)模塊、加載模塊、測試模塊和框架程序控制模塊。根據(jù)本發(fā)明,通過執(zhí)行框架程序,可以實(shí)現(xiàn)自動(dòng)控制操作系統(tǒng)的恢復(fù),以及對當(dāng)前恢復(fù)的操作系統(tǒng)加載被測試程序,進(jìn)而實(shí)現(xiàn)自動(dòng)化測試恢復(fù)的操作系統(tǒng),不需要投入太多的人力和花費(fèi)過多的時(shí)間,優(yōu)化了測試操作。
      文檔編號(hào)G06F11/36GK101876940SQ20091024166
      公開日2010年11月3日 申請日期2009年11月30日 優(yōu)先權(quán)日2009年11月30日
      發(fā)明者于華章, 陸舟 申請人:北京飛天誠信科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1