网络测试的方法及系统的制作方法

文档序号:7645020阅读:218来源:国知局
专利名称:网络测试的方法及系统的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种网络测试的方法及系统。
背景技术
随着网络的规模及技术复杂性越来越大,各种业务数据的数量急剧增加,网络运行、管理和维护成本也越来越高,而网络测试伴随网络的建设、运行、管理及维护一体的,提高网络测试效率是减少成本的途径之一。目前网络自动化测试普遍采用脚本技术,进一步的发展是将面向对象技术引入网络测试中。通过面向对象的脚本技术对测试过程、设备、测试仪器等进行抽象和封装,极大地提高了脚本的共享和重复使用率,从而提高了测试效率。
目前的脚本体系是运用解释语言,如工具命令语言(Tool CommandLanguage,TCL),进行测试脚本的编写,实现自动测试的目的。而通过面向对象的解释语言,如面向对象的工具命令语言(Incr Tool Command Language,ITCL),对设备类、测试仪器类进行封装,并封装个测试动作,把测试脚本合成一条命令串行执行,对测试结果进行自动对比,提高了脚本的编写效率,具有一致性、可重复性、高移植性的特点。
在长期的实践过程中,发现当测试的网络很复杂,被测设备很多的情况下,需要和每一个设备进行信息交互,如图1所示,在现有的测试脚本运行在单解释器条件下,是串行执行的,即单解释器运行脚本对第一被测设备1进行测试后,单解释器再运行脚本对第二被测设备进行测试,运行一个被测设备的时间是T,如果有N个被测设备,则需要运行T×N的时间,从而导致脚本执行时间长,影响测试效率。

发明内容
本发明实施例所要解决的技术问题在于,提供一种网络测试的方法及系统,可以减小脚本执行时间,提高测试效率。
为了解决上述技术问题,本发明实施例的一种网络测试的方法,至少包括运行测试脚本,针对每一个被测设备生成相应的子解释器进程;并行运行子解释器进程,测试所述被测设备。
相应地,本发明实施例的一种网络测试系统,该系统至少包括主解释器、至少一个被测设备、与每一个所述被测设备对应的子解释器,其中,主解释器,用于运行测试脚本,针对每一个所述被测设备生成相应的子解释器进程;子解释器,用于运行所述子解释器进程,测试该子解释器对应的被测设备。
综上所述,本发明实施例的一种网路测试方法及系统是通过针对每一个被测设备生成一个相应的子解释器,多被测设备就有多个子解释器,所有子解释器并行运行脚本来对所有被测设备同时进行测试,减少了脚本运行时间的同时,也提高了测试效率。


