專利名稱:網(wǎng)絡(luò)測試的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)測試的方法及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)的規(guī)模及技術(shù)復(fù)雜性越來越大,各種業(yè)務(wù)數(shù)據(jù)的數(shù)量急劇增加,網(wǎng)絡(luò)運(yùn)行、管理和維護(hù)成本也越來越高,而網(wǎng)絡(luò)測試伴隨網(wǎng)絡(luò)的建設(shè)、運(yùn)行、管理及維護(hù)一體的,提高網(wǎng)絡(luò)測試效率是減少成本的途徑之一。目前網(wǎng)絡(luò)自動化測試普遍采用腳本技術(shù),進(jìn)一步的發(fā)展是將面向?qū)ο蠹夹g(shù)引入網(wǎng)絡(luò)測試中。通過面向?qū)ο蟮哪_本技術(shù)對測試過程、設(shè)備、測試儀器等進(jìn)行抽象和封裝,極大地提高了腳本的共享和重復(fù)使用率,從而提高了測試效率。
目前的腳本體系是運(yùn)用解釋語言,如工具命令語言(Tool CommandLanguage,TCL),進(jìn)行測試腳本的編寫,實(shí)現(xiàn)自動測試的目的。而通過面向?qū)ο蟮慕忉屨Z言,如面向?qū)ο蟮墓ぞ呙钫Z言(Incr Tool Command Language,ITCL),對設(shè)備類、測試儀器類進(jìn)行封裝,并封裝個測試動作,把測試腳本合成一條命令串行執(zhí)行,對測試結(jié)果進(jìn)行自動對比,提高了腳本的編寫效率,具有一致性、可重復(fù)性、高移植性的特點(diǎn)。
在長期的實(shí)踐過程中,發(fā)現(xiàn)當(dāng)測試的網(wǎng)絡(luò)很復(fù)雜,被測設(shè)備很多的情況下,需要和每一個設(shè)備進(jìn)行信息交互,如圖1所示,在現(xiàn)有的測試腳本運(yùn)行在單解釋器條件下,是串行執(zhí)行的,即單解釋器運(yùn)行腳本對第一被測設(shè)備1進(jìn)行測試后,單解釋器再運(yùn)行腳本對第二被測設(shè)備進(jìn)行測試,運(yùn)行一個被測設(shè)備的時間是T,如果有N個被測設(shè)備,則需要運(yùn)行T×N的時間,從而導(dǎo)致腳本執(zhí)行時間長,影響測試效率。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種網(wǎng)絡(luò)測試的方法及系統(tǒng),可以減小腳本執(zhí)行時間,提高測試效率。
為了解決上述技術(shù)問題,本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試的方法,至少包括運(yùn)行測試腳本,針對每一個被測設(shè)備生成相應(yīng)的子解釋器進(jìn)程;并行運(yùn)行子解釋器進(jìn)程,測試所述被測設(shè)備。
相應(yīng)地,本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試系統(tǒng),該系統(tǒng)至少包括主解釋器、至少一個被測設(shè)備、與每一個所述被測設(shè)備對應(yīng)的子解釋器,其中,主解釋器,用于運(yùn)行測試腳本,針對每一個所述被測設(shè)備生成相應(yīng)的子解釋器進(jìn)程;子解釋器,用于運(yùn)行所述子解釋器進(jìn)程,測試該子解釋器對應(yīng)的被測設(shè)備。
綜上所述,本發(fā)明實(shí)施例的一種網(wǎng)路測試方法及系統(tǒng)是通過針對每一個被測設(shè)備生成一個相應(yīng)的子解釋器,多被測設(shè)備就有多個子解釋器,所有子解釋器并行運(yùn)行腳本來對所有被測設(shè)備同時進(jìn)行測試,減少了腳本運(yùn)行時間的同時,也提高了測試效率。
圖1是現(xiàn)有技術(shù)中在單解釋器條件下的測試框架的結(jié)構(gòu)示意圖;圖2是本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試系統(tǒng)的結(jié)構(gòu)示意圖;圖3是本發(fā)明實(shí)施例的一種主解釋器的結(jié)構(gòu)示意圖;圖4是本發(fā)明實(shí)施例的一種子解釋器的結(jié)構(gòu)示意圖;圖5是本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試的方法的流程圖;圖6是本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試的方法中利用并行執(zhí)行命令并行執(zhí)行腳本的步驟的流程圖;圖7是本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試的方法中利用共享命令共享變量的步驟的流程圖;圖8是本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試的方法中利用同步命令使各進(jìn)程同步的步驟的流程圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)測試的方法及系統(tǒng),是通過根據(jù)每一個被測設(shè)備生成相應(yīng)的子解釋器,當(dāng)測試時,并行運(yùn)行所有的子解釋器來同時對所有被測設(shè)備進(jìn)行測試。
下面將結(jié)合附圖具體闡述本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試的方法及系統(tǒng)的技術(shù)方案。
參考圖2,是本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試系統(tǒng)的結(jié)構(gòu)示意圖;根據(jù)該圖,一種網(wǎng)絡(luò)自動測試系統(tǒng)包括腳本存儲單元21、主解釋器22、N個被測設(shè)備以及相應(yīng)的N個子解釋器,其中,與第一被測設(shè)備25耦接的是第一子解釋器23、與第二被測設(shè)備26耦接的是第二子解釋器2、與第N被測設(shè)備耦接的是第N子解釋器。
其中,腳本存儲單元21,用于存儲用來網(wǎng)絡(luò)自動測試的測試腳本;主解釋器22,與腳本存儲單元21耦接,用于運(yùn)行該腳本存儲單元中的測試腳本,針對每一個所述被測設(shè)備生成相應(yīng)的子解釋器進(jìn)程;當(dāng)進(jìn)行網(wǎng)絡(luò)測試時,系統(tǒng)同時啟動N個子解釋器并行運(yùn)行子解釋器進(jìn)程,并行對N個被測設(shè)備進(jìn)行測試,即第一子解釋器23對第一被測設(shè)備25進(jìn)行測試、第二子解釋器24對第二被測設(shè)備26進(jìn)行測試、第N子解釋器對第N被測設(shè)備進(jìn)行測試。
在具體實(shí)現(xiàn)時,如圖3所示,所述圖2中的主解釋器22至少包括初始化單元31,用于針對每一個被測設(shè)備生成相應(yīng)的被測設(shè)備虛擬單元;子解釋器生成單元32,用于根據(jù)初始化單元31生成的每一個被測設(shè)備虛擬單元生成每個被測設(shè)備對應(yīng)的子解釋器。
上下文復(fù)制單元33,與子解釋器生成單元32耦接,用于將主解釋器的上下文和所述每一個被測設(shè)備對應(yīng)的測試腳本分別復(fù)制到該被測設(shè)備對應(yīng)的子解釋器中。
在具體實(shí)現(xiàn)時,如圖4所示,所述圖2中的子解釋器至少包括上下文接收單元41,用于接收所述主解釋器中的上下文及與該子解釋器對應(yīng)的被測設(shè)備相對應(yīng)的測試腳本;腳本運(yùn)行單元42,用于運(yùn)行所述測試腳本;運(yùn)行結(jié)果反饋單元43,與腳本運(yùn)行單元42耦接,用于將所述子解釋器的運(yùn)行結(jié)果回填到所述主解釋器中。
以上詳細(xì)闡述了本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試系統(tǒng)的技術(shù)方案,下面將結(jié)合圖5、圖6、圖7及圖8詳細(xì)闡述本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試的方法的技術(shù)方案。
本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試的方法,至少包括運(yùn)行測試腳本,針對每一個被測設(shè)備生成相應(yīng)的子解釋器進(jìn)程;并行運(yùn)行子解釋器進(jìn)程,測試所述被測設(shè)備。
在具體實(shí)現(xiàn)時,參考圖5,是本發(fā)明實(shí)施例的一種網(wǎng)絡(luò)測試的方法的流程圖;可以利用面向?qū)ο蠼忉屨Z言(ITCL)進(jìn)行測試腳本的編寫。由該圖可知,一種網(wǎng)絡(luò)測試的方法包括步驟S501,主解釋器運(yùn)行測試腳本初始化和配置被測設(shè)備,并針對每一個被測設(shè)備生成其相應(yīng)的被測設(shè)備虛擬單元,如對象;步驟S502,主解釋器根據(jù)每一個所述被測設(shè)備虛擬單元生成相應(yīng)的子解釋器(如,TCL解釋器);步驟S503,主解釋器將其上下文和每一個被測設(shè)備對應(yīng)的測試腳本分別復(fù)制到該被測設(shè)備對應(yīng)的子解釋器中以生成相應(yīng)的子解釋器進(jìn)程;步驟S504,并行運(yùn)行所述子解釋器進(jìn)程,測試所述被測設(shè)備;步驟S505,當(dāng)所有被測設(shè)備都測試完畢后,系統(tǒng)將并行清除被測設(shè)備的配置。
其中,在步驟S504中,所述并行運(yùn)行子解釋器進(jìn)程,測試所述被測設(shè)備具體為,可以通過并行執(zhí)行命令運(yùn)行子解釋器進(jìn)程,并行執(zhí)行每一個被測設(shè)備對應(yīng)的測試腳本具體包括將所述主解釋器中與所述子解釋器對應(yīng)的全局變量分別復(fù)制到各子解釋器中,所述各子解釋器進(jìn)程中運(yùn)行所述測試腳本;將運(yùn)行結(jié)果回填到主解釋器進(jìn)程中。
在具體實(shí)現(xiàn)時,所述并行執(zhí)行命令可以為PAL命令,例對象1 PAL{測試腳本1}對象2 PAL{測試腳本2}對象n PAL{測試腳本n}
如圖6所示,系統(tǒng)執(zhí)行上述PAL命令時,將并行執(zhí)行包括對象1、對象2的n個對象對應(yīng)的腳本,其中,針對對象1的步驟具體可以包括步驟S601,調(diào)用PAL命令的對象1獲得對象1所屬設(shè)備類別;步驟S602,在生成的對象1對應(yīng)的第一子解釋器中,根據(jù)對象1所屬的設(shè)備類生成同樣名稱的對象,亦稱之為對象1;步驟S603,將主解釋器中對象1的全局變量復(fù)制到其對應(yīng)的第一子解釋器中;步驟S604,獲取主解釋器的日志文件名稱及其路徑,使子解釋器和主解釋器的日志信息存放在同一個日志中;步驟S605,在第一子解釋器中運(yùn)行PAL命令包含的對象1對應(yīng)的測試腳本1;步驟S606,將運(yùn)行結(jié)果回填到主解釋器中。
根據(jù)該圖可知,系統(tǒng)在執(zhí)行對象1的同時,對象2以及對象n也在運(yùn)行,并且針對其它對象的步驟和對象1的步驟完全相同,僅僅是名稱變了,比如將對象1改為對象2,相應(yīng)的第一子解釋器改為第二子解釋器、測試腳本1改為測試腳本2。
該實(shí)施例中的并行執(zhí)行命令,我們僅僅以PAL命名,對于本領(lǐng)域普通技術(shù)人員,其命名及具體語法結(jié)構(gòu)可以很容易聯(lián)想到還有其他替代方案,并不限于此。
可選地,在具體實(shí)施時,本發(fā)明實(shí)施例會涉及到某些變量在多個進(jìn)程中同時調(diào)用或修改的情況,因此,在圖5所示的一種網(wǎng)絡(luò)測試的方法中還可以包括利用共享命令在多個進(jìn)程間共享變量的步驟,所述共享命令可以是SET命令,其語法結(jié)構(gòu)可以為SET variable?value?其中,variable是變量名稱;value是參數(shù)值,帶此參數(shù)值,代表給變量variable賦值value;不帶此參數(shù)值代表查詢變量variable的值。
當(dāng)有進(jìn)程調(diào)用SET variable?value?時,系統(tǒng)執(zhí)行的步驟如圖7所示,具體包括步驟S70,判斷SET命令后是否存在參數(shù)值(value);
當(dāng)步驟S70的判斷結(jié)果是value存在,則進(jìn)入步驟S711,即判斷是否存在存放所述參數(shù)值的內(nèi)存,若是,則進(jìn)入步驟S712,否則,執(zhí)行步驟S714;步驟S712,判斷是否有其它進(jìn)程正在對所述內(nèi)存進(jìn)行操作,若是,則進(jìn)入步驟S713,否則,進(jìn)入步驟S715;步驟S713,等待其它進(jìn)程操作完畢后,直接進(jìn)入步驟S715;步驟S714,給value申請內(nèi)存;步驟S715,把value寫入所述內(nèi)存中。
當(dāng)步驟S70的判斷結(jié)果是value不存在,則進(jìn)入步驟S721,即查找存放value的內(nèi)存,然后進(jìn)入步驟S722步驟S722,判斷是否有其它進(jìn)程正在對所述內(nèi)存進(jìn)行操作,若是,執(zhí)行步驟S723,否則,進(jìn)入步驟S724;步驟S723,等待其它進(jìn)程對所述內(nèi)存操作完畢后,直接進(jìn)入步驟S724;步驟S724,獲取value。
該實(shí)施例中的共享命令,我們僅僅以SET命名,對于本領(lǐng)域普通技術(shù)人員,其命名及具體語法結(jié)構(gòu)可以很容易聯(lián)想到還有其他替代方案,并不限于此。
可選地,在具體實(shí)現(xiàn)時,本發(fā)明實(shí)施例會涉及到提供各進(jìn)程同步或等待某些進(jìn)程優(yōu)先運(yùn)行完畢的情況,則所述圖5所示的一種網(wǎng)絡(luò)測試的方法還包括通過同步命令同步各個進(jìn)程的步驟,所述同步命令可以是WAIT命令,其中,WAIT命令的語法結(jié)構(gòu)可以為WAIT object1/handle1 object2/handle2....
其中,object代表某一被測設(shè)備虛擬單元,如對象;handle代表某一進(jìn)程句柄。
所述WAIT命令主要實(shí)現(xiàn)兩個功能第一種是等待某一設(shè)備對象的所有進(jìn)程都結(jié)束,然后運(yùn)行當(dāng)前腳本;第二種是等待某一設(shè)備對象的某個進(jìn)程結(jié)束,然后運(yùn)行當(dāng)前的腳本。
當(dāng)有進(jìn)程調(diào)用WAIT object/handle時,系統(tǒng)執(zhí)行的步驟如圖8所示,包括步驟S801,判斷WAIT命令的參數(shù)是對象(object)還是進(jìn)程句柄(handle),若是對象,則執(zhí)行步驟S802,否則,所述參數(shù)是進(jìn)程句柄,則執(zhí)行步驟S805;步驟S802,根據(jù)所述對象得到其對應(yīng)的已生成的子解釋器進(jìn)程;步驟S803,檢查所述子解釋器進(jìn)程是否正在運(yùn)行,若是,執(zhí)行步驟S804,否則,執(zhí)行步驟S806;步驟S804,等待所述子解釋器進(jìn)程的測試腳本運(yùn)行完畢后,直接進(jìn)入步驟S806;步驟S805,等待所述進(jìn)程句柄對應(yīng)的進(jìn)程運(yùn)行完畢后,進(jìn)入步驟S806;步驟S806,運(yùn)行所述子解釋器進(jìn)程的測試腳本。
該實(shí)施例中的同步命令,我們僅僅以WAIT命名,對于本領(lǐng)域普通技術(shù)人員,其命名及具體語法結(jié)構(gòu)可以很容易聯(lián)想到還有其他替代方案,并不限于此。
上述實(shí)施例的一種網(wǎng)絡(luò)測試的方法是采用ITCL語言進(jìn)行測試腳本的編寫,當(dāng)然不限于此,同樣可以利用其它面向?qū)ο蟮慕忉屨Z言編寫測試腳本,并可以存儲在計(jì)算機(jī)可讀取存儲介質(zhì)中,便于工程測試人員使用,以實(shí)現(xiàn)對網(wǎng)絡(luò)多設(shè)備進(jìn)行并行測試。
綜上所述,本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)測試的方法及系統(tǒng)是通過針對每一個被測設(shè)備生成一個相應(yīng)的子解釋器,多被測設(shè)備就有多個子解釋器,所有子解釋器并行運(yùn)行腳本來對所有被測設(shè)備同時進(jìn)行測試,對于多臺被測設(shè)備進(jìn)行并行配置,視腳本內(nèi)容效率,配置效率會提高平均30%左右;若以m臺被測設(shè)備計(jì)算,每臺設(shè)備初始化需要n秒,并行執(zhí)行時可以減少70%m×n秒;同時當(dāng)測試結(jié)束后,并行清除被測設(shè)備的配置,使總體效率提高10%。
以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權(quán)利要求
1.一種網(wǎng)絡(luò)測試的方法,其特征在于,該方法至少包括運(yùn)行測試腳本,針對每一個被測設(shè)備生成相應(yīng)的子解釋器進(jìn)程;并行運(yùn)行子解釋器進(jìn)程,測試所述被測設(shè)備。
2.如權(quán)利要求1所述的方法,其特征在于,所述針對每一個被測設(shè)備生成相應(yīng)的子解釋器進(jìn)程具體包括以下步驟針對每一個被測設(shè)備生成相應(yīng)的子解釋器;分別將主解釋器進(jìn)程的上下文和所述每一被測設(shè)備對應(yīng)的測試腳本復(fù)制到該被測設(shè)備對應(yīng)的子解釋器中以生成相應(yīng)的子解釋器進(jìn)程。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述并行運(yùn)行子解釋器進(jìn)程,測試所述被測設(shè)備具體為,通過并行執(zhí)行命令運(yùn)行子解釋器進(jìn)程,并行執(zhí)行每一個被測設(shè)備對應(yīng)的測試腳本。
4.如權(quán)利要求3所述的方法,其特征在于,所述通過并行執(zhí)行命令運(yùn)行子解釋器進(jìn)程,并行執(zhí)行每一個被測設(shè)備對應(yīng)的測試腳本具體包括將所述主解釋器中與所述子解釋器對應(yīng)的全局變量分別復(fù)制到各子解釋器中,所述各子解釋器進(jìn)程中運(yùn)行所述測試腳本;將運(yùn)行結(jié)果回填到主解釋器進(jìn)程中。
5.如權(quán)利要求3所述的方法,其特征在于,所述方法還包括通過共享變量命令在多個進(jìn)程之間共享變量。
6.如權(quán)利要求3所述的方法,其特征在于,所述方法還包括通過同步命令同步各個進(jìn)程。
7.一種網(wǎng)絡(luò)測試系統(tǒng),其特征在于,該系統(tǒng)至少包括主解釋器、至少一個被測設(shè)備、與每一個所述被測設(shè)備對應(yīng)的子解釋器,其中,主解釋器,用于運(yùn)行測試腳本,針對每一個所述被測設(shè)備生成相應(yīng)的子解釋器進(jìn)程;子解釋器,用于運(yùn)行所述子解釋器進(jìn)程,測試該子解釋器對應(yīng)的被測設(shè)備。
8.如權(quán)利7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括腳本存儲單元,存儲用于網(wǎng)絡(luò)測試的測試腳本。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述主解釋器包括初始化單元,用于針對每一個被測設(shè)備生成相應(yīng)的被測設(shè)備虛擬單元;子解釋器生成單元,用于根據(jù)每一個所述被測設(shè)備虛擬單元生成相應(yīng)的子解釋器;上下文復(fù)制單元,用于分別復(fù)制主解釋器進(jìn)程的上下文和所述每一個被測設(shè)備對應(yīng)的測試腳本到該被測設(shè)備對應(yīng)的子解釋器中。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述子解釋器包括上下文接收單元,用于接收所述主解釋器進(jìn)程的上下文及與該子解釋器對應(yīng)的被測設(shè)備相對應(yīng)的測試腳本;腳本運(yùn)行單元,用于運(yùn)行所述測試腳本;運(yùn)行結(jié)果反饋單元,用于將所述子解釋器的運(yùn)行結(jié)果回填到所述主解釋器中。
全文摘要
本發(fā)明實(shí)施例公開了一種網(wǎng)絡(luò)測試的方法至少包括運(yùn)行測試腳本,針對每一個被測設(shè)備生成相應(yīng)的子解釋器進(jìn)程;并行運(yùn)行子解釋器進(jìn)程,測試所述被測設(shè)備。根據(jù)該方法可以并行執(zhí)行測試腳本對多個被測設(shè)備進(jìn)行測試,減小腳本執(zhí)行時間,提高測試效率。相應(yīng)地,本發(fā)明實(shí)施例還公開了一種網(wǎng)絡(luò)測試系統(tǒng),利用該系統(tǒng)可以減小腳本執(zhí)行時間,提高測試效率。
文檔編號H04L12/24GK101013977SQ20071002683
公開日2007年8月8日 申請日期2007年2月8日 優(yōu)先權(quán)日2007年2月8日
發(fā)明者許永利, 祁海 申請人:華為技術(shù)有限公司