專利名稱:對設(shè)備進(jìn)行基于管理信息庫的測試的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種對設(shè)備進(jìn)行基于MIB(管理信息庫)的測試的系統(tǒng)和方法。
背景技術(shù):
在通信網(wǎng)絡(luò)的管理過程中,SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)是被廣泛接受并投入使用的工業(yè)標(biāo)準(zhǔn)。該協(xié)議采用輪詢機制,便于網(wǎng)絡(luò)管理員檢索網(wǎng)絡(luò)中任何節(jié)點的信息,以進(jìn)行修改,尋找故障,完成故障診斷,容量規(guī)劃和報告生成。SNMP的模式分為NMS(網(wǎng)管站)和AGENT(代理)兩部分,AGENT部分是駐留在被管設(shè)備上的一個進(jìn)程,AGENT接收到NMS的請求報文后,進(jìn)行解碼、分析操作,從相關(guān)模塊中得到管理變量的值,然后打包、編碼送回NMS。NMS和Agent之間通過發(fā)送以下幾種報文來傳遞管理信息GET Request報文用于獲取指定實例的值;GETNEXT Request報文用于連續(xù)獲取管理變量的一組實例值;GET Response報文GET Request的響應(yīng)報文;GET Bulk Request報文用于獲取表的一部分;SET Request報文用于設(shè)置指定的管理變量;Trap報文用于在緊急情況下由被管設(shè)備向NMS主動發(fā)信息;Inform報文需要得到響應(yīng)的trap報文。
SNMP屬于應(yīng)用層協(xié)議,承載在UDP(用戶數(shù)據(jù)報協(xié)議)之上。圖1給出了SNMP協(xié)議框架圖。MIB(管理信息庫)是所有被管對象的抽象集合,由一系列的節(jié)點組成,每一個節(jié)點包含四個屬性對象類型、語法、存取和狀態(tài)。
對象標(biāo)識簡稱OID,OID由32位的整數(shù)串組成,用來確定被管對象;索引是表和表變量的檢索和組織方式,可以由一項或多項組成。系統(tǒng)通過OID和索引訪問被管對象。被管對象分為非葉節(jié)點、葉子節(jié)點、標(biāo)量。葉子節(jié)點在設(shè)備中存在多個值,稱它為表變量,MIB樹中的每個節(jié)點對應(yīng)一個整數(shù)。
目前,很多通訊設(shè)備都采用MIB方式進(jìn)行網(wǎng)管管理,因此要求設(shè)備實現(xiàn)MIB AGENT,針對AGENT測試可以驗證設(shè)備的基本功能、處理性能。針對AGENT的測試是利用計算機通過對MIB節(jié)點的SET(設(shè)置)、GET(獲取)、GETNEXT(連續(xù)獲取)以及WALK(遍歷)操作,并由MIB節(jié)點返回這些操作過程的結(jié)果來實現(xiàn),計算機中操作過程的結(jié)果是以錯誤碼或查詢結(jié)果的形式體現(xiàn),因此測試環(huán)境比較簡單,測試方法比較固定。
目前,MIB測試主要還是通過由MG-SOFT公司開發(fā)的軟件MibBrowser(MIB瀏覽器)或者以各廠家開發(fā)的網(wǎng)管進(jìn)行測試。所述的MibBrowser工具能夠編譯MIB文件,對MIB文件所定義的各個節(jié)點的取值和操作進(jìn)行設(shè)置,然后獲得從設(shè)備返回的操作結(jié)果,包括錯誤碼和節(jié)點值。如圖2所示,MibBrowser將選擇的一系列節(jié)點值進(jìn)行GET、GETNEXT、SET等操作,如果是SET操作,要設(shè)置節(jié)點的Syntax(值類型)和value(取值)。
上述通過MibBrowser方式進(jìn)行MIB測試的方法的缺點為這種項測試方法需要通過手工周而復(fù)始的實現(xiàn)大量節(jié)點操作,而且每一步操作只能夠完成相關(guān)的一個或者幾個功能點測試。MIB節(jié)點測試工作量較大,固網(wǎng)寬帶接入產(chǎn)品的MIB測試設(shè)計了超過20000個用例,幾個特性的用例都在8000個以上,進(jìn)行如此巨大的用例驗證需要很多人力的投入,加之MIB測試本身比較枯燥和單調(diào),而且測試時間又比較緊張,難以保障產(chǎn)品MIB測試的完備性。而且,手工測試步驟比較分散,體現(xiàn)不出完整的功能測試思想,不方便測試方法的分析和優(yōu)化。同時,還可能因為測試人員的不同,采用的測試步驟存在差異性,這種測試方法的差異性必然帶來結(jié)果的差異性,因而不方便進(jìn)行一致性測試和多次測試結(jié)果對照比較。
目前采用的另一種測試方法為通過網(wǎng)管方式進(jìn)行測試。通信設(shè)備的網(wǎng)管平臺是基于MIB實現(xiàn),因此可以通過網(wǎng)管方式進(jìn)行MIB操作測試,如圖3所示,在一個設(shè)備網(wǎng)管的基本配置界面中,可以針對每一塊單板點擊鼠標(biāo)右鍵將出現(xiàn)其操作菜單,包含了對單板操作的各種功能點如對單板CPU占用率的查詢、單板端口狀態(tài)以及端口環(huán)回等操作,分別完成所述各項操作即可以實現(xiàn)MIB測試。
上述通過網(wǎng)管方式進(jìn)行MIB測試的方法的缺點為網(wǎng)管是從功能一級對MIB節(jié)點進(jìn)行組合,所以無法針對節(jié)點全面測試到各種異常情況的發(fā)生,而且對于節(jié)點設(shè)置和查詢等性能測試也很難進(jìn)行。
網(wǎng)管測試比較依賴于具體網(wǎng)管的實現(xiàn),一旦運營商不采用專用的網(wǎng)管,而根據(jù)主機MIB獨立開發(fā)網(wǎng)管設(shè)備,則無法進(jìn)行MIB標(biāo)準(zhǔn)化測試,這對于組網(wǎng)來說必定存在較大的風(fēng)險。
發(fā)明內(nèi)容
鑒于上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明的目的是提供一種對設(shè)備進(jìn)行基于MIB的測試的系統(tǒng)和方法,從而可以利用TCL(工具命令語言)進(jìn)行編碼,自動地對被測設(shè)備進(jìn)行基于MIB的測試。
本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的一種對設(shè)備進(jìn)行基于管理信息庫的測試的系統(tǒng),包括網(wǎng)管主機和被測設(shè)備,其中,被測設(shè)備通過串口控制線纜、IP網(wǎng)絡(luò)和網(wǎng)管主機相連,和網(wǎng)管主機之間運行SNMP協(xié)議,接收網(wǎng)管主機發(fā)送過來的簡單網(wǎng)絡(luò)管理協(xié)議SNMP請求報文,根據(jù)SNMP請求報文中攜帶的測試信息,進(jìn)行相應(yīng)的操作后,向網(wǎng)管主機返回SNMP響應(yīng)報文;網(wǎng)管主機運行編寫的工具命令語言TCL腳本,獲取具體的測試用例數(shù)據(jù),選擇測試用的管理信息庫MIB操作,發(fā)送相應(yīng)的SNMP請求報文給被測設(shè)備,對被測設(shè)備返回的SNMP響應(yīng)報文中攜帶的操作結(jié)果進(jìn)行分析,和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。
所述網(wǎng)管主機包括數(shù)據(jù)配置文件模塊用于存儲和管理MIB用例數(shù)據(jù),根據(jù)接收到的SNMP報文發(fā)送模塊發(fā)送的請求,返回相應(yīng)的MIB用例數(shù)據(jù)給SNMP報文發(fā)送模塊;SNMP報文發(fā)送模塊用于運行編寫的TCL腳本,從數(shù)據(jù)配置文件模塊中獲取測試用的MIB用例數(shù)據(jù),選擇測試用的MIB操作,對相應(yīng)的MIB節(jié)點進(jìn)行設(shè)值,發(fā)送相應(yīng)的SNMP請求報文給被測設(shè)備;測試結(jié)果判定模塊用于接收被測設(shè)備返回的SNMP響應(yīng)報文,根據(jù)設(shè)定的判定流程,對該SNMP響應(yīng)報文中攜帶的操作結(jié)果進(jìn)行分析,和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。
所述數(shù)據(jù)配置文件模塊包括全局?jǐn)?shù)據(jù)配置文件模塊和特性數(shù)據(jù)配置文件模塊,特性數(shù)據(jù)配置文件模塊用于存儲具體的MIB用例數(shù)據(jù),全局?jǐn)?shù)據(jù)配置文件模塊用于存儲特性數(shù)據(jù)配置文件存放的位置。
一種對設(shè)備進(jìn)行基于管理信息庫的測試的方法,包括步驟A、運行編寫的TCL腳本,獲取測試用的MIB用例數(shù)據(jù),選擇測試用的MIB操作,發(fā)送相應(yīng)的SNMP請求報文給被測設(shè)備;B、根據(jù)設(shè)定的MIB操作的判定流程,對所述被測設(shè)備返回的SNMP響應(yīng)報文中攜帶的操作結(jié)果進(jìn)行分析,和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。
所述的步驟A具體包括A1、在網(wǎng)管主機中存儲全局?jǐn)?shù)據(jù)配置文件和特性數(shù)據(jù)配置文件,特性數(shù)據(jù)配置文件中存儲了具體的MIB用例數(shù)據(jù),全局?jǐn)?shù)據(jù)配置文件中存儲了特性數(shù)據(jù)配置文件存放的位置;A2、運行編寫的TCL腳本,根據(jù)具體測試需求,通過全局?jǐn)?shù)據(jù)配置文件查找到相應(yīng)的特性數(shù)據(jù)配置文件,從該特性數(shù)據(jù)配置文件中獲得測試用的MIB用例數(shù)據(jù),選擇測試用的MIB操作,對相應(yīng)的MIB節(jié)點進(jìn)行設(shè)值,發(fā)送相應(yīng)的SNMP請求報文給被測設(shè)備。
所述的步驟A1所述的特性數(shù)據(jù)配置文件中存儲的MIB用例數(shù)據(jù)包括設(shè)置SET操作、獲取GET操作、連續(xù)獲取GETNEXT操作和遍歷WALK操作的待配置的節(jié)點名、節(jié)點類型、節(jié)點預(yù)期取值和節(jié)點索引數(shù)據(jù)。
所述的節(jié)點名、節(jié)點類型、節(jié)點預(yù)期取值和節(jié)點索引數(shù)據(jù)可以通過過程引用的方式來設(shè)置,該過程引用是TCL腳本編輯的過程或者函數(shù),通過調(diào)用一定的變量經(jīng)過計算以后得出具體的值。
所述的步驟B具體包括被測設(shè)備收到網(wǎng)管主機發(fā)送的SNMP報文后,進(jìn)行相應(yīng)的MIB操作后,發(fā)送響應(yīng)SNMP報文給網(wǎng)管主機,網(wǎng)管主機捕獲該響應(yīng)SNMP報文,從中分離出操作結(jié)果,并根據(jù)預(yù)先設(shè)定的判斷流程,將操作結(jié)果和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。
所述的步驟B具體包括如果所述測試用的SET操作的預(yù)期錯誤碼為-1,則該SET操作的測試結(jié)果始終正確;否則,如果測試設(shè)備返回的SET操作結(jié)果和預(yù)期操作結(jié)果一致,則確定本次SET操作的測試結(jié)果為正確;否則,確定本次SET操作的測試結(jié)果為不正確;
和/或,當(dāng)所述測試用的GET或GETNEXT操作的預(yù)期錯誤碼為-1時,如果測試設(shè)備返回的GET或GETNEXT操作結(jié)果和預(yù)期操作結(jié)果一致,則確定本次GET或GETNEXT操作的測試結(jié)果為正確;否則,確定本次GET或GETNEXT操作的測試結(jié)果為不正確;當(dāng)所述測試用的GET或GETNEXT操作的預(yù)期錯誤碼不為-1時,如果測試設(shè)備返回的GET或GETNEXT操作結(jié)果和預(yù)期操作結(jié)果一致,并且返回的GET和GETNEXT操作結(jié)果一致,或者不考慮返回值,則確定本次GET或GETNEXT操作的測試結(jié)果為正確;否則,確定本次GET或GETNEXT操作的測試結(jié)果為不正確;和/或,根據(jù)所述測試用的WALK操作返回的索引,逐個對被測設(shè)備進(jìn)行SET操作,如果所述WALK操作返回的操作結(jié)果和該SET操作返回的操作結(jié)果一致,則確定本次WALK操作的測試結(jié)果為正確;否則,確定本次WALK操作的測試結(jié)果為不正確。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明通過利用TCL進(jìn)行測試邏輯、數(shù)據(jù)配置編碼,和現(xiàn)有技術(shù)相比,具有如下的優(yōu)點1、實現(xiàn)了自動測試。利用本發(fā)明所述方法,可以自動地對設(shè)備進(jìn)行基于MIB的測試,測試過程無需人工干預(yù),只分析最后的測試結(jié)果即可。
2、提高了測試效率。原來設(shè)備產(chǎn)品一個版本的MIB手工測試一般需要投入7-8個人力,安排2-3天才能夠完成;如今我們已經(jīng)實現(xiàn)了接近20000個測試用例,基本包括了設(shè)備產(chǎn)品版本的所有特性,對設(shè)備產(chǎn)品一個版本的測試只需要24小時左右。
3、提高了MIB測試的全面性和一致性,由于測試執(zhí)行的簡單化,測試人員可以抽出大量時間進(jìn)行用例分析和設(shè)計,保證了用例設(shè)計的更加全面;同時測試腳本和用例在不同的版本中測試不會象手工測試那樣有差別,因此測試結(jié)果還能夠?qū)η昂蟀姹举|(zhì)量進(jìn)行對比。
4、規(guī)范了MIB測試過程,測試結(jié)果一致性較強,方便前后版本產(chǎn)品MIB的度量和對比,能夠根據(jù)質(zhì)量分析的結(jié)果給出更好的改進(jìn)方案。
圖1為SNMP協(xié)議框架示意圖;圖2為基于MibBrowser工具進(jìn)行MIB測試的示意圖;圖3為基于網(wǎng)管方式的基本配置界面進(jìn)行MIB測試的示意圖;圖4為本發(fā)明所述系統(tǒng)的具體實現(xiàn)方式的結(jié)構(gòu)示意圖;圖5為本發(fā)明所述方法的具體實現(xiàn)方式的流程圖;圖6為本發(fā)明提供的SET操作的判斷流程的實施例示意圖;圖7為本發(fā)明提供的GET和GETNEXT操作的判斷流程的實施例示意圖;圖8為本發(fā)明提供的WALK操作的判斷流程的實施例示意圖。
具體實施例方式
本發(fā)明提供了一種對設(shè)備進(jìn)行基于MIB的測試的系統(tǒng)和方法,本發(fā)明的核心為利用TCL進(jìn)行測試邏輯、數(shù)據(jù)配置編碼,自動地對被測設(shè)備進(jìn)行測試。
下面結(jié)合附圖來詳細(xì)描述本發(fā)明,本發(fā)明所述系統(tǒng)的具體實現(xiàn)方式的結(jié)構(gòu)如圖4所示,包括如下模塊被測設(shè)備通過串口控制線纜、IP網(wǎng)絡(luò)和網(wǎng)管主機相連,和網(wǎng)管主機之間運行SNMP協(xié)議,接收網(wǎng)管主機發(fā)送過來的SNMP請求報文,根據(jù)SNMP請求報文中攜帶的測試信息,進(jìn)行相應(yīng)的操作后,向網(wǎng)管主機返回SNMP響應(yīng)報文。
網(wǎng)管主機通過串口控制線纜、IP網(wǎng)絡(luò)和被測設(shè)備相連,和被測設(shè)備之間運行SNMP協(xié)議,根據(jù)具體的測試需求編寫TCL腳本,通過運行該TCL腳本,獲取具體的測試用例數(shù)據(jù),選擇測試用的MIB操作,對MIB節(jié)點設(shè)置相應(yīng)的取值,發(fā)送相應(yīng)的SNMP請求報文給被測設(shè)備,對被測設(shè)備返回的SNMP響應(yīng)報文中攜帶的操作結(jié)果進(jìn)行分析,和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。網(wǎng)管主機包括數(shù)據(jù)配置文件模塊、SNMP報文發(fā)送模塊和測試結(jié)果判定模塊。
數(shù)據(jù)配置文件模塊用于存儲和管理MIB用例數(shù)據(jù),根據(jù)接收到的SNMP報文發(fā)送模塊發(fā)送的請求,返回相應(yīng)的MIB用例數(shù)據(jù)給SNMP報文發(fā)送模塊。數(shù)據(jù)配置文件模塊包括全局?jǐn)?shù)據(jù)配置文件模塊和特性數(shù)據(jù)配置文件模塊,特性數(shù)據(jù)配置文件模塊用于存儲具體的MIB用例數(shù)據(jù),全局?jǐn)?shù)據(jù)配置文件模塊用于存儲特性數(shù)據(jù)配置文件存放的位置。
SNMP報文發(fā)送模塊用于運行編寫的TCL腳本,從數(shù)據(jù)配置文件模塊中獲取MIB用例數(shù)據(jù),選擇測試用的GET、SET、GET NEXT、WALK等MIB操作,對相應(yīng)的MIB節(jié)點進(jìn)行設(shè)值,發(fā)送相應(yīng)的SNMP請求報文給被測設(shè)備。
測試結(jié)果判定模塊用于接收被測設(shè)備返回的SNMP響應(yīng)報文,根據(jù)設(shè)定的判定流程,對該SNMP響應(yīng)報文中攜帶的操作結(jié)果進(jìn)行分析,和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。
上述對設(shè)備進(jìn)行基于MIB的測試的系統(tǒng)最大特點就是組網(wǎng)固定、測試方法固定、邏輯數(shù)量單一、測試用例數(shù)據(jù)量巨大,非常適合進(jìn)行自動化測試。在該系統(tǒng)中,MIB節(jié)點或者表常用操作不過是GET、SET、GET NEXT、WALK,每一個結(jié)點或者功能性的結(jié)點組有多組值的組合存在,因此可以大量時間將花在數(shù)據(jù)設(shè)計和預(yù)期結(jié)果的判斷上。
還需要說明的是,上述實施例中的控制信令及數(shù)據(jù)流都可以采用SIP協(xié)議,為了支持上述實施例所實現(xiàn)的功能,在SIP消息里還需要擴展字段,具體描述如表2
表2圖7為本發(fā)明定時信息修改方法的第三優(yōu)選實施例的流程圖。在步驟S701中,信息終端向服務(wù)器發(fā)送定時信息,信息終端編輯定時信息,編輯的范圍可以包括信息的內(nèi)容及定時時間,并將定時信息發(fā)送定數(shù)據(jù)文件的具體位置的,如FILEClk/Agent_Clk_002_001.cfg,表明在當(dāng)前目錄的Clk子目錄下面存在一個數(shù)據(jù)文件V2R5_Agent_Clk_002_001.cfg,這里的FILE是關(guān)鍵字,必不可少。存放在此的文件都會被邏輯作為測試用例進(jìn)行調(diào)用。在實際應(yīng)用中,可以用“#”在數(shù)據(jù)文件的行首進(jìn)行注釋,表示取消該數(shù)據(jù)文件被邏輯調(diào)用。
由于節(jié)點和取值不止一個,如果所有節(jié)點在上述具體用例數(shù)據(jù)表項中一行排開,將會造成表項很長,不易觀看,因此可以在用例文件中定義變量,比如我們可以在V2R5_Agent_Clk_001_001.cfg文件中定義這樣一個變量[Clk]SetOids=hwClkInPostion;hwClkInWorkMode;hwClkInRowStatus,于是,我們在setoid項中就可以用變量$aClk(SetOids)代替這三個節(jié)點,顯然這樣更加容易閱讀,其它如結(jié)點類型等表項也可以這樣定義。
關(guān)于預(yù)期值和index的設(shè)計也可以進(jìn)行改進(jìn),我們可以用一個函數(shù)代替具體的值,這個函數(shù)的返回值即是預(yù)期值或者index,在V2R5_Agent_Clk_001_001.cfg文件中,時鐘設(shè)置index取值如下所示MA51AgentClkPosGet$∷gaMA51Env(intFrameNo)$∷gaMA51Env(intCescSlot)$∷gaMA51Env(intCescSdtCcsPort)這樣做可以方便變量引用,因為單板無論插在什么槽位,只要改一下變量的值就可以了,對于具體用例無需更改,提高了用例數(shù)據(jù)的適應(yīng)能力。
步驟5-2、具體測試開始時,通過運行TCL腳本,從數(shù)據(jù)配置文件中獲得測試數(shù)據(jù),選擇測試用的MIB操作,發(fā)送SNMP報文到被測設(shè)備。
在一個具體測試開始時,需要從上述系統(tǒng)數(shù)據(jù)配置文件中讀入測試數(shù)據(jù),即根據(jù)具體測試情況,通過全局?jǐn)?shù)據(jù)配置文件查找到相應(yīng)的特性數(shù)據(jù)配置文件,從該特性數(shù)據(jù)配置文件中獲得具體的測試用例數(shù)據(jù)。
根據(jù)獲得的測試用例數(shù)據(jù)選擇測試用的SET、GET、GETNEXT或者WALK操作。將所述測試用例數(shù)據(jù)和選擇的MIB操作和MIB節(jié)點進(jìn)行綁定,即對MIB節(jié)點設(shè)置相應(yīng)的取值,然后,調(diào)用對應(yīng)的操作函數(shù),驅(qū)動相應(yīng)的SNMP報文發(fā)送到被測設(shè)備。該操作函數(shù)主要有SNMP_SET、SNMP_GET、SNMP_GETNEXT以及SNMP_GET_OIDINFO等。
上述從數(shù)據(jù)配置文件中獲得測試數(shù)據(jù),發(fā)送SNMP報文到被測設(shè)備的過程,可以先根據(jù)具體的測試邏輯,編寫相應(yīng)的TCL腳本,然后,在具體測試平臺自動運行該TCL腳本來完成。
步驟5-3、從被測設(shè)備返回的響應(yīng)報文中分離出操作結(jié)果,將操作結(jié)果與預(yù)期結(jié)果進(jìn)行比較,獲得測試結(jié)果。
被測設(shè)備的AGENT模塊收到網(wǎng)管主機發(fā)送的SNMP報文后,進(jìn)行相應(yīng)的MIB操作后,發(fā)送響應(yīng)SNMP報文給網(wǎng)管主機。網(wǎng)管主機捕獲該響應(yīng)SNMP報文,從中分離出操作結(jié)果,并根據(jù)預(yù)先設(shè)定的判斷流程,分析操作結(jié)果,將操作結(jié)果和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。
上述本發(fā)明所述方法的處理流程可以通過在測試前編寫一個完整的TCL腳本,在具體測試平臺自動運行該完整的TCL腳本來完成。
一個具體的測試用例可以同時包括一種或多種MIB操作,即是SET、GET、GETNEXT、WALK操作中的一種或多種操作,根據(jù)上述編寫的TCL腳本,可以選取待測試的節(jié)點、預(yù)期取值、預(yù)期錯誤碼以及索引等信息。
本發(fā)明提供了一個針對上述SET操作的TCL腳本的具體實施例,如下所示。
#SET測試#判斷是否進(jìn)行SET操作if{0?。絒expr $iTestCode & Oxf]}{#調(diào)用SET函數(shù),發(fā)送SNMP SET報文給設(shè)備set ret[MA51CommonAgentSetTest $ISetOid $ISetSyn $ISetValue$SetIndex $iSetErrcode $fErrCodeFile]
#如果SET操作不成功,則返回測試失敗if{$ret?。?}{set result″NG″}}本發(fā)明還提供了上述SET操作的判斷流程的實施例,如圖6所示。具體處理過程為如果測試用的數(shù)據(jù)配置文件中設(shè)定的SET操作的預(yù)期錯誤碼為-1,則本次SET操作的測試結(jié)果始終正確。
如果測試用的數(shù)據(jù)配置文件中設(shè)定的SET操作的預(yù)期錯誤碼不為-1,則判斷獲得的測試設(shè)備返回的操作結(jié)果和數(shù)據(jù)配置文件中設(shè)定的SET操作的預(yù)期值是否一致,如果是,則確定本次SET操作的測試結(jié)果為正確;否則,確定本次SET操作的測試結(jié)果為不正確。
本發(fā)明提供的上述GET和GETNEXT操作的判斷流程的實施例如圖7所示。具體處理過程為當(dāng)所述測試用的GET或GETNEXT操作的預(yù)期錯誤碼為-1時,如果測試設(shè)備返回的GET或GETNEXT操作結(jié)果和預(yù)期操作結(jié)果一致,則確定本次GET或GETNEXT操作的測試結(jié)果為正確;否則,確定本次GET或GETNEXT操作的測試結(jié)果為不正確;當(dāng)所述測試用的GET或GETNEXT操作的預(yù)期錯誤碼不為-1時,如果測試設(shè)備返回的GET或GETNEXT操作結(jié)果和預(yù)期操作結(jié)果一致,并且返回的GET和GETNEXT操作結(jié)果一致,或者不考慮返回值,則確定本次GET或GETNEXT操作的測試結(jié)果為正確;否則,確定本次GET或GETNEXT操作的測試結(jié)果為不正確。
本發(fā)明提供的上述WALK操作的判斷流程的實施例如圖8所示。具體處理過程為根據(jù)所述測試用的WALK操作返回的索引,逐個對被測設(shè)備進(jìn)行SET操作,如果所述WALK操作返回的操作結(jié)果和該SET操作返回的操作結(jié)果一致,則確定本次WALK操作的測試結(jié)果為正確;否則,確定本次WALK操作的測試結(jié)果為不正確。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求書的保護范圍為準(zhǔn)。
權(quán)利要求
1.一種對設(shè)備進(jìn)行基于管理信息庫的測試的系統(tǒng),其特征在于,包括網(wǎng)管主機和被測設(shè)備,其中,被測設(shè)備通過串口控制線纜、IP網(wǎng)絡(luò)和網(wǎng)管主機相連,和網(wǎng)管主機之間運行SNMP協(xié)議,接收網(wǎng)管主機發(fā)送過來的簡單網(wǎng)絡(luò)管理協(xié)議SNMP請求報文,根據(jù)SNMP請求報文中攜帶的測試信息,進(jìn)行相應(yīng)的操作后,向網(wǎng)管主機返回SNMP響應(yīng)報文;網(wǎng)管主機運行編寫的工具命令語言TCL腳本,獲取具體的測試用例數(shù)據(jù),選擇測試用的管理信息庫MIB操作,發(fā)送相應(yīng)的SNMP請求報文給被測設(shè)備,對被測設(shè)備返回的SNMP響應(yīng)報文中攜帶的操作結(jié)果進(jìn)行分析,和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述網(wǎng)管主機包括數(shù)據(jù)配置文件模塊用于存儲和管理MIB用例數(shù)據(jù),根據(jù)接收到的SNMP報文發(fā)送模塊發(fā)送的請求,返回相應(yīng)的MIB用例數(shù)據(jù)給SNMP報文發(fā)送模塊;SNMP報文發(fā)送模塊用于運行編寫的TCL腳本,從數(shù)據(jù)配置文件模塊中獲取測試用的MIB用例數(shù)據(jù),選擇測試用的MIB操作,對相應(yīng)的MIB節(jié)點進(jìn)行設(shè)值,發(fā)送相應(yīng)的SNMP請求報文給被測設(shè)備;測試結(jié)果判定模塊用于接收被測設(shè)備返回的SNMP響應(yīng)報文,根據(jù)設(shè)定的判定流程,對該SNMP響應(yīng)報文中攜帶的操作結(jié)果進(jìn)行分析,和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述數(shù)據(jù)配置文件模塊包括全局?jǐn)?shù)據(jù)配置文件模塊和特性數(shù)據(jù)配置文件模塊,特性數(shù)據(jù)配置文件模塊用于存儲具體的MIB用例數(shù)據(jù),全局?jǐn)?shù)據(jù)配置文件模塊用于存儲特性數(shù)據(jù)配置文件存放的位置。
4.一種對設(shè)備進(jìn)行基于管理信息庫的測試的方法,其特征在于,包括步驟A、運行編寫的TCL腳本,獲取測試用的MIB用例數(shù)據(jù),選擇測試用的MIB操作,發(fā)送相應(yīng)的SNMP請求報文給被測設(shè)備;B、根據(jù)設(shè)定的MIB操作的判定流程,對所述被測設(shè)備返回的SNMP響應(yīng)報文中攜帶的操作結(jié)果進(jìn)行分析,和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述的步驟A具體包括A1、在網(wǎng)管主機中存儲全局?jǐn)?shù)據(jù)配置文件和特性數(shù)據(jù)配置文件,特性數(shù)據(jù)配置文件中存儲了具體的MIB用例數(shù)據(jù),全局?jǐn)?shù)據(jù)配置文件中存儲了特性數(shù)據(jù)配置文件存放的位置;A2、運行編寫的TCL腳本,根據(jù)具體測試需求,通過全局?jǐn)?shù)據(jù)配置文件查找到相應(yīng)的特性數(shù)據(jù)配置文件,從該特性數(shù)據(jù)配置文件中獲得測試用的MIB用例數(shù)據(jù),選擇測試用的MIB操作,對相應(yīng)的MIB節(jié)點進(jìn)行設(shè)值,發(fā)送相應(yīng)的SNMP請求報文給被測設(shè)備。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述的步驟A1所述的特性數(shù)據(jù)配置文件中存儲的MIB用例數(shù)據(jù)包括設(shè)置SET操作、獲取GET操作、連續(xù)獲取GETNEXT操作和遍歷WALK操作的待配置的節(jié)點名、節(jié)點類型、節(jié)點預(yù)期取值和節(jié)點索引數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述的節(jié)點名、節(jié)點類型、節(jié)點預(yù)期取值和節(jié)點索引數(shù)據(jù)可以通過過程引用的方式來設(shè)置,該過程引用是TCL腳本編輯的過程或者函數(shù),通過調(diào)用一定的變量經(jīng)過計算以后得出具體的值。
8.根據(jù)權(quán)利要求4、5、6或7所述的方法,其特征在于,所述的步驟B具體包括被測設(shè)備收到網(wǎng)管主機發(fā)送的SNMP報文后,進(jìn)行相應(yīng)的MIB操作后,發(fā)送響應(yīng)SNMP報文給網(wǎng)管主機,網(wǎng)管主機捕獲該響應(yīng)SNMP報文,從中分離出操作結(jié)果,并根據(jù)預(yù)先設(shè)定的判斷流程,將操作結(jié)果和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述的步驟B具體包括如果所述測試用的SET操作的預(yù)期錯誤碼為-1,則該SET操作的測試結(jié)果始終正確;否則,如果測試設(shè)備返回的SET操作結(jié)果和預(yù)期操作結(jié)果一致,則確定本次SET操作的測試結(jié)果為正確;否則,確定本次SET操作的測試結(jié)果為不正確;和/或,當(dāng)所述測試用的GET或GETNEXT操作的預(yù)期錯誤碼為-1時,如果測試設(shè)備返回的GET或GETNEXT操作結(jié)果和預(yù)期操作結(jié)果一致,則確定本次GET或GETNEXT操作的測試結(jié)果為正確;否則,確定本次GET或GETNEXT操作的測試結(jié)果為不正確;當(dāng)所述測試用的GET或GETNEXT操作的預(yù)期錯誤碼不為-1時,如果測試設(shè)備返回的GET或GETNEXT操作結(jié)果和預(yù)期操作結(jié)果一致,并且返回的GET和GETNEXT操作結(jié)果一致,或者不考慮返回值,則確定本次GET或GETNEXT操作的測試結(jié)果為正確;否則,確定本次GET或GETNEXT操作的測試結(jié)果為不正確;和/或,根據(jù)所述測試用的WALK操作返回的索引,逐個對被測設(shè)備進(jìn)行SET操作,如果所述WALK操作返回的操作結(jié)果和該SET操作返回的操作結(jié)果一致,則確定本次WALK操作的測試結(jié)果為正確;否則,確定本次WALK操作的測試結(jié)果為不正確。
全文摘要
本發(fā)明提供了一種對設(shè)備進(jìn)行基于MIB(管理信息庫)的測試的系統(tǒng)和方法,該系統(tǒng)主要包括被測設(shè)備和網(wǎng)管主機。該方法主要包括運行編寫的TCL(工具命令語言)腳本,獲取測試用的MIB用例數(shù)據(jù),選擇測試用的MIB操作,發(fā)送相應(yīng)的SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)請求報文給被測設(shè)備;根據(jù)設(shè)定的MIB操作的判定流程,對所述被測設(shè)備返回的SNMP響應(yīng)報文中攜帶的操作結(jié)果進(jìn)行分析,和預(yù)期操作結(jié)果進(jìn)行比較,獲得被測設(shè)備的測試結(jié)果。利用本發(fā)明所述方法,可以利用TCL進(jìn)行編碼,自動地對被測設(shè)備進(jìn)行基于MIB的測試。
文檔編號H04L29/06GK1863102SQ20051013550
公開日2006年11月15日 申請日期2005年12月28日 優(yōu)先權(quán)日2005年12月28日
發(fā)明者鐘宇, 解德強 申請人:華為技術(shù)有限公司