平台无关的自动化测试用例及虚拟测试仪器的制作方法

文档序号:7757111阅读:204来源:国知局
专利名称:平台无关的自动化测试用例及虚拟测试仪器的制作方法
技术领域
本发明涉及一种平台无关的自动化测试用例及虚拟测试仪器。
背景技术
随着通信技术的飞速发展,通信设备的高速度、高可靠性,对新产品的快速、高效的测试成为关键环节之一。由于自动化能够大大提高测试效率,节省人力资源,因而成为一种有效的解决方案。自动化测试用例就被用来完成自动化的测试工作。通常在开发自动化测试用例时,测试用例可以工作在某一个测试平台,但是一旦更改测试平台,必需更改相应的测试用例,用来适应新的测试平台。这对于大量测试用例来说,是一个巨大工程,也降低了自动化的效率。并且测试用例往往依赖真实测试平台,测试平台资源的有限性给测试工作带来了瓶颈,这就需要一个类似于真实测试平台的工具来解决这个问题。中国专利申请200710138053. X,其提供一种通讯协议一致性测试中的虚拟测试方法,使用多台虚拟测试仪器搭建逻辑测试结构,实现对被测协议进行软件(或系统)测试。 在保证有效性、精确性的前提下,仅使用一台测试器就可以实现对被测协议进行软件(或系统)的测试。虚拟测试方法避免了各测试仪器之间复杂的测试协调过程,而且测试结果更可靠、更精确。该方案仅使用一台测试仪器替代多台测试仪器,在实现自动化过程中,需要通过这台测试仪器来模拟其它测试仪器,这就会给这台模拟测试仪器增加复杂性,要为不同的测试仪器提供不同的接口。这对于自动化测试用例,不能做到与平台无关,需要修改测试用例接口,给自动化测试带来复杂性。Linux开源软件nemesis可以完成网络包的封装、发送,它以命令行的形式完成组包和发包的工作,简单可用性成为网络设备测试的选择。尽管Linux开源软件nemesis的简单可用性能够完成测试一起基本的组包功能, 但它很难用于实现自动化。此外,它的功能少,只能组一些常见的包,灵活性比较差。有鉴于此,有必要提出一种不依赖于测试平台的自动化测试用例及能够兼容多种测试仪器语言的虚拟测试仪器,使测试用例做到与测试平台无关,无需修改接口而实现自动化测试的程度及效率。

发明内容
本发明的目的在于提供一种平台无关的自动化测试用例,其不依赖于测试仪器, 具有良好的移植性。本发明的目的在于提供一种可应用上述平台无关的自动化测试用例的虚拟测试仪器,其减少测试成本并提高测试效率。为实现上述目的,本发明是关于一种平台无关的自动化测试用例,其可应用于不同的测试仪器上完成对被测设备的测试。该平台无关的自动化测试用例包括针对不同的测试仪器创建的类,并可对不同的测试仪器不同的函数集进行封装成为统一接口。
作为本发明的进一步改进,所述平台无关的自动化测试用例通过读取拓扑图来判断测试仪器的类型,并针对测试仪器的类型创建相应的类。作为本发明的进一步改进,所述平台无关的自动化测试用例通过类调用统一接口并连接到不同的测试仪器实现测试功能。为实现上述目的,本发明是关于一种虚拟测试仪器,其可供平台无关的自动化测试用例实现对被测设备的测试。该虚拟测试仪器具有可被平台无关的自动化测试用例封装成为统一接口的虚拟函数集并包括实现组包、发包、抓包、解包功能的报文处理模块及与被测设备互连的设备互连模块。作为本发明的进一步改进,所述报文处理模块包括合成包的组包模块、发送包的发包模块、接收包的抓包模块及对包解封装的解包模块。作为本发明的进一步改进,所述发包模块支持单口发送及多口同时发送,以控制发包数量和发包速度。作为本发明的进一步改进,所述抓包模块对接收的包进行存储和统计,并支持在端口设定过滤条件,选择接收所需的包。作为本发明的进一步改进,所述解包模块可以解析收到的包的每个字段以认定识别报文。作为本发明的进一步改进,所述设备互连模块包括许可远端登陆虚拟测试仪器进行一系列操作的网口及用来与被测设备进行互连并作为包的发送端和接收端的测试仪器接发口。本发明的有益效果是自动化测试用例与测试平台无关,提高测试用例的可移植性并提高自动化测试的效率。


