自動化編譯測試方法及實現(xiàn)該方法的自動化編譯測試平臺的制作方法
【專利摘要】本發(fā)明公開了一種自動化編譯測試方法及實現(xiàn)該方法的自動化編譯測試平臺,該方法包括步驟一、入庫代碼自動編譯;步驟二、將編譯好的版本自動上傳到設(shè)備中;步驟三、根據(jù)庫文件里更新的模塊執(zhí)行相關(guān)的測試?yán)蛘呷康臏y試?yán)?;步驟四、生成測試結(jié)果,包括執(zhí)行測試?yán)^程中設(shè)備CPU和內(nèi)存的占用率監(jiān)測圖,如果設(shè)備發(fā)生重啟或者死機,繼續(xù)運行下一個測試?yán)⒂涗洔y試的詳細(xì)結(jié)果;步驟五、測試異常中斷或者測試完畢,將測試結(jié)果發(fā)送給編寫代碼的工程師或相關(guān)管理人員;步驟六、編寫代碼的工程師根據(jù)測試結(jié)果來決定是否需要修改代碼。本發(fā)明可以充分利用設(shè)備等資源,且測試不受工作時間及測試人力資源所限制,縮短開發(fā)周期,降低開發(fā)成本。
【專利說明】自動化編譯測試方法及實現(xiàn)該方法的自動化編譯測試平臺
【技術(shù)領(lǐng)域】
[0001]本發(fā)明有關(guān)一種自動化編譯測試方法及自動化編譯測試平臺,特別是指一種從編譯代碼到獲取代碼被執(zhí)行的結(jié)果的全自動過程的自動化編譯測試方法及實現(xiàn)該方法的自動化編譯測試平臺。
【背景技術(shù)】
[0002]隨著通信行業(yè)的快速發(fā)展,通信設(shè)備越來越復(fù)雜,開發(fā)周期也越來越長,開發(fā)成本越來越高。通常在一款軟件產(chǎn)品研發(fā)之后,會有專門工作人員進行軟件測試,根據(jù)測試結(jié)果再對該軟件產(chǎn)品進行修改。這個過程往往因為受上班時間,人力等的限制,還有客戶與主管的原因會耗費較長的時間,造成產(chǎn)品成本提高。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明的主要目的在于提供一種能節(jié)省人力資源、縮短開發(fā)周期、降低開發(fā)成本的從代碼編譯到被上傳至設(shè)備執(zhí)行得到測試結(jié)果的全自動化過程的自動化編譯測試方法及自動化編譯測試平臺。
[0004]為達到上述目的,本發(fā)明提供一種自動化編譯測試方法,其包括:
步驟一、入庫代碼自動編譯;
步驟二、將編譯好的版本自動上傳到設(shè)備中;
步驟三、根據(jù)庫文件里更新的模塊執(zhí)行相關(guān)的測試?yán)蛘呷康臏y試?yán)?br>
步驟四、生成測試結(jié)果,包括執(zhí)行測試?yán)^程中設(shè)備CPU和內(nèi)存的占用率監(jiān)測圖,如果設(shè)備發(fā)生重啟,等待設(shè)備起來之后繼續(xù)運行下一個測試?yán)?,并記錄?dǎo)致設(shè)備發(fā)生重啟配置及測試的詳細(xì)結(jié)果;
步驟五、測試異常中斷或者測試完畢,將測試結(jié)果發(fā)送給編寫代碼的工程師或相關(guān)管理人員;
步驟六、編寫代碼的工程師根據(jù)測試結(jié)果來決定是否需要修改代碼。
[0005]在所述步驟一中,將更新的代碼入庫后,當(dāng)建立的工程中有功能模塊更新時,利用自動編譯模塊啟動自動化編譯功能;或者設(shè)置一個定時編譯功能,當(dāng)編譯時間到達后,自動編譯模塊自動編譯一個工程版本;如果編譯失敗,直接將失敗的記錄傳給程序控制模塊,程序控制模塊發(fā)送電子郵件給相關(guān)的工程師;如果編譯成功則將編譯好的版本放在指定的文件夾里,編譯的版本根據(jù)設(shè)備名稱、線卡類型、版本類別自動生成不同的名字,同時將有更新的模塊傳給程序控制模塊,告訴程序控制模塊哪些模塊作了更新,以及版本生成的時間。
[0006]在所述步驟二中,當(dāng)自動編譯模塊完成所有的線卡、主控的版本后,利用版本自動升級模塊通過FTP/TFTP協(xié)議將版本上傳到設(shè)備上去;清空設(shè)備配置,重啟設(shè)備,等設(shè)備運行后,查看設(shè)備的版本、編譯時間是否是與步驟一編譯的時間一致,否則重新上傳,如果重傳三次失敗,記錄結(jié)果,并將結(jié)果傳遞給程序控制模塊;如果上傳版本三次都失敗了,保留現(xiàn)場,將結(jié)果通過電子郵件發(fā)送給相關(guān)的研發(fā)人員。[0007]在所述步驟三中,測試?yán)y試的設(shè)備配置文件和儀表的測試腳本,啟動測試?yán)埃蹇赵O(shè)備的配置,儀表的配置,然后根據(jù)更新的模塊啟動相應(yīng)的設(shè)備配置和儀表的配置,啟動測試,測試完成后記錄測試結(jié)果。
[0008]所述步驟三與步驟四具體包括:
(1)在完成一個模塊的測試?yán)笤诓挥绊懫渌鼫y試功能的情況下加載執(zhí)行SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)set的攻擊測試;
(2)在執(zhí)行測試?yán)^程中影響其它測試功能的情況下加載執(zhí)行SNMPset的攻擊測試,此測試目的監(jiān)測設(shè)備是否會發(fā)生異常;
(3)在執(zhí)行測試?yán)^程中,對所有節(jié)點的執(zhí)行以下操作:對所有的節(jié)點執(zhí)行SNMPwalk,SNMP getbulk,其中 SNMP getbulk 中的參數(shù) Noe repeater 和 Max repetition 米用隨機數(shù)據(jù);
(4)執(zhí)行完上述(I)、(2)、(3)后,清空設(shè)備的配置,儀表的配置,以免和下一個測試發(fā)生沖突,在測試過程中記錄測試結(jié)果;進行下一個測試?yán)臏y試,當(dāng)一個測試?yán)瓿珊?,或者對相同的測試?yán)貜?fù)一定的次數(shù),一個測試?yán)郎y試完成后繼續(xù)測試下一個測試?yán)?,記錄每個測試?yán)拿看螠y試的結(jié)果;該測試結(jié)果包括:加載設(shè)備配置和儀表流量的測試結(jié)果,只加載設(shè)備配置執(zhí)行完上述(I)、(2)、(3)的測試結(jié)果,同時加載設(shè)備配置和儀表流量執(zhí)行完上述(I)、(2)、(3)的測試結(jié)果。
[0009]在測試過程中可通過串口或者使用SNMP get系統(tǒng)運行時間來檢測設(shè)備是否發(fā)生重啟的故障;設(shè)備如果發(fā)生重啟,恢復(fù)運行的時間記錄為T0,自動化測試開始前等待一定的時間T1,T1>T0,再開始測試;不間斷地get系統(tǒng)運行時間,當(dāng)成功獲取系統(tǒng)的運行時間記為T2,將Tl的值與T2進行比較,如果T2 < Tl,則認(rèn)為系統(tǒng)重啟;記錄下執(zhí)行的動作和節(jié)點,并等待一定的時間Tl,繼續(xù)測試下一個節(jié)點或測試?yán)?br>
如果測試過程中反復(fù)多次無法獲取系統(tǒng)的運行時間,則認(rèn)為設(shè)備死機,測試將停止運行,退出測試程序,并將測試所進行的操作記錄于日志文件;
通過簡單網(wǎng)絡(luò)管理協(xié)議接口獲取被測設(shè)備的CPU和內(nèi)存的使用情況,也可以通過串口來獲?。煌瑫r將CPU和內(nèi)存的使用情況和測試用例、SNMP測試節(jié)點對應(yīng),并生成圖表的形式保存成日志。
[0010]本發(fā)明還提供一種自動化編譯測試平臺,其包括:
自動編譯模塊:將更新的代碼入庫后,自動編譯模塊啟動自動化編譯功能;
版本自動升級模塊:當(dāng)自動編譯模塊完成編譯后,自動升級模塊通過FTP/TFTP協(xié)議將版本上傳到設(shè)備上去;
自動化測試模塊:根據(jù)更新的模塊,啟動測試?yán)龓炖锏南鄳?yīng)的測試?yán)?,并將測試結(jié)果記錄在日志記錄模塊;
自動郵件發(fā)送模塊:將測試的結(jié)果發(fā)送給研發(fā)工程師,研發(fā)工程師根據(jù)測試結(jié)果來定位故障,以確定是否需要修改代碼。
[0011]所述自動編譯模塊在編譯時,如果編譯失敗,直接將失敗的記錄傳給程序控制模塊,程序控制模塊發(fā)送電子郵件給相關(guān)的工程師;如果編譯成功則將編譯好的版本放在指定的文件夾里,編譯的版本根據(jù)設(shè)備名稱、線卡類型、版本類別生成不同的名字,同時將有更新的模塊傳給程序控制模塊,告訴程序控制模塊哪些模塊作了更新,以及版本生成的時間;
所述版本自動升級模塊清空設(shè)備配置,重啟設(shè)備,等設(shè)備運行后,查看設(shè)備的版本、編譯時間是否是跟自動編譯模塊編譯的時間一致,否則重新上傳,如果重傳三次失敗,記錄結(jié)果,并將結(jié)果傳遞給程序控制模塊。
[0012]所述測試?yán)y試的設(shè)備配置文件和儀表的測試腳本;在不影響設(shè)備測試的情況下對設(shè)備同時進行簡單網(wǎng)絡(luò)管理協(xié)議SNMP的操作:具體為:
根據(jù)SNMP get命令獲取設(shè)備相應(yīng)節(jié)點的值Rl ;
然后進行非法字符集的設(shè)置,同時監(jiān)測非法字符對設(shè)備的影響;
然后再將值Rl通過SNMP set命令設(shè)置下去,返回的值為R2 ;
再通過SNMP get命令獲取該節(jié)點的值R3 ;
當(dāng)Rl,R2和R3的值一樣時則認(rèn)為此節(jié)點的SNMP協(xié)議測試通過。
[0013]該平臺還包括CPU與內(nèi)存監(jiān)測模塊,通過簡單網(wǎng)絡(luò)管理協(xié)議接口并利用CPU與內(nèi)存監(jiān)測模塊獲取被測設(shè)備的CPU和內(nèi)存的使用情況,同時將CPU和內(nèi)存的使用情況和測試用例、SNMP測試節(jié)點對應(yīng),并生成圖表的形式保存成日志。
[0014]本發(fā)明解決了從代碼編譯到被上傳至設(shè)備執(zhí)行得到測試結(jié)果的全自動過程。可以利用工作時間修改代碼,當(dāng)研發(fā)工程師下班之后自動化編譯測試平臺自動啟動儀表和設(shè)備進行測試,并將設(shè)備存在的問題如導(dǎo)致系統(tǒng)重啟記錄下所作的操作,供研發(fā)人員方便定位問題。本發(fā)明可以充分利用設(shè)備等資源,縮短開發(fā)周期,降低開發(fā)成本。
【專利附圖】
【附圖說明】
[0015]圖1為本發(fā)明自動化編譯測試平臺的結(jié)構(gòu)原理框圖;
圖2為本發(fā)明自動化編譯測試平臺的拓?fù)浣Y(jié)構(gòu)。
【具體實施方式】
[0016]為便于對本發(fā)明的方法及達到的效果有進一步的了解,現(xiàn)結(jié)合附圖并舉較佳實施例詳細(xì)說明如下。
[0017]如圖1所示,本發(fā)明的自動化編譯測試平臺包括有自動編譯模塊、版本自動升級模塊、自動化測試模塊、自動郵件發(fā)送模塊及程序控制模塊,其中:
1.1自動編譯模塊
當(dāng)建立的工程中有功能模塊更新時,自動編譯模塊啟動自動化編譯功能;或者設(shè)置一個定時編譯功能,當(dāng)編譯時間到達后,自動編譯模塊自動編譯一個工程版本。如果編譯失敗,直接將失敗的記錄傳給程序控制模塊,程序控制模塊發(fā)送電子郵件給相關(guān)的工程師。如果編譯成功則將編譯好的版本放在指定的文件夾里,編譯的版本根據(jù)設(shè)備名稱、線卡類型、版本類別生成不同的名字,同時將有更新的模塊傳給程序控制模塊,告訴程序控制模塊哪些模塊作了更新,以及版本生成的時間。
[0018]1.2版本自動升級模塊
當(dāng)自動編譯模塊完成所有的線卡、主控的版本后,自動升級模塊通過FTP/TFTP協(xié)議將版本上傳到設(shè)備上去。清空設(shè)備配置,重啟設(shè)備,等設(shè)備運行后,查看設(shè)備的版本、編譯時間是否是跟1.1編譯的時間一致.否則重新上傳,如果重傳三次失敗,記錄結(jié)果,并將結(jié)果傳遞給程序控制模塊。
[0019]設(shè)備清空重啟后ip地址丟失,則通過串口自動設(shè)置相應(yīng)的IP地址。以確保下一步驟有正常的運行環(huán)境。
[0020]1.3自動化測試模塊
自動測試模塊,是對測試用例庫的執(zhí)行。根據(jù)模塊分別獲取相應(yīng)的設(shè)備的配置,儀表的配置,MIB的腳本。其中MIB腳本記錄OID節(jié)點的取值范圍、可讀可寫、寄存器大小、字符類型、節(jié)點名稱,節(jié)點序號等信息;MMIB腳本也可以在編譯成功之后自動生成相應(yīng)的MIB腳本。以適應(yīng)不同的版本需求。
[0021]1.3.1根據(jù)1.1中更新的模塊,啟動測試?yán)龓炖锏南鄳?yīng)的測試?yán)?br>
[0022]測試?yán)y試的設(shè)備配置文件和儀表的測試腳本。設(shè)備的配置可以是tcl腳本,vbs, python, ruby等語言所寫的腳本程序。且使用儀表的API (Application ProgramInterface,應(yīng)用程序接口)接口啟動對儀表的操作。啟動測試?yán)?,?yīng)該清空設(shè)備的配置,儀表的配置。然后根據(jù)更新的模塊啟動相應(yīng)的配置和儀表的配置,啟動測試,測試完成后記錄測試結(jié)果。
[0023]1.3.2在完成測試1.3.1例之后過程中在不影響其它測試功能的情況下執(zhí)行SNMP (Simple Network Management Protocol,簡單網(wǎng)絡(luò)管理協(xié)議)的攻擊測試:
通過管理信息庫(MIB, Management information Base)來獲取對象標(biāo)識符(0ID,Objiect Identifier)節(jié)點的取值范圍、可讀可寫、寄存器大小、字符類型、節(jié)點名稱,節(jié)點
序號等信息;
通過SNMP自動化get命令,獲取設(shè)備的配置信息,在加載業(yè)務(wù)測試過程中進行如下操
作:
如果是可讀可寫的節(jié)點,先SNMP get該節(jié)點的值R1,再將獲取的初始值Rl再SNMPset下去,再執(zhí)行SNMP get,如果此三次(兩次get,一次set)返回結(jié)果相同則認(rèn)為此節(jié)點測試通過,記錄測試結(jié)果。
[0024]1.3.3在測試1.3.1過程中可能影響其它測試功能的情況下執(zhí)行SNMP set的攻擊測試:
如果是可讀可寫的節(jié)點,先通過SNMP get OID節(jié)點的值vlauel,然后進行攻擊操作包括設(shè)置邊界值,設(shè)置邊界范圍之外的值,設(shè)置超過寄存器大小的值,設(shè)置特殊字符集等,再將獲取的初始值vlauel再執(zhí)行SNMP set命令,再執(zhí)行SNMP get命令,如果此三次(兩次get,一次set)返回的值相同則認(rèn)為此節(jié)點測試通過。記錄測試結(jié)果。
[0025]1.3.4在測試1.3.1過程中測試,對所有節(jié)點的執(zhí)行以下操作:
對所有的節(jié)點執(zhí)行SNMP walk, SNMP getbulk,其中SNMP getbulk中的參數(shù)Noerepeater 和 Max repetition 采用隨機數(shù)據(jù)。
[0026]1.3.5執(zhí)行完1.3.1-1.3.4后,清空設(shè)備的配置,儀表的配置,以免和下一個測試發(fā)生沖突,在測試過程中記錄測試結(jié)果。進行下一個測試?yán)臏y試,當(dāng)一個測試?yán)瓿珊?,或者對相同的測試?yán)貜?fù)一定的次數(shù),一個測試?yán)郎y試完成后繼續(xù)測試下一個測試?yán)?,記錄每個測試?yán)慕Y(jié)果。
[0027]1.3.6在測試過程中可通過串口或者使用SNMP get系統(tǒng)運行時間來檢測設(shè)備是否發(fā)生重啟的故障。后者的方法是:設(shè)備如果發(fā)生重啟,恢復(fù)運行的時間記錄為T0,自動化測試開始前等待一定的時間Tl (Tl〉?)再開始測試。不間斷地get系統(tǒng)運行時間,當(dāng)成功獲取系統(tǒng)的運行時間記為T2,將Tl的值與T2進行比較,如果T2 < Tl,則認(rèn)為系統(tǒng)重啟。記錄下執(zhí)行的動作和節(jié)點,并等待一定的時間Tl (有可能連續(xù)重啟的故障發(fā)生),繼續(xù)測試下一個節(jié)點或測試?yán)?br>
[0028]1.3.7 如果測試過程中反復(fù)多次無法獲取系統(tǒng)的運行時間,則認(rèn)為設(shè)備死機,退出運行的程序,記錄所執(zhí)行的操作。
[0029]1.3.8通過簡單網(wǎng)絡(luò)管理協(xié)議接口并利用CPU與內(nèi)存監(jiān)測模塊獲取被測設(shè)備的CPU和內(nèi)存的使用情況,也可以通過串口命令獲取。同時將CPU和內(nèi)存的使用情況和測試用例、SNMP測試節(jié)點對應(yīng),并生成圖表的形式保存成日志。
[0030]自動測試動模塊可以實現(xiàn)協(xié)議、性能、功能等的測試。
[0031]1.4自動郵件發(fā)送模塊
當(dāng)測試完成后將測試的結(jié)果發(fā)送給研發(fā)的工程師,不同的模塊對應(yīng)的不同的開發(fā)人員;也可以將測試結(jié)果發(fā)送給郵件列表的所有的人,研發(fā)工程師根據(jù)測試結(jié)果來定位故障,修改代碼。
[0032]本發(fā)明的自動化編譯測試平臺在具體應(yīng)用中如下所述:
1、白天當(dāng)程序員將更新的代碼入庫后,自動化編譯測試平臺啟動編譯功能,如果編譯失敗,直接將編譯結(jié)果發(fā)送給編程人員,編程人員修改代碼直至編譯全部通過。
[0033]2、當(dāng)員工下班后,自動化編譯測試平臺將編譯好的版本上傳至被測試的設(shè)備,重啟設(shè)備,通過查看版本信息確保設(shè)備上的代碼是最新編譯的版本。
[0034]3、啟動使用tcl等自動化語言編寫的測試用例。如測試SNMP,就直接運行SNMP相應(yīng)的配置和腳本。如果是OSPF (Open Shortest Path First,開放最短路徑優(yōu)先),BGP(Border Gateway Protocol,邊界網(wǎng)關(guān)協(xié)議),性能測試則除需要啟動自動化編寫的配置設(shè)備外還需要啟動測試儀表的相應(yīng)的自動化設(shè)置,如Test Center提供了 TCL API的接口函數(shù)。當(dāng)測試過程中有導(dǎo)致設(shè)備重啟的問題,待設(shè)備重啟后通過程序控制模塊繼續(xù)運行下一個測試?yán)?,直至所有測試?yán)龍?zhí)行完畢。如果需要多次運行測試?yán)瑒t可以反復(fù)運行次數(shù)。將測試通過和不通過的項目通過日志記錄模塊記錄下來。
[0035]4、在上述3中,通過設(shè)備提供串口,實施對設(shè)備重啟,死機等問題的監(jiān)控,以及對配置的保存和清空,執(zhí)行自動重啟命令和配置設(shè)備IP的地址。
[0036]5、在不影響其它功能的測試前提下,實現(xiàn)各種攻擊測試。如同時進行SNMP的測試,如將設(shè)備滿配置,同時執(zhí)行SNMPgetbulk,其中Noe repeater和Max repetition采用隨機數(shù)據(jù),SNMP set的測試,將設(shè)備的參數(shù)通過SNMP get命令獲取出來,然后進行SNMP set命令進行各種攻擊字符的測試,最后將獲取的初始值再通過SNMP set命令設(shè)置下去,這樣就不會改變設(shè)備的配置的原有的參數(shù)。
[0037]6、通過簡單網(wǎng)絡(luò)管理協(xié)議接口獲取被測設(shè)備的CPU和內(nèi)存的使用情況。同時將CPU和內(nèi)存的使用情況和測試用例、SNMP測試節(jié)點對應(yīng),并生成圖表的形式通過日志記錄模塊保存成日志。通過此日查看哪些測試?yán)騍NMP測試的節(jié)點會影響設(shè)備的正常運行。
[0038]7待測試完畢后將測試結(jié)果發(fā)送給編程人員,同時測試日志記錄了導(dǎo)致失敗的操作,可以重現(xiàn)導(dǎo)致設(shè)備運行異常的環(huán)境,便于開發(fā)人員定位問題。
[0039]本發(fā)明在測試之前可搭建一個比較完善的拓?fù)浣Y(jié)構(gòu),或者多個拓?fù)洵h(huán)境,以適應(yīng)盡量多的測試?yán)鼙粓?zhí)行。通過自動化編譯測試平臺的PC機的串口和被測設(shè)備的串口相連(如RS232),PC機配置必要的串口卡,也可以采用串口服務(wù)器,該被測設(shè)備還連接有測試儀表,同時工程師可以通過TCP等協(xié)議連接工具,在公司任何地方都可以訪問該PC和所連接的設(shè)備,如圖2所示。
[0040]通過自動化編譯測試平臺的PC機的串口和設(shè)備的串口相連,目的是配置設(shè)備、清空設(shè)備的配置、重啟、設(shè)備死機監(jiān)測等功能。
[0041]當(dāng)開發(fā)人員更新代碼庫后,下班時間后(也可以設(shè)置成任意時間),啟動自動編譯模塊,將編譯好的代碼上傳至設(shè)備,根據(jù)代碼更新的內(nèi)容,啟動相應(yīng)的測試用例庫(也可以運行進行全部的測試?yán)?,或者對相同的測試?yán)M行多次反復(fù)運行,當(dāng)遇到導(dǎo)致系統(tǒng)重啟的地方,待設(shè)備重啟后繼續(xù)運行下一個測試案例。自動測試案例使用tcl編程語言編寫的測試配置案例,及使用儀表提供的TCL語言的API接口函數(shù)實現(xiàn)自動化測試。并將測試結(jié)果成功和失敗的案例分別記錄。將所有的測試結(jié)果發(fā)送給研發(fā)人員。利用下班時間和節(jié)假日進行自動化全面測試,可以充分利用儀表并且節(jié)省了人力開銷,縮短開發(fā)周期,降低了開發(fā)成本。
[0042]以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種自動化編譯測試方法,其特征在于,其包括: 步驟一、入庫代碼自動編譯; 步驟二、將編譯好的版本自動上傳到設(shè)備中; 步驟三、根據(jù)庫文件里更新的模塊執(zhí)行相關(guān)的測試?yán)蛘呷康臏y試?yán)? 步驟四、生成測試結(jié)果,包括執(zhí)行測試?yán)^程中設(shè)備CPU和內(nèi)存的占用率監(jiān)測圖,如果設(shè)備發(fā)生重啟,等待設(shè)備起來之后繼續(xù)運行下一個測試?yán)?,并記錄?dǎo)致設(shè)備發(fā)生重啟配置及測試的詳細(xì)結(jié)果; 步驟五、測試異常中斷或者測試完畢,將測試結(jié)果發(fā)送給編寫代碼的工程師或相關(guān)管理人員; 步驟六、編寫代碼的工程師根據(jù)測試結(jié)果來決定是否需要修改代碼。
2.如權(quán)利要求1所述的自動化編譯測試方法,其特征在于,在所述步驟一中,將更新的代碼入庫后,當(dāng)建立的工程中有功能模塊更新時,利用自動編譯模塊啟動自動化編譯功能;或者設(shè)置一個定時編譯功能,當(dāng)編譯時間到達后,自動編譯模塊自動編譯一個工程版本;如果編譯失敗,直接將失敗的記錄傳給程序控制模塊,程序控制模塊發(fā)送電子郵件給相關(guān)的工程師;如果編譯成功則將編譯好的版本放在指定的文件夾里,編譯的版本根據(jù)設(shè)備名稱、線卡類型、版本類別自動生成不同的名字,同時將有更新的模塊傳給程序控制模塊,告訴程序控制模塊哪些模塊作了更新,以及版本生成的時間。
3.如權(quán)利要求2所述的自動化編譯測試方法,其特征在于,在所述步驟二中,當(dāng)自動編譯模塊完成所有的線卡、主控的版本后,利用版本自動升級模塊通過FTP/TFTP協(xié)議將版本上傳到設(shè)備上去;清空設(shè)備配置,重啟設(shè)備,等設(shè)備運行后,查看設(shè)備的版本、編譯時間是否是與步驟一編譯的時間一致,否則重新上傳,如果重傳三次失敗,記錄結(jié)果,并將結(jié)果傳遞給程序控制模塊;如果上傳版本三次都失敗了,保留現(xiàn)場,將結(jié)果通過電子郵件發(fā)送給相關(guān)的研發(fā)人員。`
4.如權(quán)利要求2所述的自動化編譯測試方法,其特征在于,在所述步驟三中,測試?yán)y試的設(shè)備配置文件和儀表的測試腳本,啟動測試?yán)埃蹇赵O(shè)備的配置,儀表的配置,然后根據(jù)更新的模塊啟動相應(yīng)的設(shè)備配置和儀表的配置,啟動測試,測試完成后記錄測試結(jié)果。
5.如權(quán)利要求4所述的自動化編譯測試方法,其特征在于,所述步驟三與步驟四具體包括: (1)在完成一個模塊的測試?yán)笤诓挥绊懫錅y試功能的情況下加載執(zhí)行簡單網(wǎng)絡(luò)管理協(xié)議set的攻擊測試; (2)在執(zhí)行測試?yán)^程中影響其它測試功能的情況下加載執(zhí)行SNMPset的攻擊測試,此測試目的監(jiān)測設(shè)備是否會發(fā)生異常; (3)在執(zhí)行測試?yán)^程中,對所有節(jié)點的執(zhí)行以下操作:對所有的節(jié)點執(zhí)行SNMPwalk,SNMP getbulk,其中 SNMP getbulk 中的參數(shù) Noe repeater 和 Max repetition 米用隨機數(shù)據(jù); (4)執(zhí)行完上述(I)、(2)、(3)后,清空設(shè)備的配置,儀表的配置,以免和下一個測試發(fā)生沖突,在測試過程中記錄測試結(jié)果;進行下一個測試?yán)臏y試,當(dāng)一個測試?yán)瓿珊?,或者對相同的測試?yán)貜?fù)一定的次數(shù),一個測試?yán)郎y試完成后繼續(xù)測試下一個測試?yán)?,記錄每個測試?yán)拿看螠y試的結(jié)果;此測試結(jié)果包括:加載設(shè)備配置和儀表流量的測試結(jié)果,只加載設(shè)備配置執(zhí)行完上述(I)、(2)、(3)的測試結(jié)果,同時加載設(shè)備配置和儀表流量執(zhí)行完上述(I)、(2)、(3)的測試結(jié)果。
6.如權(quán)利要求4所述的自動化編譯測試方法,其特征在于, 在測試過程中可通過串口或者使用SNMP get系統(tǒng)運行時間來檢測設(shè)備是否發(fā)生重啟的故障;設(shè)備如果發(fā)生重啟,恢復(fù)運行的時間記錄為T0,自動化測試開始前等待一定的時間Tl,T1>T0,再開始測試;不間斷地get系統(tǒng)運行時間,當(dāng)成功獲取系統(tǒng)的運行時間記為T2,將Tl的值與T2進行比較,如果T2 < Tl,則認(rèn)為系統(tǒng)重啟;記錄下執(zhí)行的動作和節(jié)點,并等待一定的時間Tl,繼續(xù)測試下一個節(jié)點或測試?yán)? 如果測試過程中反復(fù)多次無法獲取系統(tǒng)的運行時間,則認(rèn)為設(shè)備死機,測試將停止運行,退出測試程序,并將測試所進行的操作記錄于日志文件; 通過簡單網(wǎng)絡(luò)管理協(xié)議接口獲取被測設(shè)備的CPU和內(nèi)存的使用情況,也可以通過串口來獲??;同時將CPU和內(nèi)存的使用情況和測試用例、SNMP測試節(jié)點對應(yīng),并生成圖表的形式保存成日志。
7.一種自動化編譯測試平臺,其特征在于,其包括: 自動編譯模塊:將更新的代碼入庫后,自動編譯模塊啟動自動化編譯功能; 版本自動升級模塊:當(dāng)自動編譯模塊完成編譯后,自動升級模塊通過FTP/TFTP協(xié)議將版本上傳到設(shè)備上去; 自動化測試模塊:根據(jù)更新的模塊,啟動測試?yán)龓炖锏南鄳?yīng)的測試?yán)?并將測試結(jié)果記錄在日志記錄模塊; 自動郵件發(fā)送模塊:將測試的結(jié)果發(fā)送給研發(fā)工程師,研發(fā)工程師根據(jù)測試結(jié)果來定位故障,以確定是否需要修改代碼。
8.如權(quán)利要求7所述的自動化編譯測試平臺,其特征在于,所述自動編譯模塊在編譯時,如果編譯失敗,直接將失敗的記錄傳給程序控制模塊,程序控制模塊發(fā)送電子郵件給相關(guān)的工程師;如果編譯成功則將編譯好的版本放在指定的文件夾里,編譯的版本根據(jù)設(shè)備名稱、線卡類型、版本類別生成不同的名字,同時將有更新的模塊傳給程序控制模塊,告訴程序控制模塊哪些模塊作了更新,以及版本生成的時間; 所述版本自動升級模塊清空設(shè)備配置,重啟設(shè)備,等設(shè)備運行后,查看設(shè)備的版本、編譯時間是否是跟自動編譯模塊編譯的時間一致,否則重新上傳,如果重傳三次失敗,記錄結(jié)果,并將結(jié)果傳遞給程序控制模塊。
9.如權(quán)利要求7所述的自動化編譯測試平臺,其特征在于,所述測試?yán)y試的設(shè)備配置文件和儀表的測試腳本;在不影響設(shè)備測試的情況下對設(shè)備同時進行簡單網(wǎng)絡(luò)管理協(xié)議SNMP的操作:具體為: 根據(jù)SNMP get命令獲取設(shè)備相應(yīng)節(jié)點的值Rl ; 然后進行非法字符集的設(shè)置,同時監(jiān)測非法字符對設(shè)備的影響; 然后再將值Rl通過SNMP set命令設(shè)置下去,返回的值為R2 ; 再通過SNMP get命令獲取該節(jié)點的值R3 ; 當(dāng)Rl,R2和R3的值一樣時則認(rèn)為此節(jié)點的SNMP協(xié)議測試通過。
10.如權(quán)利要求7所述的自動化編譯測試平臺,其特征在于,該平臺還包括CPU與內(nèi)存監(jiān)測模塊,通過簡單網(wǎng)絡(luò)管理協(xié)議接口并利用CPU與內(nèi)存監(jiān)測模塊獲取被測設(shè)備的CPU和內(nèi)存的使用情況,同時將CPU和內(nèi)存的使用情況和測試用例、SNMP測試節(jié)點對應(yīng),并生成圖表的形式保 存成日志 。
【文檔編號】H04L29/06GK103530225SQ201310408904
【公開日】2014年1月22日 申請日期:2013年9月10日 優(yōu)先權(quán)日:2013年9月10日
【發(fā)明者】孫國濤 申請人:武漢烽火網(wǎng)絡(luò)有限責(zé)任公司