專利名稱:基于staf的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及故障注入技術(shù)。
背景技術(shù):
航天、金融、郵電等領(lǐng)域中應(yīng)用的計(jì)算機(jī)系統(tǒng)在運(yùn)行過程中不可避免會(huì)受到各種環(huán)境的干擾。如果系統(tǒng)發(fā)生故障,會(huì)造成嚴(yán)重的后果和重大損失。為了提高計(jì)算機(jī)系統(tǒng)的可靠性,滿足長運(yùn)行時(shí)間的要求,通常需要包含容錯(cuò)功能,這對(duì)容錯(cuò)系統(tǒng)本身的可靠性又提出了較高要求,使系統(tǒng)在發(fā)生故障時(shí),仍然能可靠的運(yùn)行,容忍故障的發(fā)生。由此可見,系統(tǒng)中所采用的容錯(cuò)技術(shù)必須進(jìn)行測(cè)試和分析,從而保證所設(shè)計(jì)的容錯(cuò)系統(tǒng)真正實(shí)現(xiàn)能夠?qū)︻A(yù)定故障正確處理的目標(biāo),然而在實(shí)驗(yàn)中開發(fā)的容錯(cuò)計(jì)算機(jī)系統(tǒng)面臨著如何在使用前進(jìn)行測(cè)試的問題,如果在系統(tǒng)出現(xiàn)問題時(shí)再對(duì)其進(jìn)行測(cè)試和分析,就會(huì)造成重大損失,因此必須系統(tǒng)投入使用之前,進(jìn)行故障模擬和故障分析,進(jìn)而評(píng)價(jià)系統(tǒng)容錯(cuò)能力。故障注入技術(shù)是用于驗(yàn)證容錯(cuò)系統(tǒng)設(shè)計(jì)正確性和評(píng)價(jià)容錯(cuò)性能的重要方法?,F(xiàn)有的故障注入技術(shù)大部分采用故障注入工具實(shí)現(xiàn),但是,注入的故障種類比較單一,并且同時(shí)只能夠向一臺(tái)目標(biāo)服務(wù)器進(jìn)行故障注入,不適用于對(duì)高端容錯(cuò)計(jì)算機(jī)的故障注入測(cè)試需求。
發(fā)明內(nèi)容
鑒于高端容錯(cuò)計(jì)算機(jī)故障注入測(cè)試的實(shí)際需求,本發(fā)明設(shè)計(jì)了一種基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)及方法。本發(fā)明所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)是基于下述分布式測(cè)試環(huán)境建立的,所述分布式測(cè)試環(huán)境是基于STAF搭建的自動(dòng)化、分布式測(cè)試環(huán)境,該環(huán)境包括控制機(jī)、測(cè)試代理服務(wù)器組、FTP服務(wù)器、監(jiān)視器、目標(biāo)服務(wù)器和數(shù)據(jù)服務(wù)器,其中,控制機(jī),是整個(gè)測(cè)試環(huán)境中的控制端,用于管理、控制整個(gè)自動(dòng)化測(cè)試流程; 它通過底層的STAF服務(wù),向測(cè)試環(huán)境中的各個(gè)測(cè)試結(jié)點(diǎn)提交自動(dòng)化測(cè)試任務(wù),同時(shí)監(jiān)視測(cè)試結(jié)點(diǎn)的任務(wù)執(zhí)行情況,并將任務(wù)執(zhí)行進(jìn)展相關(guān)數(shù)據(jù)發(fā)送給監(jiān)視器;監(jiān)測(cè)器,用于將控制機(jī)發(fā)送的任務(wù)執(zhí)行進(jìn)展相關(guān)數(shù)據(jù)顯示輸出,還用于實(shí)時(shí)顯示目標(biāo)服務(wù)器的系統(tǒng)關(guān)鍵性能信息,所述系統(tǒng)關(guān)鍵性能信息包括目標(biāo)服務(wù)器的CPU性能參數(shù)、內(nèi)存使用率、磁盤IO速率、網(wǎng)絡(luò)速率等,還用于在監(jiān)控結(jié)束后導(dǎo)出監(jiān)控日志和日志分析文件;FTP服務(wù)器,保存與故障注入自動(dòng)化測(cè)試相關(guān)的所有文件和腳本,通過文件系統(tǒng)服務(wù)下載到指定的計(jì)算機(jī),所述指定的計(jì)算機(jī)包括目標(biāo)服務(wù)器,測(cè)試代理服務(wù)器;數(shù)據(jù)服務(wù)器,用于收集和存儲(chǔ)故障注入實(shí)驗(yàn)生成的所有結(jié)果;目標(biāo)服務(wù)器,是待測(cè)高端容錯(cuò)計(jì)算機(jī),是基于故障注入方法進(jìn)行可用性評(píng)測(cè)的目標(biāo)對(duì)象;
測(cè)試代理服務(wù)器組,用于監(jiān)聽并接收控制機(jī)發(fā)送來的測(cè)試任務(wù)信息,并執(zhí)行相應(yīng)的測(cè)試操作,同時(shí)反饋測(cè)試過程和結(jié)果給控制器;該測(cè)試代理服務(wù)器組由兩臺(tái)測(cè)試代理服務(wù)器組成,其中,一臺(tái)測(cè)試代理服務(wù)器用于運(yùn)行負(fù)載發(fā)生器,實(shí)現(xiàn)根據(jù)控制機(jī)的命令產(chǎn)生負(fù)載信息給目標(biāo)服務(wù)器;另一臺(tái)測(cè)試代理服務(wù)器用于執(zhí)行向目標(biāo)服務(wù)器注入故障,觀察系統(tǒng)對(duì)故障的反應(yīng),結(jié)合負(fù)載變化,分析系統(tǒng)相關(guān)性能,實(shí)現(xiàn)向目標(biāo)服務(wù)器模擬注入故障,評(píng)測(cè)相關(guān)性能的任務(wù);基于上述分布式測(cè)試環(huán)境的故障注入自動(dòng)化測(cè)試平臺(tái)由軟件實(shí)現(xiàn),它包括應(yīng)用層、代理層和實(shí)現(xiàn)層,其中,應(yīng)用層為運(yùn)行在總控端服務(wù)中的應(yīng)用程序,該應(yīng)用程序利用關(guān)系型數(shù)據(jù)庫和文件系統(tǒng)來管理自動(dòng)化測(cè)試過程中的數(shù)據(jù)和信息,并提供友好的圖形界面與用戶交互;代理層,運(yùn)行在應(yīng)用層和實(shí)現(xiàn)層中間,實(shí)現(xiàn)任務(wù)代理,在后臺(tái)運(yùn)行,負(fù)責(zé)執(zhí)行用戶從界面中提交的自動(dòng)化測(cè)試任務(wù);所述任務(wù)代理由任務(wù)控制代理背景程序組成,實(shí)現(xiàn)層,指運(yùn)行在自動(dòng)化測(cè)試控制服務(wù)器最底層的STAF進(jìn)程及其提供的包括 STAX在內(nèi)的各種服務(wù),在該層,封裝了自動(dòng)化測(cè)試控制服務(wù)器與各種平臺(tái)的測(cè)試代理間通信、執(zhí)行各種自動(dòng)化測(cè)試具體操作。本發(fā)明所述測(cè)試相關(guān)的文件和腳本包括負(fù)載發(fā)生器安裝程序及工作腳本、故障注入服務(wù)安裝程序及工作腳本、測(cè)試監(jiān)控服務(wù)安裝程序及工作腳本。本發(fā)明所述的應(yīng)用層能夠把展現(xiàn)和邏輯完全分離開來,增強(qiáng)了系統(tǒng)的可拓展性和可維護(hù)性。本發(fā)明所述的應(yīng)用層是按照MVC應(yīng)用模型的設(shè)計(jì)思想設(shè)計(jì)的,該應(yīng)用層中的總控端服務(wù)由視圖層、控制器和模型三個(gè)部分組成,其中視圖層View,用于根據(jù)控制器發(fā)送的數(shù)據(jù)提供人機(jī)交互界面,實(shí)現(xiàn)與評(píng)測(cè)人員的信息交互,例如可以選擇現(xiàn)場(chǎng)制定測(cè)試參數(shù),或選擇直接從監(jiān)測(cè)機(jī)上的SQL數(shù)據(jù)庫中讀取測(cè)試參數(shù)文件;所述視圖層的代碼全部是軟件界面的布局,不包含業(yè)務(wù)邏輯;控制器Controller,負(fù)責(zé)分析用戶請(qǐng)求并調(diào)用合適的模型來處理,還用于實(shí)現(xiàn)模型與視圖層之間的數(shù)據(jù)交互;還用于提供人機(jī)交互界面需要顯示的事件及響應(yīng)給視圖層, 還負(fù)責(zé)數(shù)據(jù)的組織,然后交由Model中的STAF傳輸或者交由DB存儲(chǔ),本發(fā)明所述的模型,封裝了各種業(yè)務(wù)邏輯,用于在控制器的調(diào)用下實(shí)現(xiàn)相應(yīng)的邏輯動(dòng)作。所述模型包括測(cè)試策略生成管理模塊、用戶管理模塊、測(cè)試代理資源管理模塊、動(dòng)態(tài)部署模塊、自動(dòng)化測(cè)試任務(wù)管理模塊、測(cè)試日志管理模塊、結(jié)果回收模塊、結(jié)果分析模塊和結(jié)果顯示模塊,其中測(cè)試策略生成管理模塊用于接收測(cè)試參數(shù)或測(cè)試參數(shù)文件,并根據(jù)所述測(cè)試參數(shù)或測(cè)試參數(shù)文件生成命令控制字;用戶管理模塊用于管理系統(tǒng)用戶信息,并控制系統(tǒng)訪問權(quán)限;測(cè)試代理資源管理模塊用于管理整個(gè)測(cè)試系統(tǒng)中的測(cè)試機(jī)資源,對(duì)這些資源進(jìn)行合理分配利用;動(dòng)態(tài)部署模塊根據(jù)人工測(cè)試流程采用消息觸動(dòng)機(jī)制,應(yīng)用文件系統(tǒng)服務(wù)將FTP服務(wù)器上保存的相應(yīng)程序及腳本分發(fā)到分布式測(cè)試環(huán)境中;自動(dòng)化測(cè)試任務(wù)管理模塊用于負(fù)責(zé)自動(dòng)化測(cè)試任務(wù)的上傳、分類、查詢、提交、中斷等測(cè)試流程中的相關(guān)操作;測(cè)試日志管理模塊用于管理包括自動(dòng)化測(cè)試任務(wù)的實(shí)時(shí)運(yùn)行日志、測(cè)試報(bào)告、歷史記錄等信息;結(jié)果回收模塊用于實(shí)時(shí)收集目標(biāo)系統(tǒng)面對(duì)故障的不同反應(yīng),并根據(jù)所述反映生成故障注入結(jié)果;結(jié)果分析模塊運(yùn)行于監(jiān)測(cè)機(jī)內(nèi),用于分析從目標(biāo)機(jī)傳來的故障注入結(jié)果,并計(jì)算相關(guān)指標(biāo),生成結(jié)果報(bào)表;結(jié)果顯示模塊用于將結(jié)果分析模塊發(fā)送的結(jié)果報(bào)表顯示在用戶界面上,同時(shí)保存于監(jiān)測(cè)機(jī)的數(shù)據(jù)庫中?;谏鲜龉收献⑷胱詣?dòng)化測(cè)試平臺(tái)的自動(dòng)化測(cè)試方法為1)準(zhǔn)備工作,在待測(cè)目標(biāo)機(jī)上安裝負(fù)載模擬子系統(tǒng);2)控制機(jī)從FTP服務(wù)器上下載最新的負(fù)載發(fā)生器和故障注入的安裝代碼及配套的安裝、執(zhí)行腳本;3)根據(jù)配置文件,控制機(jī)利用STAF的FS服務(wù)將上述安裝代碼及配套的安裝、執(zhí)行腳本分發(fā)、部署到相應(yīng)的測(cè)試代理、服務(wù)器上,運(yùn)行安裝腳本,安裝相關(guān)程序;4)受限于可用性測(cè)試套件運(yùn)行流程,控制機(jī)檢查目標(biāo)服務(wù)器的運(yùn)行狀況;5)控制機(jī)在加載負(fù)載發(fā)生器的測(cè)試代理上運(yùn)行執(zhí)行腳本,向?qū)?yīng)的目標(biāo)服務(wù)器上施加負(fù)載;6)控制機(jī)在加載故障注入的測(cè)試代理上運(yùn)行執(zhí)行腳本,開始對(duì)目標(biāo)服務(wù)器進(jìn)行故障注入;故障注入完畢后,加載故障注入的測(cè)試代理將測(cè)試結(jié)果送回控制機(jī)。本發(fā)明是基于開源的自動(dòng)化測(cè)試工具STAF(Software Testing Automation Framework)構(gòu)建的、分布式的、自動(dòng)化的、可集成多種軟件故障注入工具的故障注入平臺(tái)。
圖1是本發(fā)明所述的故障注入自動(dòng)化測(cè)試系統(tǒng)的分布式測(cè)試環(huán)境的結(jié)構(gòu)示意圖。 圖具體實(shí)施方式
五中所述的故障注入自動(dòng)化測(cè)試原理示意圖。圖3是本發(fā)明所述的自動(dòng)化測(cè)試平臺(tái)軟件架構(gòu)示意圖。
具體實(shí)施例方式具體實(shí)施方式
一本實(shí)施方式所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái),是基于下述分布式測(cè)試環(huán)境建立的,所述分布式測(cè)試環(huán)境是基于STAF搭建的自動(dòng)化、分布式測(cè)試環(huán)境,該環(huán)境包括控制機(jī)4、測(cè)試代理服務(wù)器組、FTP服務(wù)器5、監(jiān)視器3、目標(biāo)服務(wù)器7 (待測(cè)高端容錯(cuò)計(jì)算機(jī))和數(shù)據(jù)服務(wù)器6,其中,控制機(jī)4,是整個(gè)測(cè)試環(huán)境中的控制端,用于管理、控制整個(gè)自動(dòng)化測(cè)試流程;它通過底層的STAF服務(wù),向測(cè)試環(huán)境中的各個(gè)測(cè)試結(jié)點(diǎn)提交自動(dòng)化測(cè)試任務(wù),同時(shí)監(jiān)視測(cè)試結(jié)點(diǎn)的任務(wù)執(zhí)行情況,并將任務(wù)執(zhí)行進(jìn)展相關(guān)數(shù)據(jù)發(fā)送給監(jiān)視器3 ;
監(jiān)測(cè)器,用于將控制機(jī)4發(fā)送的任務(wù)執(zhí)行進(jìn)展相關(guān)數(shù)據(jù)顯示輸出,還用于實(shí)時(shí)顯示目標(biāo)服務(wù)器7的系統(tǒng)關(guān)鍵性能信息,所述系統(tǒng)關(guān)鍵性能信息包括目標(biāo)服務(wù)器7的CPU性能參數(shù)、內(nèi)存使用率、磁盤IO速率、網(wǎng)絡(luò)速率等,還用于在監(jiān)控結(jié)束后導(dǎo)出監(jiān)控日志和日志分析文件;FTP服務(wù)器5,保存與故障注入自動(dòng)化測(cè)試相關(guān)的所有文件和腳本,通過文件系統(tǒng)服務(wù)下載到指定的計(jì)算機(jī),所述指定的計(jì)算機(jī)包括目標(biāo)服務(wù)器7,測(cè)試代理服務(wù)器;數(shù)據(jù)服務(wù)器6,用于收集和存儲(chǔ)故障注入實(shí)驗(yàn)生成的所有結(jié)果;本實(shí)施方式中,采用SQL數(shù)據(jù)庫文件作為存儲(chǔ)數(shù)據(jù)的形式,此處統(tǒng)一收集各個(gè)被測(cè)高端容錯(cuò)機(jī)的測(cè)試實(shí)驗(yàn)結(jié)果,方便評(píng)測(cè)人員管理、分析。目標(biāo)服務(wù)器7,也是待測(cè)高端容錯(cuò)計(jì)算機(jī),是基于故障注入方法進(jìn)行可用性評(píng)測(cè)的目標(biāo)對(duì)象;等同于前文介紹的故障注入平臺(tái)中的目標(biāo)機(jī),根據(jù)故障注入平臺(tái)的工作原理,目標(biāo)機(jī)需要下載安裝故障注入服務(wù)程序;測(cè)試代理服務(wù)器組,用于監(jiān)聽并接收控制機(jī)4發(fā)送來的測(cè)試任務(wù)信息,并執(zhí)行相應(yīng)的測(cè)試操作,同時(shí)反饋測(cè)試過程和結(jié)果給控制器;為了模擬真實(shí)環(huán)境下的目標(biāo)系統(tǒng),該測(cè)試平臺(tái)在運(yùn)行負(fù)載的條件下進(jìn)行故障注入,因此該測(cè)試代理服務(wù)器組由兩臺(tái)測(cè)試代理服務(wù)器組成,其中,一臺(tái)測(cè)試代理服務(wù)器2用于運(yùn)行負(fù)載發(fā)生器,實(shí)現(xiàn)根據(jù)控制機(jī)4的命令產(chǎn)生負(fù)載信息;另一臺(tái)測(cè)試代理服務(wù)器1用于執(zhí)行向?qū)?yīng)的目標(biāo)服務(wù)器7注入故障,觀察系統(tǒng)對(duì)故障的反應(yīng),結(jié)合負(fù)載變化,分析系統(tǒng)相關(guān)性能。實(shí)現(xiàn)向特定服務(wù)器模擬注入故障,評(píng)測(cè)相關(guān)性能的任務(wù);基于上述分布式測(cè)試環(huán)境的故障注入自動(dòng)化測(cè)試平臺(tái)有軟件實(shí)現(xiàn),它包括應(yīng)用層、代理層和實(shí)現(xiàn)層,其中,應(yīng)用層為運(yùn)行在總控端服務(wù)中的應(yīng)用程序,該應(yīng)用程序利用關(guān)系型數(shù)據(jù)庫和文件系統(tǒng)來管理自動(dòng)化測(cè)試過程中的數(shù)據(jù)和信息,并提供友好的圖形界面與用戶交互;代理層,運(yùn)行在應(yīng)用層和實(shí)現(xiàn)層中間,實(shí)現(xiàn)任務(wù)代理,在后臺(tái)運(yùn)行,負(fù)責(zé)執(zhí)行用戶從界面中提交的自動(dòng)化測(cè)試任務(wù);所述任務(wù)代理由任務(wù)控制代理背景程序組成,實(shí)現(xiàn)層,指運(yùn)行在自動(dòng)化測(cè)試控制服務(wù)器最底層的STAF進(jìn)程及其提供的包括 STAX在內(nèi)的各種服務(wù),在該層,封裝了自動(dòng)化測(cè)試控制服務(wù)器與各種平臺(tái)的測(cè)試代理間通信、執(zhí)行各種自動(dòng)化測(cè)試具體操作。對(duì)于高層來說,實(shí)現(xiàn)層可以當(dāng)作是透明的。本實(shí)施方式中所述測(cè)試相關(guān)的文件和腳本包括負(fù)載發(fā)生器安裝程序及工作腳本、故障注入服務(wù)安裝程序及工作腳本、測(cè)試監(jiān)控服務(wù)安裝程序及工作腳本。本實(shí)施方式中的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)可以實(shí)現(xiàn)對(duì)多個(gè)故障注入目標(biāo)的多種故障注入,當(dāng)需要對(duì)多個(gè)故障注入目標(biāo)進(jìn)行故障注入時(shí),所述分布式測(cè)試環(huán)境中包括多個(gè)目標(biāo)服務(wù)器7,每個(gè)目標(biāo)服務(wù)器7的對(duì)應(yīng)配有一個(gè)測(cè)試代理服務(wù)器組,參見圖1中虛框內(nèi)部所示。
具體實(shí)施方式
二,本實(shí)施方式是對(duì)具體實(shí)施方式
一所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)中的應(yīng)用層做進(jìn)一步說明,本實(shí)施方式中,應(yīng)用層是按照MVC 應(yīng)用模型的設(shè)計(jì)思想設(shè)計(jì)的,該應(yīng)用層中的總控端服務(wù)由視圖層、控制器和模型三個(gè)部分組成,其中
視圖層View,用于根據(jù)控制器發(fā)送的數(shù)據(jù)提供人機(jī)交互界面,實(shí)現(xiàn)與評(píng)測(cè)人員的信息交互,例如可以選擇現(xiàn)場(chǎng)制定測(cè)試參數(shù),或選擇直接從監(jiān)測(cè)機(jī)上的MySQL數(shù)據(jù)庫中讀取測(cè)試參數(shù)文件。所述視圖層的代碼全部是軟件界面的布局,不包含業(yè)務(wù)邏輯;控制器Controller,負(fù)責(zé)分析用戶請(qǐng)求并調(diào)用合適的模型來處理,還用于實(shí)現(xiàn)模型與視圖層之間的數(shù)據(jù)交互,例如將模型處理結(jié)果數(shù)據(jù)進(jìn)行組織并發(fā)送給視圖層實(shí)現(xiàn)顯示,將視圖層輸入的數(shù)據(jù)進(jìn)行組織之后發(fā)明模型;還用于提供人機(jī)交互界面需要顯示的事件及響應(yīng)給視圖層,在這一部分中,還會(huì)負(fù)責(zé)數(shù)據(jù)的組織,然后交由Model中的STAF傳輸或者交由DB存儲(chǔ),所述控制器實(shí)現(xiàn)的是業(yè)務(wù)邏輯部分。本發(fā)明所述的應(yīng)用層能夠把展現(xiàn)和邏輯完全分離開來,增強(qiáng)了系統(tǒng)的可拓展性和可維護(hù)性。本發(fā)明所述的應(yīng)用層是按照MVC應(yīng)用模型的設(shè)計(jì)思想設(shè)計(jì)的,該應(yīng)用層中的總控端服務(wù)由視圖層、控制器和模型三個(gè)部分組成,其中視圖層View,用于根據(jù)控制器發(fā)送的數(shù)據(jù)提供人機(jī)交互界面,實(shí)現(xiàn)與評(píng)測(cè)人員的信息交互,例如可以選擇現(xiàn)場(chǎng)制定測(cè)試參數(shù),或選擇直接從監(jiān)測(cè)機(jī)上的SQL數(shù)據(jù)庫中讀取測(cè)試參數(shù)文件;所述視圖層的代碼全部是軟件界面的布局,不包含業(yè)務(wù)邏輯;控制器Controller,負(fù)責(zé)分析用戶請(qǐng)求并調(diào)用合適的模型來處理,還用于實(shí)現(xiàn)模型與視圖層之間的數(shù)據(jù)交互;還用于提供人機(jī)交互界面需要顯示的事件及響應(yīng)給視圖層, 還負(fù)責(zé)數(shù)據(jù)的組織,然后交由Model中的STAF傳輸或者交由DB存儲(chǔ),模型,封裝了各種業(yè)務(wù)邏輯,用于在控制器的調(diào)用下實(shí)現(xiàn)相應(yīng)的邏輯動(dòng)作。
具體實(shí)施方式
三,本實(shí)施方式是對(duì)具體實(shí)施方式
二所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)中的模型做進(jìn)一步說明,所述模型包括測(cè)試策略生成管理模塊、用戶管理模塊、測(cè)試代理資源管理模塊、動(dòng)態(tài)部署模塊、自動(dòng)化測(cè)試任務(wù)管理模塊、測(cè)試日志管理模塊、結(jié)果回收模塊、結(jié)果分析模塊和結(jié)果顯示模塊,其中測(cè)試策略生成管理模塊用于接收測(cè)試參數(shù)或測(cè)試參數(shù)文件,并根據(jù)所述測(cè)試參數(shù)或測(cè)試參數(shù)文件生成命令控制字;用戶管理模塊用于管理系統(tǒng)用戶信息,并控制系統(tǒng)訪問權(quán)限;測(cè)試代理資源管理模塊用于管理整個(gè)測(cè)試系統(tǒng)中的測(cè)試機(jī)資源,對(duì)這些資源進(jìn)行合理分配利用;動(dòng)態(tài)部署模塊根據(jù)人工測(cè)試流程采用消息觸動(dòng)機(jī)制,應(yīng)用文件系統(tǒng)服務(wù)將FTP 服務(wù)器5上保存的相應(yīng)程序及腳本分發(fā)到分布式測(cè)試環(huán)境中;需要指出的是,此處的任務(wù)調(diào)度支持多臺(tái)待測(cè)高端容錯(cuò)計(jì)算機(jī)故障注入任務(wù)的并行執(zhí)行;自動(dòng)化測(cè)試任務(wù)管理模塊用于負(fù)責(zé)自動(dòng)化測(cè)試任務(wù)的上傳、分類、查詢、提交、中斷等測(cè)試流程中的相關(guān)操作;測(cè)試日志管理模塊用于管理包括自動(dòng)化測(cè)試任務(wù)的實(shí)時(shí)運(yùn)行日志、測(cè)試報(bào)告、歷史記錄等信息;結(jié)果回收模塊用于實(shí)時(shí)收集目標(biāo)系統(tǒng)面對(duì)故障的不同反應(yīng),并根據(jù)所述反映生成故障注入結(jié)果;結(jié)果分析模塊運(yùn)行于監(jiān)測(cè)機(jī)內(nèi),用于分析從目標(biāo)機(jī)傳來的故障注入結(jié)果,并計(jì)算相關(guān)指標(biāo),生成結(jié)果報(bào)表;結(jié)果顯示模塊用于將結(jié)果分析模塊發(fā)送的結(jié)果報(bào)表顯示在用戶界面上,同時(shí)保存于監(jiān)測(cè)機(jī)的數(shù)據(jù)庫中。方便評(píng)測(cè)人員查詢。
具體實(shí)施方式
四,本實(shí)施方式是對(duì)具體實(shí)施方式
二所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)中的應(yīng)用層實(shí)現(xiàn)任務(wù)代理過程的進(jìn)一步說明,本實(shí)施方式中, 所述應(yīng)用層實(shí)現(xiàn)任務(wù)代理的流程為首先向底層的STAF注冊(cè)一個(gè)標(biāo)志此代理(Agent)進(jìn)程唯一身份的句柄,記為STAFHandle ;接著以一定的時(shí)間間隔不斷地監(jiān)測(cè)數(shù)據(jù)庫中的數(shù)據(jù)變化,獲取所有處于“等待執(zhí)行”狀態(tài)的任務(wù)列表,然后調(diào)用類AutoTestJobExecutor來逐個(gè)執(zhí)行這些任務(wù);在任務(wù)控制代理的過程中,監(jiān)聽STAF消息隊(duì)列,一旦接收到用戶發(fā)送的停止消息(MSG_ST0P),任務(wù)控制代理在退出自身進(jìn)程前,并通知底層STAF停止正在運(yùn)行的所有任務(wù),并更新這些任務(wù)在數(shù)據(jù)庫中的狀態(tài)為“已中止”。該種方法相比于直接終止任務(wù)控制代理進(jìn)程的方式更為安全,確保了數(shù)據(jù)的完整性。本實(shí)施方式中所述的任務(wù)控制代理使用多線程的方法來支持多任務(wù)并發(fā)執(zhí)行,每一個(gè)線程都獨(dú)立處理一個(gè)自動(dòng)化測(cè)試任務(wù)的執(zhí)行過程。為了防止并發(fā)的多個(gè)任務(wù)使用同一臺(tái)測(cè)試代理,在執(zhí)行任務(wù)之前,利用STAF的信號(hào)量服務(wù)來申請(qǐng)對(duì)目標(biāo)機(jī)器的使用權(quán)限,在任務(wù)結(jié)束時(shí)再釋放該資源,從而確保在執(zhí)行任務(wù)的過程中,目標(biāo)測(cè)試代理不會(huì)被其他的任務(wù)使用,進(jìn)而保證一臺(tái)測(cè)試代理在任意時(shí)刻最多只為一個(gè)自動(dòng)化測(cè)試任務(wù)所占用。
具體實(shí)施方式
五,本實(shí)施方式是對(duì)具體實(shí)施方式
四所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)中的類AutoTestJobExecutor執(zhí)行某一任務(wù)的過程的進(jìn)一步說明,本實(shí)施方式中,所述類AutoTestJobExecutor封裝了執(zhí)行某個(gè)自動(dòng)化測(cè)試任務(wù)的所有細(xì)節(jié),執(zhí)行自動(dòng)化測(cè)試任務(wù)的具體過程為1)根據(jù)測(cè)試任務(wù)編號(hào)(job Id)從數(shù)據(jù)庫讀取任務(wù)信息,所述任務(wù)信息包括目標(biāo)機(jī)器、任務(wù)XML文件、入口函數(shù)、所有參數(shù)值,所述參數(shù)值是指測(cè)試數(shù)據(jù);2)注冊(cè)一個(gè)STAF句柄,若失敗,則執(zhí)行步驟12);3)申請(qǐng)對(duì)目標(biāo)機(jī)器的MUTEX訪問資源,若失敗,則執(zhí)行步驟11);4)記錄任務(wù)開始時(shí)刻為tl。5)向底層STAF的STAX Service提交任務(wù),若提交失敗,則更改數(shù)據(jù)庫中該任務(wù)狀態(tài)為“執(zhí)行失敗”,然后執(zhí)行步驟10);6)更新數(shù)據(jù)庫,更改該任務(wù)狀態(tài)為“正在執(zhí)行”;7)向STAF提出等待,直到STAX返回任務(wù)結(jié)果RC或超過最長等待時(shí)間tmax,如果超時(shí),則更新數(shù)據(jù)狀態(tài)為“等待超時(shí)”,然后執(zhí)行步驟10);8)記當(dāng)前時(shí)刻為t2,統(tǒng)計(jì)任務(wù)執(zhí)行時(shí)間為t = t2-tl ;9)若RC為0,則更改該任務(wù)狀態(tài)為“成功”,否則更改該任務(wù)狀態(tài)為“失敗”;10)釋放 MUTEX 資源;11)注銷 STAF 句柄。
具體實(shí)施方式
五,本實(shí)施方式是對(duì)具體實(shí)施方式
一所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)中的故障注入管理服務(wù)模塊的進(jìn)一步說明,本實(shí)施方式中,所述故障注入管理服務(wù)模塊中包括多個(gè)故障注入工具和多個(gè)構(gòu)件,每個(gè)構(gòu)件在實(shí)現(xiàn)層發(fā)送的命令的控制下負(fù)責(zé)控制一個(gè)故障注入工具實(shí)現(xiàn)故障注入,每個(gè)故障注入工具在實(shí)現(xiàn)故障注入之后,將故障注入結(jié)果反饋給實(shí)現(xiàn)層。本實(shí)施方式中,所述多個(gè)故障注入模塊包括=Ptrace故障注入工具、基于內(nèi)核模擬的寄存器故障注入工具、軟件實(shí)現(xiàn)的內(nèi)存故障注入工具、基于PAL實(shí)現(xiàn)的MCA錯(cuò)誤故障注入工具、SCSI驅(qū)動(dòng)層故障注入工具和文件系統(tǒng)故障注入工具。故障注入模塊是該測(cè)試平臺(tái)的一個(gè)核心模塊,在整個(gè)測(cè)試流程中發(fā)揮重要的作用,本文采用基于構(gòu)件的方式開發(fā)該模塊。如圖3所示,故障注入模塊由多個(gè)構(gòu)件組成,其中每個(gè)構(gòu)件對(duì)應(yīng)一種故障注入方法,它們以并聯(lián)的方式與故障注入管理服務(wù)連接。當(dāng)需要增加或刪除故障注入方法時(shí),只需增刪其中的構(gòu)件即可。這種方式實(shí)現(xiàn)了故障注入平臺(tái)的靈活組態(tài),同時(shí)也減小了各故障注入工具間的耦合度。上述構(gòu)件均由三部分組成,其開發(fā)遵循統(tǒng)一的標(biāo)準(zhǔn)。構(gòu)件行為描述了構(gòu)件所能實(shí)現(xiàn)的功能,即對(duì)應(yīng)故障注入工具的功能。構(gòu)件屬性代表構(gòu)件的狀態(tài),具體通過ID與描述信息唯一標(biāo)識(shí)各故障注入工具。構(gòu)件接口是供外部模塊使用的方法,具體通過動(dòng)態(tài)鏈接庫的方式提供四個(gè)接口函數(shù)初始化、獲取工具信息、接收消息及退出運(yùn)行。故障注入模塊由多個(gè)構(gòu)件組成,其中每個(gè)構(gòu)件對(duì)應(yīng)一種故障注入方法,它們以并聯(lián)的方式與主控模塊連接。當(dāng)需要增加或刪除故障注入方法時(shí),只需增刪其中的構(gòu)件即可。這種方式實(shí)現(xiàn)了故障注入平臺(tái)的靈活組態(tài),同時(shí)也減小了各模塊間的耦合度。本實(shí)施方式中的Ptrace故障注入工具,用于通過訪問和修改進(jìn)程內(nèi)存映像中的寄存器值,實(shí)現(xiàn)故障注入;是基于UNIX通用的PtraceO系統(tǒng)調(diào)用開發(fā)而成的。該故障注入工具運(yùn)行在用戶態(tài),針對(duì)應(yīng)用進(jìn)程層注入寄存器故障。Ptrace提供了一種使父進(jìn)程得以監(jiān)視和控制子進(jìn)程的方式,能夠訪問和修改子進(jìn)程中的寄存器和內(nèi)存映像,因而可以實(shí)現(xiàn)對(duì)進(jìn)程的斷點(diǎn)調(diào)試和跟蹤等。Ptrace故障注入工具能夠注入寄存器故障和內(nèi)存故障。故障類型包括位翻轉(zhuǎn),恒 0,恒1,隨機(jī)錯(cuò)等。觸發(fā)方式包括單步調(diào)試觸發(fā)和計(jì)時(shí)觸發(fā)兩種。Ptrace故障集如下表所示表IPtrace故障注入工具故障集
權(quán)利要求
1.基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái),其特征在于,所述測(cè)試平臺(tái)是基于下述分布式測(cè)試環(huán)境建立的,所述分布式測(cè)試環(huán)境是基于STAF搭建的自動(dòng)化、分布式測(cè)試環(huán)境,該環(huán)境包括控制機(jī)(4)、測(cè)試代理服務(wù)器組、FTP服務(wù)器( 、監(jiān)視器( 、目標(biāo)服務(wù)器(7)和數(shù)據(jù)服務(wù)器(6),其中,控制機(jī)G),是整個(gè)測(cè)試環(huán)境中的控制端,用于管理、控制整個(gè)自動(dòng)化測(cè)試流程; 它通過底層的STAF服務(wù),向測(cè)試環(huán)境中的各個(gè)測(cè)試結(jié)點(diǎn)提交自動(dòng)化測(cè)試任務(wù),同時(shí)監(jiān)視測(cè)試結(jié)點(diǎn)的任務(wù)執(zhí)行情況,并將任務(wù)執(zhí)行進(jìn)展相關(guān)數(shù)據(jù)發(fā)送給監(jiān)視器(3);監(jiān)測(cè)器,用于將控制機(jī)(4)發(fā)送的任務(wù)執(zhí)行進(jìn)展相關(guān)數(shù)據(jù)顯示輸出,還用于實(shí)時(shí)顯示目標(biāo)服務(wù)器(7)的系統(tǒng)關(guān)鍵性能信息,所述系統(tǒng)關(guān)鍵性能信息包括目標(biāo)服務(wù)器(7)的CPU 性能參數(shù)、內(nèi)存使用率、磁盤IO速率、網(wǎng)絡(luò)速率等,還用于在監(jiān)控結(jié)束后導(dǎo)出監(jiān)控日志和日志分析文件;FTP服務(wù)器( ,保存與故障注入自動(dòng)化測(cè)試相關(guān)的所有文件和腳本,通過文件系統(tǒng)服務(wù)下載到指定的計(jì)算機(jī),所述指定的計(jì)算機(jī)包括目標(biāo)服務(wù)器(7),測(cè)試代理服務(wù)器;數(shù)據(jù)服務(wù)器(6),用于收集和存儲(chǔ)故障注入實(shí)驗(yàn)生成的所有結(jié)果;目標(biāo)服務(wù)器(7),是待測(cè)高端容錯(cuò)計(jì)算機(jī),是基于故障注入方法進(jìn)行可用性評(píng)測(cè)的目標(biāo)對(duì)象;測(cè)試代理服務(wù)器組,用于監(jiān)聽并接收控制機(jī)(4)發(fā)送來的測(cè)試任務(wù)信息,并執(zhí)行相應(yīng)的測(cè)試操作,同時(shí)反饋測(cè)試過程和結(jié)果給控制器;該測(cè)試代理服務(wù)器組由兩臺(tái)測(cè)試代理服務(wù)器組成,其中,一臺(tái)測(cè)試代理服務(wù)器( 用于運(yùn)行負(fù)載發(fā)生器,實(shí)現(xiàn)根據(jù)控制機(jī)(4)的命令產(chǎn)生負(fù)載信息給目標(biāo)服務(wù)器(7);另一臺(tái)測(cè)試代理服務(wù)(1)器用于執(zhí)行向目標(biāo)服務(wù)器(7) 注入故障,觀察系統(tǒng)對(duì)故障的反應(yīng),結(jié)合負(fù)載變化,分析系統(tǒng)相關(guān)性能,實(shí)現(xiàn)向目標(biāo)服務(wù)器 (7)模擬注入故障,評(píng)測(cè)相關(guān)性能的任務(wù);基于上述分布式測(cè)試環(huán)境的故障注入自動(dòng)化測(cè)試平臺(tái)由軟件實(shí)現(xiàn),它包括應(yīng)用層、代理層和實(shí)現(xiàn)層,其中,應(yīng)用層為運(yùn)行在總控端服務(wù)中的應(yīng)用程序,該應(yīng)用程序利用關(guān)系型數(shù)據(jù)庫和文件系統(tǒng)來管理自動(dòng)化測(cè)試過程中的數(shù)據(jù)和信息,并提供友好的圖形界面與用戶交互;代理層,運(yùn)行在應(yīng)用層和實(shí)現(xiàn)層中間,實(shí)現(xiàn)任務(wù)代理,在后臺(tái)運(yùn)行,負(fù)責(zé)執(zhí)行用戶從界面中提交的自動(dòng)化測(cè)試任務(wù);所述任務(wù)代理由任務(wù)控制代理背景程序組成,實(shí)現(xiàn)層,指運(yùn)行在自動(dòng)化測(cè)試控制服務(wù)器最底層的STAF進(jìn)程及其提供的包括STAX在內(nèi)的各種服務(wù),在該層,封裝了自動(dòng)化測(cè)試控制服務(wù)器與各種平臺(tái)的測(cè)試代理間通信、執(zhí)行各種自動(dòng)化測(cè)試具體操作。
2.根據(jù)權(quán)利要求1所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái),其特征在于,所述測(cè)試相關(guān)的文件和腳本包括負(fù)載發(fā)生器安裝程序及工作腳本、故障注入服務(wù)安裝程序及工作腳本、測(cè)試監(jiān)控服務(wù)安裝程序及工作腳本。
3.根據(jù)權(quán)利要求1所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái),其特征在于,所述的應(yīng)用層是按照MVC應(yīng)用模型的設(shè)計(jì)思想設(shè)計(jì)的,該應(yīng)用層中的總控端服務(wù)由視圖層、控制器和模型三個(gè)部分組成,其中視圖層View,用于根據(jù)控制器發(fā)送的數(shù)據(jù)提供人機(jī)交互界面,實(shí)現(xiàn)與評(píng)測(cè)人員的信息交互,例如可以選擇現(xiàn)場(chǎng)制定測(cè)試參數(shù),或選擇直接從監(jiān)測(cè)機(jī)上的SQL數(shù)據(jù)庫中讀取測(cè)試參數(shù)文件;所述視圖層的代碼全部是軟件界面的布局,不包含業(yè)務(wù)邏輯;控制器Controller,負(fù)責(zé)分析用戶請(qǐng)求并調(diào)用合適的模型來處理,還用于實(shí)現(xiàn)模型與視圖層之間的數(shù)據(jù)交互;還用于提供人機(jī)交互界面需要顯示的事件及響應(yīng)給視圖層,還負(fù)責(zé)數(shù)據(jù)的組織,然后交由Model中的STAF傳輸或者交由DB存儲(chǔ),模型,封裝了各種業(yè)務(wù)邏輯,用于在控制器的調(diào)用下實(shí)現(xiàn)相應(yīng)的邏輯動(dòng)作。
4.根據(jù)權(quán)利要求3所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái),其特征在于,所述模型包括測(cè)試策略生成管理模塊、用戶管理模塊、測(cè)試代理資源管理模塊、動(dòng)態(tài)部署模塊、自動(dòng)化測(cè)試任務(wù)管理模塊、測(cè)試日志管理模塊、結(jié)果回收模塊、結(jié)果分析模塊和結(jié)果顯示模塊,其中測(cè)試策略生成管理模塊用于接收測(cè)試參數(shù)或測(cè)試參數(shù)文件,并根據(jù)所述測(cè)試參數(shù)或測(cè)試參數(shù)文件生成命令控制字;用戶管理模塊用于管理系統(tǒng)用戶信息,并控制系統(tǒng)訪問權(quán)限;測(cè)試代理資源管理模塊用于管理整個(gè)測(cè)試系統(tǒng)中的測(cè)試機(jī)資源,對(duì)這些資源進(jìn)行合理分配利用;動(dòng)態(tài)部署模塊根據(jù)人工測(cè)試流程采用消息觸動(dòng)機(jī)制,應(yīng)用文件系統(tǒng)服務(wù)將FTP服務(wù)器( 上保存的相應(yīng)程序及腳本分發(fā)到分布式測(cè)試環(huán)境中;自動(dòng)化測(cè)試任務(wù)管理模塊用于負(fù)責(zé)自動(dòng)化測(cè)試任務(wù)的上傳、分類、查詢、提交、中斷等測(cè)試流程中的相關(guān)操作;測(cè)試日志管理模塊用于管理包括自動(dòng)化測(cè)試任務(wù)的實(shí)時(shí)運(yùn)行日志、測(cè)試報(bào)告、歷史記錄等信息;結(jié)果回收模塊用于實(shí)時(shí)收集目標(biāo)系統(tǒng)面對(duì)故障的不同反應(yīng),并根據(jù)所述反映生成故障注入結(jié)果;結(jié)果分析模塊運(yùn)行于監(jiān)測(cè)機(jī)內(nèi),用于分析從目標(biāo)機(jī)傳來的故障注入結(jié)果,并計(jì)算相關(guān)指標(biāo),生成結(jié)果報(bào)表;結(jié)果顯示模塊用于將結(jié)果分析模塊發(fā)送的結(jié)果報(bào)表顯示在用戶界面上,同時(shí)保存于監(jiān)測(cè)機(jī)的數(shù)據(jù)庫中。
5.根據(jù)權(quán)利要求1所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái),其特征在于,所述應(yīng)用層實(shí)現(xiàn)任務(wù)代理的流程為首先向底層的STAF注冊(cè)一個(gè)標(biāo)志此代理進(jìn)程唯一身份的句柄,記為STAFHandle ;接著以一定的時(shí)間間隔不斷地監(jiān)測(cè)數(shù)據(jù)庫中的數(shù)據(jù)變化, 獲取所有處于“等待執(zhí)行”狀態(tài)的任務(wù)列表,然后調(diào)用類AutoTestJobExecutor來逐個(gè)執(zhí)行這些任務(wù);在任務(wù)控制代理的過程中,監(jiān)聽STAF消息隊(duì)列,一旦接收到用戶發(fā)送的停止消息MSG_ST0P,任務(wù)控制代理在退出自身進(jìn)程前,并通知底層STAF停止正在運(yùn)行的所有任務(wù),并更新這些任務(wù)在數(shù)據(jù)庫中的狀態(tài)為“已中止”。
6.根據(jù)權(quán)利要求5所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái),其特征在于,所述類AutoTestJobExecutor封裝了執(zhí)行某個(gè)自動(dòng)化測(cè)試任務(wù)的所有細(xì)節(jié),執(zhí)行自動(dòng)化測(cè)試任務(wù)的具體過程為1)根據(jù)測(cè)試任務(wù)編號(hào)job Id從數(shù)據(jù)庫讀取任務(wù)信息,所述任務(wù)信息包括目標(biāo)機(jī)器、任務(wù)XML文件、入口函數(shù)、所有參數(shù)值,所述參數(shù)值是指測(cè)試數(shù)據(jù);2)注冊(cè)一個(gè)STAF句柄,若失敗,則執(zhí)行步驟12);3)申請(qǐng)對(duì)目標(biāo)機(jī)器的MUTEX訪問資源,若失敗,則執(zhí)行步驟11);4)記錄任務(wù)開始時(shí)刻為tl;5)向底層STAF的STAXService提交任務(wù),若提交失敗,則更改數(shù)據(jù)庫中該任務(wù)狀態(tài)為 “執(zhí)行失敗”,然后執(zhí)行步驟10);6)更新數(shù)據(jù)庫,更改該任務(wù)狀態(tài)為“正在執(zhí)行”;7)向STAF提出等待,直到STAX返回任務(wù)結(jié)果RC或超過最長等待時(shí)間tmax,如果超時(shí), 則更新數(shù)據(jù)狀態(tài)為“等待超時(shí)”,然后執(zhí)行步驟10);8)記當(dāng)前時(shí)刻為t2,統(tǒng)計(jì)任務(wù)執(zhí)行時(shí)間為t= t2-tl ;9)若RC為0,則更改該任務(wù)狀態(tài)為“成功”,否則更改該任務(wù)狀態(tài)為“失敗”;10)釋放MUTEX資源;11)注銷STAF句柄。
7.根據(jù)權(quán)利要求1所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái),其特征在于,所述故障注入管理服務(wù)模塊中包括多個(gè)故障注入工具和多個(gè)構(gòu)件,每個(gè)構(gòu)件在實(shí)現(xiàn)層發(fā)送的命令的控制下負(fù)責(zé)控制一個(gè)故障注入工具實(shí)現(xiàn)故障注入,每個(gè)故障注入工具在實(shí)現(xiàn)故障注入之后,將故障注入結(jié)果反饋給實(shí)現(xiàn)層。
8.根據(jù)權(quán)利要求7所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái),其特征在于,所述多個(gè)故障注入模塊包括Ptrace故障注入工具、基于內(nèi)核模擬的寄存器故障注入工具、軟件實(shí)現(xiàn)的內(nèi)存故障注入工具、基于PAL實(shí)現(xiàn)的MCA錯(cuò)誤故障注入工具、SCSI驅(qū)動(dòng)層故障注入工具和文件系統(tǒng)故障注入工具。
9.根據(jù)權(quán)利要求8所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái),其特征在于,Ptrace故障注入工具,用于通過訪問和修改進(jìn)程內(nèi)存映像中的寄存器值,實(shí)現(xiàn)故障注入;寄存器故障注入工具,是基于內(nèi)核模擬實(shí)現(xiàn)的,它利用kprobe調(diào)試接口,對(duì)內(nèi)核時(shí)鐘中斷處理程序進(jìn)行攔截,將故障注入代碼插入到時(shí)鐘中斷處理程序中,訪問和修改指定進(jìn)程的內(nèi)核堆棧中存儲(chǔ)的寄存器值,從而實(shí)現(xiàn)寄存器故障的模擬;內(nèi)存故障注入工具,它是基于軟件實(shí)現(xiàn)的memFI故障注入工具,利用/dev/mem虛擬文件,修改物理內(nèi)存地址內(nèi)容,實(shí)現(xiàn)故障注入,對(duì)于用戶態(tài)虛擬內(nèi)存地址,可以通過查詢頁表, 轉(zhuǎn)換成物理內(nèi)存地址,然后進(jìn)行故障注入;MCA錯(cuò)誤故障注入工具,它是基于PAL固件提供的故障注入例程開發(fā)而成的,該過程提供了一種向指定處理器的Cache、TLB及寄存器堆注入硬件錯(cuò)誤的方式,所注入的錯(cuò)誤能夠被機(jī)器檢查架構(gòu)檢測(cè)到,并由硬件、固件和操作系統(tǒng)三者配合共同處理故障,SCSI驅(qū)動(dòng)層故障注入工具,是對(duì)存儲(chǔ)器實(shí)現(xiàn)故障注入的工具。
10.基于權(quán)利要求1所述的基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)的自動(dòng)化測(cè)試方法,其特征在于,所述自動(dòng)化測(cè)試的過程為1)準(zhǔn)備工作,在待測(cè)目標(biāo)機(jī)上安裝負(fù)載模擬子系統(tǒng);2)控制機(jī)(4)從FTP服務(wù)器( 上下載最新的負(fù)載發(fā)生器和故障注入的安裝代碼及配套的安裝、執(zhí)行腳本;3)根據(jù)配置文件,控制機(jī)(4)利用STAF的FS服務(wù)將上述安裝代碼及配套的安裝、執(zhí)行腳本分發(fā)、部署到相應(yīng)的測(cè)試代理、服務(wù)器上,運(yùn)行安裝腳本,安裝相關(guān)程序;4)受限于可用性測(cè)試套件運(yùn)行流程,控制機(jī)(4)檢查目標(biāo)服務(wù)器(7)的運(yùn)行狀況;5)控制機(jī)(4)在加載負(fù)載發(fā)生器的測(cè)試代理上運(yùn)行執(zhí)行腳本,向?qū)?yīng)的目標(biāo)服務(wù)器 (7)上施加負(fù)載;6)控制機(jī)(4)在加載故障注入的測(cè)試代理上運(yùn)行執(zhí)行腳本,開始對(duì)目標(biāo)服務(wù)器(7)進(jìn)行故障注入;7)故障注入完畢后,加載故障注入的測(cè)試代理將測(cè)試結(jié)果送回控制機(jī)G)。
全文摘要
基于STAF的高端容錯(cuò)機(jī)故障注入自動(dòng)化測(cè)試平臺(tái)及方法,涉及故障注入技術(shù)。本發(fā)明提供了一種適用于高端容錯(cuò)計(jì)算機(jī)故障注入測(cè)試的自動(dòng)化測(cè)試平臺(tái)及方法。本發(fā)明采用軟件嵌入分布式測(cè)試環(huán)境實(shí)現(xiàn),所述軟件中的應(yīng)用層為運(yùn)行在總控端服務(wù)中的應(yīng)用程序,利用關(guān)系型數(shù)據(jù)庫和文件系統(tǒng)來管理自動(dòng)化測(cè)試過程中的數(shù)據(jù)和信息,并提供友好的圖形界面;代理層運(yùn)行在應(yīng)用層和實(shí)現(xiàn)層中間實(shí)現(xiàn)任務(wù)代理,負(fù)責(zé)執(zhí)行用戶從界面中提交的自動(dòng)化測(cè)試任務(wù);實(shí)現(xiàn)層封裝了自動(dòng)化測(cè)試控制服務(wù)器與各種平臺(tái)的測(cè)試代理間通信、執(zhí)行各種自動(dòng)化測(cè)試具體操作。本發(fā)明是基于開源的自動(dòng)化測(cè)試工具STAF構(gòu)建的、分布式的、自動(dòng)化的、可集成多種軟件故障注入工具的故障注入平臺(tái)。
文檔編號(hào)G06F11/36GK102354298SQ201110212490
公開日2012年2月15日 申請(qǐng)日期2011年7月27日 優(yōu)先權(quán)日2011年7月27日
發(fā)明者馮懿, 劉宏偉, 周海鷹, 崔忠強(qiáng), 左德承, 張展, 楊孝宗, 溫東新, 羅丹彥, 苗百利, 董劍, 錢軍 申請(qǐng)人:哈爾濱工業(yè)大學(xué)