图1是现有技术中在单解释器条件下的测试框架的结构示意图;图2是本发明实施例的一种网络测试系统的结构示意图;图3是本发明实施例的一种主解释器的结构示意图;图4是本发明实施例的一种子解释器的结构示意图;图5是本发明实施例的一种网络测试的方法的流程图;图6是本发明实施例的一种网络测试的方法中利用并行执行命令并行执行脚本的步骤的流程图;图7是本发明实施例的一种网络测试的方法中利用共享命令共享变量的步骤的流程图;图8是本发明实施例的一种网络测试的方法中利用同步命令使各进程同步的步骤的流程图。
具体实施例方式
本发明实施例提供的一种网络测试的方法及系统,是通过根据每一个被测设备生成相应的子解释器,当测试时,并行运行所有的子解释器来同时对所有被测设备进行测试。
下面将结合附图具体阐述本发明实施例的一种网络测试的方法及系统的技术方案。
参考图2,是本发明实施例的一种网络测试系统的结构示意图;根据该图,一种网络自动测试系统包括脚本存储单元21、主解释器22、N个被测设备以及相应的N个子解释器,其中,与第一被测设备25耦接的是第一子解释器23、与第二被测设备26耦接的是第二子解释器2、与第N被测设备耦接的是第N子解释器。
其中,脚本存储单元21,用于存储用来网络自动测试的测试脚本;主解释器22,与脚本存储单元21耦接,用于运行该脚本存储单元中的测试脚本,针对每一个所述被测设备生成相应的子解释器进程;当进行网络测试时,系统同时启动N个子解释器并行运行子解释器进程,并行对N个被测设备进行测试,即第一子解释器23对第一被测设备25进行测试、第二子解释器24对第二被测设备26进行测试、第N子解释器对第N被测设备进行测试。
在具体实现时,如图3所示,所述图2中的主解释器22至少包括初始化单元31,用于针对每一个被测设备生成相应的被测设备虚拟单元;子解释器生成单元32,用于根据初始化单元31生成的每一个被测设备虚拟单元生成每个被测设备对应的子解释器。
上下文复制单元33,与子解释器生成单元32耦接,用于将主解释器的上下文和所述每一个被测设备对应的测试脚本分别复制到该被测设备对应的子解释器中。
在具体实现时,如图4所示,所述图2中的子解释器至少包括上下文接收单元41,用于接收所述主解释器中的上下文及与该子解释器对应的被测设备相对应的测试脚本;脚本运行单元42,用于运行所述测试脚本;运行结果反馈单元43,与脚本运行单元42耦接,用于将所述子解释器的运行结果回填到所述主解释器中。
以上详细阐述了本发明实施例的一种网络测试系统的技术方案,下面将结合图5、图6、图7及图8详细阐述本发明实施例的一种网络测试的方法的技术方案。
本发明实施例的一种网络测试的方法,至少包括运行测试脚本,针对每一个被测设备生成相应的子解释器进程;并行运行子解释器进程,测试所述被测设备。
在具体实现时,参考图5,是本发明实施例的一种网络测试的方法的流程图;可以利用面向对象解释语言(ITCL)进行测试脚本的编写。由该图可知,一种网络测试的方法包括步骤S501,主解释器运行测试脚本初始化和配置被测设备,并针对每一个被测设备生成其相应的被测设备虚拟单元,如对象;步骤S502,主解释器根据每一个所述被测设备虚拟单元生成相应的子解释器(如,TCL解释器);步骤S503,主解释器将其上下文和每一个被测设备对应的测试脚本分别复制到该被测设备对应的子解释器中以生成相应的子解释器进程;步骤S504,并行运行所述子解释器进程,测试所述被测设备;步骤S505,当所有被测设备都测试完毕后,系统将并行清除被测设备的配置。
其中,在步骤S504中,所述并行运行子解释器进程,测试所述被测设备具体为,可以通过并行执行命令运行子解释器进程,并行执行每一个被测设备对应的测试脚本具体包括将所述主解释器中与所述子解释器对应的全局变量分别复制到各子解释器中,所述各子解释器进程中运行所述测试脚本;将运行结果回填到主解释器进程中。
在具体实现时,所述并行执行命令可以为PAL命令,例对象1 PAL{测试脚本1}对象2 PAL{测试脚本2}对象n PAL{测试脚本n}
如图6所示,系统执行上述PAL命令时,将并行执行包括对象1、对象2的n个对象对应的脚本,其中,针对对象1的步骤具体可以包括步骤S601,调用PAL命令的对象1获得对象1所属设备类别;步骤S602,在生成的对象1对应的第一子解释器中,根据对象1所属的设备类生成同样名称的对象,亦称之为对象1;步骤S603,将主解释器中对象1的全局变量复制到其对应的第一子解释器中;步骤S604,获取主解释器的日志文件名称及其路径,使子解释器和主解释器的日志信息存放在同一个日志中;步骤S605,在第一子解释器中运行PAL命令包含的对象1对应的测试脚本1;步骤S606,将运行结果回填到主解释器中。
根据该图可知,系统在执行对象1的同时,对象2以及对象n也在运行,并且针对其它对象的步骤和对象1的步骤完全相同,仅仅是名称变了,比如将对象1改为对象2,相应的第一子解释器改为第二子解释器、测试脚本1改为测试脚本2。
该实施例中的并行执行命令,我们仅仅以PAL命名,对于本领域普通技术人员,其命名及具体语法结构可以很容易联想到还有其他替代方案,并不限于此。
可选地,在具体实施时,本发明实施例会涉及到某些变量在多个进程中同时调用或修改的情况,因此,在图5所示的一种网络测试的方法中还可以包括利用共享命令在多个进程间共享变量的步骤,所述共享命令可以是SET命令,其语法结构可以为SET variable?value?其中,variable是变量名称;value是参数值,带此参数值,代表给变量variable赋值value;不带此参数值代表查询变量variable的值。
当有进程调用SET variable?value?时,系统执行的步骤如图7所示,具体包括步骤S70,判断SET命令后是否存在参数值(value);
当步骤S70的判断结果是value存在,则进入步骤S711,即判断是否存在存放所述参数值的内存,若是,则进入步骤S712,否则,执行步骤S714;步骤S712,判断是否有其它进程正在对所述内存进行操作,若是,则进入步骤S713,否则,进入步骤S715;步骤S713,等待其它进程操作完毕后,直接进入步骤S715;步骤S714,给value申请内存;步骤S715,把value写入所述内存中。
当步骤S70的判断结果是value不存在,则进入步骤S721,即查找存放value的内存,然后进入步骤S722步骤S722,判断是否有其它进程正在对所述内存进行操作,若是,执行步骤S723,否则,进入步骤S724;步骤S723,等待其它进程对所述内存操作完毕后,直接进入步骤S724;步骤S724,获取value。
该实施例中的共享命令,我们仅仅以SET命名,对于本领域普通技术人员,其命名及具体语法结构可以很容易联想到还有其他替代方案,并不限于此。
可选地,在具体实现时,本发明实施例会涉及到提供各进程同步或等待某些进程优先运行完毕的情况,则所述图5所示的一种网络测试的方法还包括通过同步命令同步各个进程的步骤,所述同步命令可以是WAIT命令,其中,WAIT命令的语法结构可以为WAIT object1/handle1 object2/handle2....
其中,object代表某一被测设备虚拟单元,如对象;handle代表某一进程句柄。
所述WAIT命令主要实现两个功能第一种是等待某一设备对象的所有进程都结束,然后运行当前脚本;第二种是等待某一设备对象的某个进程结束,然后运行当前的脚本。
当有进程调用WAIT object/handle时,系统执行的步骤如图8所示,包括步骤S801,判断WAIT命令的参数是对象(object)还是进程句柄(handle),若是对象,则执行步骤S802,否则,所述参数是进程句柄,则执行步骤S805;步骤S802,根据所述对象得到其对应的已生成的子解释器进程;步骤S803,检查所述子解释器进程是否正在运行,若是,执行步骤S804,否则,执行步骤S806;步骤S804,等待所述子解释器进程的测试脚本运行完毕后,直接进入步骤S806;步骤S805,等待所述进程句柄对应的进程运行完毕后,进入步骤S806;步骤S806,运行所述子解释器进程的测试脚本。
该实施例中的同步命令,我们仅仅以WAIT命名,对于本领域普通技术人员,其命名及具体语法结构可以很容易联想到还有其他替代方案,并不限于此。
上述实施例的一种网络测试的方法是采用ITCL语言进行测试脚本的编写,当然不限于此,同样可以利用其它面向对象的解释语言编写测试脚本,并可以存储在计算机可读取存储介质中,便于工程测试人员使用,以实现对网络多设备进行并行测试。
综上所述,本发明实施例提供的一种网络测试的方法及系统是通过针对每一个被测设备生成一个相应的子解释器,多被测设备就有多个子解释器,所有子解释器并行运行脚本来对所有被测设备同时进行测试,对于多台被测设备进行并行配置,视脚本内容效率,配置效率会提高平均30%左右;若以m台被测设备计算,每台设备初始化需要n秒,并行执行时可以减少70%m×n秒;同时当测试结束后,并行清除被测设备的配置,使总体效率提高10%。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
1.一种网络测试的方法,其特征在于,该方法至少包括运行测试脚本,针对每一个被测设备生成相应的子解释器进程;并行运行子解释器进程,测试所述被测设备。
2.如权利要求1所述的方法,其特征在于,所述针对每一个被测设备生成相应的子解释器进程具体包括以下步骤针对每一个被测设备生成相应的子解释器;分别将主解释器进程的上下文和所述每一被测设备对应的测试脚本复制到该被测设备对应的子解释器中以生成相应的子解释器进程。
3.如权利要求1或2所述的方法,其特征在于,所述并行运行子解释器进程,测试所述被测设备具体为,通过并行执行命令运行子解释器进程,并行执行每一个被测设备对应的测试脚本。
4.如权利要求3所述的方法,其特征在于,所述通过并行执行命令运行子解释器进程,并行执行每一个被测设备对应的测试脚本具体包括将所述主解释器中与所述子解释器对应的全局变量分别复制到各子解释器中,所述各子解释器进程中运行所述测试脚本;将运行结果回填到主解释器进程中。
5.如权利要求3所述的方法,其特征在于,所述方法还包括通过共享变量命令在多个进程之间共享变量。
6.如权利要求3所述的方法,其特征在于,所述方法还包括通过同步命令同步各个进程。
7.一种网络测试系统,其特征在于,该系统至少包括主解释器、至少一个被测设备、与每一个所述被测设备对应的子解释器,其中,主解释器,用于运行测试脚本,针对每一个所述被测设备生成相应的子解释器进程;子解释器,用于运行所述子解释器进程,测试该子解释器对应的被测设备。
8.如权利7所述的系统,其特征在于,所述系统还包括脚本存储单元,存储用于网络测试的测试脚本。
9.如权利要求8所述的系统,其特征在于,所述主解释器包括初始化单元,用于针对每一个被测设备生成相应的被测设备虚拟单元;子解释器生成单元,用于根据每一个所述被测设备虚拟单元生成相应的子解释器;上下文复制单元,用于分别复制主解释器进程的上下文和所述每一个被测设备对应的测试脚本到该被测设备对应的子解释器中。
10.如权利要求9所述的系统,其特征在于,所述子解释器包括上下文接收单元,用于接收所述主解释器进程的上下文及与该子解释器对应的被测设备相对应的测试脚本;脚本运行单元,用于运行所述测试脚本;运行结果反馈单元,用于将所述子解释器的运行结果回填到所述主解释器中。
全文摘要
本发明实施例公开了一种网络测试的方法至少包括运行测试脚本,针对每一个被测设备生成相应的子解释器进程;并行运行子解释器进程,测试所述被测设备。根据该方法可以并行执行测试脚本对多个被测设备进行测试,减小脚本执行时间,提高测试效率。相应地,本发明实施例还公开了一种网络测试系统,利用该系统可以减小脚本执行时间,提高测试效率。
文档编号H04L12/24GK101013977SQ20071002683
公开日2007年8月8日 申请日期2007年2月8日 优先权日2007年2月8日
发明者许永利, 祁海 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1