图1是本发明平台无关的自动化测试用例与测试仪器连接的流程图;图2是本发明虚拟测试仪器的结构框图。
具体实施例方式本发明的优选实施方式中,不同的测试仪器(无论真实测试仪器S104还是虚拟测试仪器具有不同的内部接口并具有本身的函数集,但是为了能够被平台无关的自动化测试用例SlOl调用,本发明对不同的测试仪器S104、S105的函数集进行封装,形成封装后的统一接口 S103并可以被平台无关的自动化测试用例SlOl调用。所以,统一接口 S103是封装后的函数集,被平台无关的自动化测试用例SlOl调用。每个测试仪器S104、S105有本身的函数集,本发明对其封装,最后形成统一接口 S103。本发明为每一测试仪器S104、S105设定一个类,该类由平台无关的自动化测试用例SlOl来创建。平台无关的自动化测试用例SlOl通过读取拓扑图(topo图)S102来判断即将使用的是真实测试仪器S104还是虚拟测试仪器S105,然后创建与该测试仪器S104、 S105相应的类的对象。平台无关的自动化测试用例SlOl通过类调用统一接口 S103连接到测试仪器。如果该类是与真实测试仪器S104相对应的,则连接到真实测试仪器S104,然后调用真实测试仪器S104的接口去组包、发包、抓包、解包来实现测试功能。如果该类是与虚拟测试仪器 S105相对应的,则连接到虚拟测试仪器S105,然后调用虚拟测试仪器S 105的接口去组包、 发包、抓包、解包来实现测试功能。因此,本发明优选实施方式中,虽然每个类对应调用的统一接口 S103是一样的,但是其内部实现过程是不同的,比如真实测试仪器(IXIA)S104调用真实测试仪器 S104 (IXIA)的函数集,虚拟测试仪器S105调用虚拟测试仪器S105的函数集,但对于外部使用者来说,真实测试仪器S104或者虚拟测试仪器S105对外是一样的统一接口 S103,这样无论更换什么样的测试仪器,只需要增加一个由平台无关的自动化测试用例S 101创建的这个测试仪器的类,然后在类调用的统一接口 S103里去实现它的功能函数,这样我们就不需要去改变测试用例。针对一些测试仪器无法实现的功能和模拟测试环境的需要,本发明提供上述虚拟测试仪器S105,其不但可以实现真实测试仪器S104的功能,更重要的是,它可以灵活组成各种需求的包,比如OSPF (Open Shortest Path First,接口状态路由协议)、RIP (Routing information Protocol, 1 ^ff) >CFM(Connectivity Fault Management,3 ^ 管理)及EFM(Ethernet in the FirstMile,第一英里以太网)报文,这些包对于网络测试非常重要。图2为本发明虚拟测试仪器S105的基本结构图,其主要包括两个主要模块,一是与其它模拟设备互连的设备互联模块S203,其提供telnet网口 S208及测试仪器收发口 S209 ;二是报文处理模块S202,也可以称为包处理引擎,其包括组包模块S204、发包模块 S205、抓包模块S206及解包模块S207。组包模块S204 负责包的合成,由于灵活的组包方式,它可以组成各种需要的包, 然后提供组这种包的接口,给自动化提供了巨大的方便。发包模块S205 负责包的发送,可支持单口发送,多口同时发送,控制发包数量和发包速度。抓包模块S206 负责包的接收,对接收包的存储存和统计,可以支持在端口设定过滤条件,选择接收所需要的包。解包模块S207 负责对接收到的包进行解封装,可以解析收到包的每个字段,以便认定这个报文是什么报文,为报文字段的确认提供了方便。telnet 口 S208 负责远端登陆到本发明虚拟测试仪器S105,然后对虚拟测试仪器 S105进行一系列的操作。Chassis 口 S209 主要用来和其它被测设备进行互连,是包的发送端和接收端。以下是本发明虚拟测试仪器S105的报文处理模块S202的组包、发包、抓包及解包的实现过程组包实现每个协议段有两个数据结构与它对应,用来保存配置信息和组包时的位置信息和变化信息,组包时,用链表把各个协议段连接起来,然后把这个数据连拷贝到某个端口的某个Mream(数据流)上.再调用发包函数来发送数据报文。发包过程创建socket (套接字),打开socket,取出一个stream,组包,发送数据包,更新数据包,再发送,直到发送结束,取出下一个stream发送,直到发送了所有的 stream,关闭 socket,册!J除 socket。
抓包过程设置单独的收包线程,利用Iibpcap (开源收包软件)开始收包,把收到的数据包存入一个缓存文件里,便于以后取出收到的数据报文进行分析。解包过程每个协议段有个数据结构与它对应,保存配置信息,根据报文的内容, 从前向后逐层解包,把解包的内容填入每个协议段相对应的数据结构之中。特别需要指出的是,本发明具体实施方式
中仅以该平台无关的自动化测试用例及虚拟测试仪器作为示例,在实际应用中任何类型的平台无关的测试用例及虚拟测试仪器均适用本发明揭示的原理。对于本领域的普通技术人员来说,在本发明的教导下所作的针对本发明的等效变化,仍应包含在本发明权利要求所主张的范围中。
权利要求
1.一种平台无关的自动化测试用例,其可应用于不同的测试仪器上完成对被测设备的测试,其特征在于其包括针对不同的测试仪器创建的类,并可对不同的测试仪器不同的函数集进行封装成为统一接口。
2.如权利要求1所述的平台无关的自动化测试用例,其特征在于,其通过读取拓扑图来判断测试仪器的类型,并针对测试仪器的类型创建相应的类。
3.如权利要求2所述的平台无关的自动化测试用例,其特征在于,其通过类调用统一接口并连接到不同的测试仪器实现测试功能。
4.一种虚拟测试仪器,其可供平台无关的自动化测试用例实现对被测设备的测试,其特征在于其具有可被平台无关的自动化测试用例封装成为统一接口的虚拟函数集并包括实现组包、发包、抓包、解包功能的报文处理模块及与被测设备互连的设备互连模块。
5.如权利要求4所述的虚拟测试仪器,其特征在于,所述报文处理模块包括合成包的组包模块、发送包的发包模块、接收包的抓包模块及对包解封装的解包模块
6.如权利要求5所述的虚拟测试仪器,其特征在于,所述发包模块支持单口发送及多口同时发送,以控制发包数量和发包速度。
7.如权利要求5所述的虚拟测试仪器,其特征在于,所述抓包模块对接收的包进行存储和统计,并支持在端口设定过滤条件,选择接收所需的包。
8.如权利要求5所述的虚拟测试仪器,其特征在于,解包模块可以解析收到的包的每个字段以认定识别报文。
9.如权利要求4所述的虚拟测试仪器,其特征在于,所述设备互连模块包括许可远端登陆虚拟测试仪器进行一系列操作的网口及用来与被测设备进行互连并作为包的发送端和接收端的测试仪器接发口。
全文摘要
本发明关于一种平台无关的自动化测试用例,其可应用于不同的测试仪器上完成对被测设备的测试。该平台无关的自动化测试用例包括针对不同的测试仪器创建的类,并可对不同的测试仪器不同的函数集进行封装成为统一接口。本发明平台无关的自动化测试用例通过封装不同测试仪器的函数集成为统一接口,做到与平台无关,提高可移植性及测试效率。
文档编号H04L12/26GK102377609SQ20101025525
公开日2012年3月14日 申请日期2010年8月17日 优先权日2010年8月17日
发明者单哲, 徐锦韬, 方沛昱, 杨曙军, 赵茂聪 申请人:盛科网络(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1