一种北向接口测试装置和北向接口的测试方法与流程

文档序号:11133791阅读:1760来源:国知局
一种北向接口测试装置和北向接口的测试方法与制造工艺

本发明涉及计算机测试技术领域,尤指一种北向接口测试装置和北向接口的测试方法。



背景技术:

北向接口为设备厂商提供给运营商的接口,运营商可以通过北向接口统一监管各个设备厂商的设备,监控设备厂商告警、性能以及开通业务。随着第三代移动通信技术(3rd-Generation,简称为:3G)、4G网络建设的发展,北向接口在运营商和设备厂商之间的桥梁作用越来越重要,北向接口的使用性能成为设备厂商关注的重要特征。

目前的主流北向接口包括公共对象请求代理体系结构(Common Object Request Broker Architecture,简称为:CORBA)接口、多重技术操作系统(Multi technology operations systems interface,简称为:MTOSI)接口以及新一代的软件定义网络(Software Defined Network,简称为:SDN)的北向,即SDN的restconf北向接口;上述这些主流北向接口通常基于特定的协议标准定义各自的业务接口。但是由于业务接口的数量较多,采用现有技术的测试工具测试北向接口的业务接口时,需要根据待测试的北向接口的业务接口的功能,对该业务接口进行硬编码,因此,在测试中只能实现对业务接口的固定功能进行自动化测试;如果需要对功能发生变化的业务接口或者对增加新功能的业务接口进行测量,就需要对该测试工具的代码进行变更或者对新实现功能进行硬编码,以实现对该业务接口的不同功能的自动化测试。

显然地,采用现有技术中的测试工具测试北向接口时,由于需要通过对北向接口的业务接口进行硬编码才能实现对业务接口的固定功能进行测试,而导致北向接口的自动化测试能力限制较大的问题。



技术实现要素:

为了解决上述技术问题,本发明提供了一种北向接口测试装置和北向接口的测试方法,以解决采用现有技术中的测试工具测试北向接口时,由于需要通过对北向接口的业务接口进行硬编码才能对业务接口的实现固定功能进行测试,而导致北向接口的自动化测试能力限制较大的问题。

第一方面,本发明提供一种北向接口测试装置,包括:脚本执行模块和命令执行模块;

其中,所述脚本执行模块,用于执行预先开发的脚本中的脚本用例,根据所述脚本用例调用相应地请求报文,并向命令执行模块发送包括所述请求报文的执行命令;

所述命令执行模块,用于根据所述请求报文的内容执行相应的测试操作,并将执行结果返回给所述脚本执行模块,所述请求报文用于对当前测试的北向接口对应的通讯接口进行测试。

在第一方面的第一种可能的实现方式中,所述脚本执行模块当前执行的脚本用例中包括测试通知的任务,所述北向接口测试装置还包括:通知接收模块;所述脚本执行模块,还用于在执行所述脚本用例之后,向所述通知接收模块发送第一订阅命令;

所述通知接收模块,用于获取所述第一订阅命令指示的测试通知,并将所述获取的测试通知返回给所述脚本执行模块;

所述脚本执行模块,还用于向所述通知接收模块发送取消订阅命令。

在第一方面的第二种可能的实现方式中,所述北向接口测试装置还包括:初始化模块和脚本加载模块;所述初始化模块,用于在所述脚本执行模块执行预先开发的脚本中的脚本用例之前,初始化脚本加载模块加载所述预先开发的脚本,初始化所述命令执行模块的参数和所述通知接收模块的参数,其中,所述脚本执行模块执行的脚本用例为根据所述脚本加载模块加载所述脚本中的各脚本用例所获取的,所述脚本包括所述脚本用例和脚本方法,所述脚本方法为所述脚本用例的执行方法;

所述通知接收模块,还用于在初始化后持续接收服务器发送的通知。

根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中, 所述当前测试的北向接口为公共对象请求代理体系结构CORBA接口,所述初始化模块用于初始化命令执行模块的参数,具体包括:初始化对象请求代理ORB;

所述初始化模块用于初始化所述通知接收模块的参数,具体包括:通过对象管理组织OMG标准,指示所述通知接收模块调用接收所述服务器发送的通知;

所述初始化模块,还用于在所述脚本执行模块执行所述脚本用例之前,向所述脚本执行模块发送登陆命令,所述登陆命令中包括登陆的脚本方法;

所述脚本执行模块,还用于根据所述登陆命令执行所述登陆的脚本方法,根据所述登陆的脚本方法调用相应地登陆请求报文,并向所述命令执行模块发送包括所述登陆请求报文的执行登陆命令;

所述命令执行模块,还用于根据所述接收到的登陆请求报文执行CORBA的动态调用,并将执行结果返回给所述脚本执行模块。

根据第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述当前测试的北向接口为多重技术操作系统MTOSI接口或者软件定义网络SDN的北向,所述初始化模块用于初始化命令执行模块的参数,具体包括:初始化用于构造超文本传输协议HTTP请求报文的统一资源定位符URL;

所述初始化模块用于初始化所述通知接收模块的参数,具体包括:订阅MTOSI通知;

所述通知接收模块,还用于在所述初始化模块初始化所述通知接收模块的参数之后,向所述脚本执行模块发送第二订阅命令,所述第二订阅命令中包括订阅的脚本方法;

所述脚本执行模块,还用于根据所述第二订阅命令执行所述订阅的脚本方法,根据所述订阅的脚本方法调用相应地订阅请求报文,并向所述命令执行模块发送包括所述订阅请求报文的执行订阅命令;

所述命令执行模块,还用于根据所述订阅请求报文执行HTTP请求调用,并将执行结果返回给所述脚本执行模块。

根据第一方面、第一方面的第一种到第四种可能的实现方式中任意一种, 在第五种可能的实现方式中,所述北向接口测试装置还包括结果生成模块;所述脚本执行模块,还用于在所述命令执行模块将所述执行结果返回给所述脚本执行模块之后,将所述执行结果传输给所述结果生成模块;

所述结果生成模块,用于输出所述执行结果,所述执行结果包括已测试的所有北向接口,以及每个所述北向接口的测试次数和测试时间。

根据第一方面、第一方面的第一种到第四种可能的实现方式中任意一种,在第六种可能的实现方式中,所述脚本执行模块执行所述脚本用例,具体包括:按照所述脚本中各脚本用例的顺序依次执行;和/或,

所述北向接口测试装置还包括记录模块;所述脚本执行模块,还用于在执行所述脚本用例的过程中,将所述脚本用例的执行信息和异常信息发送给所述记录模块;

所述记录模块,用于记录并展示所述脚本用例的执行信息和异常信息。

第二方面,本发明提供一种北向接口的测试方法,包括:

脚本执行模块执行预先开发的脚本中的脚本用例,根据所述脚本用例调用相应地请求报文,并向命令执行模块发送包括所述请求报文的执行命令;

所述命令执行模块根据所述请求报文的内容执行相应的测试操作,并将执行结果返回给所述脚本执行模块,所述请求报文用于对当前测试的北向接口对应的通讯接口的进行测试。

在第二方面的第一种可能的实现方式中,所述脚本执行模块当前执行的脚本用例中包括测试通知的任务,所述脚本执行所述脚本用例之后,还包括:

所述脚本执行模块向通知接收模块发送第一订阅命令;

所述通知接收模块获取所述第一订阅命令指示的测试通知,并将所述获取的测试通知返回给所述脚本执行模块;

所述脚本执行模块向所述通知接收模块发送取消订阅命令。

在第二方面的第二种可能的实现方式中,所述脚本执行模块执行预先开发的脚本中的脚本用例之前,还包括:

初始化模块初始化脚本加载模块加载所述预先开发的脚本,初始化所述 命令执行模块的参数和所述通知接收模块的参数,其中,所述脚本执行模块执行的脚本用例为根据所述脚本加载模块加载所述脚本中的各脚本用例所获取的,所述脚本包括所述脚本用例和脚本方法,所述脚本方法为所述脚本用例的执行方法;

所述初始化模块初始化所述通知接收模块的参数之后,还包括:

所述通知接收模块在初始化后持续接收服务器发送的通知。

根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述当前测试的北向接口为公共对象请求代理体系结构CORBA接口,所述初始化命令执行模块的参数,包括:初始化对象请求代理ORB;

所述初始化所述通知接收模块的参数,包括:通过对象管理组织OMG标准,指示所述通知接收模块调用接收所述服务器发送的通知;

所述脚本执行模块执行预先开发的脚本中的脚本用例之前,还包括:

所述初始化模块向所述脚本执行模块发送登陆命令,所述登陆命令中包括登陆的脚本方法;

所述脚本执行模块根据所述登陆命令执行所述登陆的脚本方法,根据所述登陆的脚本方法调用相应地登陆请求报文,并向所述命令执行模块发送包括所述登陆请求报文的执行登陆命令;

所述命令执行模块根据所述接收到的登陆请求报文执行CORBA的动态调用,并将执行结果返回给所述脚本执行模块。

根据第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述当前测试的北向接口为多重技术操作系统MTOSI接口或者软件定义网络SDN的北向,所述初始化命令执行模块的参数,包括:初始化用于构造超文本传输协议HTTP请求报文的统一资源定位符URL;

所述初始化所述通知接收模块的参数,包括:订阅MTOSI通知;

所述初始化模块初始化所述通知接收模块的参数之后,还包括:

所述通知接收模块向所述脚本执行模块发送第二订阅命令,所述第二订阅命令中包括订阅的脚本方法;

所述脚本执行模块根据所述第二订阅命令执行所述订阅的脚本方法,根据所述订阅的脚本方法调用相应地订阅请求报文,并向所述命令执行模块发送包括所述订阅请求报文的执行订阅命令;

所述命令执行模块根据所述订阅请求报文执行HTTP请求调用,并将执行结果返回给所述脚本执行模块。

根据第二方面、第二方面的第一种到第四种可能的实现方式中任意一种,在第五种可能的实现方式中,所述命令执行模块将执行结果返回给所述脚本执行模块之后,还包括:

所述脚本执行模块将所述执行结果传输给结果生成模块;

所述结果生成模块输出所述执行结果,所述执行结果包括已测试的所有北向接口,以及每个所述北向接口的测试次数和测试时间。

根据第二方面、第二方面的第一种到第四种可能的实现方式中任意一种,在第六种可能的实现方式中,所述脚本执行模块执行所述脚本用例,包括:

所述脚本执行模块按照所述脚本中各脚本用例的顺序依次执行;和/或,

所述脚本执行模块执行所述脚本用例的过程中,还包括:

所述脚本执行模块将所述脚本用例的执行信息和异常信息发送给记录模块;

所述记录模块记录并展示所述脚本用例的执行信息和异常信息。

本发明提供的北向接口测试装置和北向接口的测试方法,通过脚本执行模块执行预先开发的脚本中的脚本用例,并根据该脚本用例调用相应地请求报文,从而向命令执行模块发送包括该请求报文的执行命令,进而通过命令执行模块根据该请求报文的内容执行相应的测试操作,并将执行结果返回给脚本执行模块,本实施例中的请求报文用于对当前测试的北向接口对应的通讯接口进行测试,即本发明通过脚本执行模块对脚本用例的测试逻辑,调用对北向接口执行相应测试功能的请求文本,从而通过调用命令执行模块执行上述调用的请求文本以实现脚本用例中编辑的对北向接口进行测试的任务;本发明解决了采用现有技术中的测试工具测试北向接口时,由于需要通过对北向接口的业务接口进行硬编码才能对业务接口的实现固定功能进行测试, 而导致北向接口的自动化测试能力限制较大的问题。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为北向接口的应用场景的示意图;

图2为本发明实施例提供的一种北向接口测试装置的结构示意图;

图3为图2所示实施例提供的北向接口测试装置的测试原理图;

图4为本发明实施例提供的另一种北向接口测试装置的结构示意图;

图5为本发明实施例提供的又一种北向接口测试装置的结构示意图;

图6为本发明实施例提供的一种北向接口的测试方法的流程图;

图7为本发明实施例提供的另一种北向接口的测试方法的流程图;

图8为本发明实施例提供的又一种北向接口的测试方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图1所示,为北向接口的应用场景的示意图。其中,无填充的方块代表服务器端,具有填充的方块代表客户端,在北向接口的对接过程中,用户直接可见的就是设备厂商所提供的接口定义,即图1中的北向接口业务接口,例如对于CORBA接口,就是接口描述语言(Interface Description language,简称为:IDL)定义的接口簇,对于MTOSI接口,就是网络服务 描述语言(Web Service Description language,简称为:WSDL)定义的接口簇,对于SDN北向接口,就是一系列以编号排定的文件(Request For Comments,简称为:RFC)6020中的定义的一种模型定义语音,即YANG定义的接口簇,上述北向接口业务接口还可以为其它形式的业务接口,客户端调用的是北向接口专门的编译器生成的接口定义。需要说明的是,北向接口协议的原理类似于开放式系统互联(Open System Interconnection,简称为:OSI)的七层通讯协议,即北向接口也是层模型,上述接口簇定义为最上层,接口簇的下面有一层或多层其它通讯协议,可以统称为通讯接口。

在图1所示应用场景中,为了实现某项功能,即北向接口客户端实现,需要调用北向接口业务接口,该北向接口业务接口将输入转换后调用通讯接口;服务器端的通讯接口收到调用通讯接口的请求后,并转换为北向接口业务接口的调用请求,然后调用北向接口服务器端实现。

下面以具体的实施例对本发明的技术方案进行详细说明,本发明各实施例都可以应用与图1所示北向接口的应用场景中,对北向接口业务接口对应的通讯接口进行自动化测试。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图2为本发明实施例提供的一种北向接口测试装置的结构示意图。本实施例提供的北向接口测试装置适用于对北向接口业务接口进行测试的情况中,该北向接口测试装置通常以硬件和软件的方式实现,例如集成在测试设备的处理器中,供处理器调用执行。如图2所示,本实施例提供的北向接口测试装置具体包括:脚本执行模块11和命令执行模块12。

其中,脚本执行模块11,用于执行预先开发的脚本中的脚本用例,根据所述脚本用例调用相应地请求报文,并向命令执行模块发送包括该请求报文的执行命令。

在本实施例中,脚本执行模块11可以执行预先开发的脚本,该脚本为测试人员在开发北向接口测试装置后,针对北向接口的自动化测试编写的脚本语音,用于对北向接口进行自动化测试,该脚本中通常包括多个脚本用例,脚本执行模块11在执行脚本用例时,可以根据具体的脚本用例从请求报文集合中调用相应地请求报文,即本实施例中的脚本和请求报文的文本都是在进 行自动化测试前已经开发好的,通常地,可以通过脚本用例编辑测试逻辑,即特定的脚本用例可以调用特定的请求报文,即脚本用例和请求报文为对应的关系,通过对某个脚本用例的执行调用出相应地请求报文,从而向命令执行模块12发送包括该请求报文的执行命令,具体由命令执行模块12对该调用的请求报文进行处理。

需要说明的是,本实施例中的脚本执行模块11在执行脚本用例时,例如可以按照预先开发的脚本中各脚本用例的顺序依次执行各脚本用例;脚本执行模块11调用请求报文的具体方式为:根据当前执行的脚本用例的内容进行调用的,即每次执行一个脚本用例时,调用到的请求报文通常是不同的;另外,调用到的请求报文为文本格式,例如可以为以可扩展标记语言(Extensible Markup Language,简称为:XML)格式存储的文本。

命令执行模块12,用于根据请求报文的内容执行相应的测试操作,并将执行结果返回给脚本执行模块11,该请求报文用于对当前测试的北向接口对应的通讯接口进行测试。

本实施例中,在命令执行模块12接收到脚本执行模块11向其发送的执行命令后,可以根据该执行命令中指示执行请求报文执行相应地测试操作,请求报文用于对当前测试的北向接口对应的通讯接口的能力进行测试。在具体实现中,由于测试人员在客户端已经开发的用于对测试北向接口业务接口的功能进行测试的脚本和请求报文集合,实际上是基于图1所示应用场景中北向接口业务接口将输入转换后调用对应的通讯接口,具体对转换后调用的通讯接口进行测试,即本实施例中将对北向接口的最上层的接口簇的测试转化为对下层通讯接口的测试,具体通过预定义的脚本和请求报文集合共同实现,即执行脚本用例就是通过该脚本用例获取针对当前脚本用例的请求报文,在请求报文中具体定义了测试方案,命令执行模块12执行请求报文就是说对当前脚本用例所指示测试的功能执行测试。

需要说明的是,本实施例中的脚本执行模块11执行脚本用例的过程,实际上就是通过反复调用命令执行模块12,以执行脚本执行模块11通过脚本用例调用到的请求报文;并且由于脚本执行模块11是按照脚本中各脚本用例中的顺序依次执行的,因此,命令执行模块12执行请求报文的顺序同样是按 照脚本执行模块11调用到请求报文的顺序依次执行的。

采用本实施例提供的北向接口测试装置对待测北向接口业务接口的功能进行测试,实际上是转换后对应的通讯接口进行自动化测试,需要通过脚本执行模块11先执行预先开发的脚本用例,通过对脚本用例的执行调用到与测试相关的请求报文,即测试通讯接口的两个因素即是脚本用例和请求报文。如图3所示,为图2所示实施例提供的北向接口测试装置的测试原理图,与图1所述应用场景类似地,无填充的方块代表服务器端,具有填充的方块代表客户端,北向接口测试装置通过执行脚本用例和调用与当前脚本用例对应的请求报文对客户端的北向接口业务接口对应的通讯接口进行测试,也就是通过客户端对服务器端对应通讯接口进行测试,从而根据测试的结果,即命令执行模块12执行请求报文的执行结果验证客户端和服务器端北向接口业务接口的功能。

本实施例将对北向接口业务接口实现功能的自动化测试,建立在对应的通讯接口上,由于通讯接口可以识别的输入通常是文本或者文本编码的二进制流,例如对于CORBA接口来说,是基于互联网内部对象请求代理协议(Internet Inter-ORB Protocol,简称为:IIOP)的CORBA动态调用接口,对于MTOSI和SDN来说,是超文本传输协议(HyperText Transfer Protocol,简称为:HTTP);测试方案都是将IDL或者WSDL的请求报文先保存下来,如图3中的北向接口请求报文,从而通过脚本来编辑测试逻辑,即测试人员将测试顺序以脚本用例的形式编写在脚本中,已完成多项功能的用例测试,如图3的北向接口自动化测试脚本。显然地,本实施例提供的北向接口测试装置在执行测试的过程中与具体的北向接口业务接口定义无关,只负责执行试脚本用例即可实现对北向接口业务接口的自动化测。

本实施例提供的北向接口测试装置,通过脚本执行模块执行预先开发的脚本中的脚本用例,并根据该脚本用例调用相应地请求报文,从而向命令执行模块发送包括该请求报文的执行命令,进而通过命令执行模块根据该请求报文的内容执行相应的测试操作,并将执行结果返回给脚本执行模块,本实施例中的请求报文用于对当前测试的北向接口对应的通讯接口进行测试,即本实施例通过脚本执行模块对脚本用例的测试逻辑,调用对北向接口执行相 应测试功能的请求文本,从而通过调用命令执行模块执行上述调用的请求文本以实现脚本用例中编辑的对北向接口进行测试的任务;本实施例解决了采用现有技术中的测试工具测试北向接口时,由于需要通过对北向接口的业务接口进行硬编码才能对业务接口的实现固定功能进行测试,而导致北向接口的自动化测试能力限制较大的问题。

相比于现有技术中的测试工具通过硬编码的方式实现对北向接口业务接口的固定功能进行测试的方案来说,本实施例提供的北向接口测试装置将北向接口业务接口与北向接口测试装置解耦,即自动化测试建立在待测试的北向接口业务接口对应的通讯接口上,使得自动化测试开发变为请求报文和脚本用例的开发,该请求报文为通讯接口可以识别的文本输入,降低了自动化用例开发的门槛,在测试通讯接口前测试人员可以在根据测试需求进行研发,开发出用于测试的脚本用例;并且如果脚本用例通过测试,则说明与该通讯接口对应的北向接口业务接口的功能验证通过。本实施例提供的北向接口测试装置在开发自动化测试用例时具有快速灵活的特点,能成倍的提高开发测试的效率,从而提高产品质量,特别适合于敏捷开发。

可选地,图4为本发明实施例提供的另一种北向接口测试装置的结构示意图。在本实施例中,脚本执行模块当前执行的脚本用例中包括测试通知的任务,则在图2所示北向接口测试装置的基础上,本实施例提供的装置还包括通知接收模块13,具体地,脚本执行模块11,还用于在执行脚本用例之后,向通知接收模块13发送第一订阅命令;相应地,通知接收模块13,用于获取该第一订阅命令指示的测试通知,并将获取的测试通知返回给脚本执行模块11;随后,脚本执行模块11在获得脚本用例中指示需要的测试通知后,即完成测试通知的任务后,可以进一步向通知接收模块13发送取消订阅命,以取消测试通知的任务。

需要说明的是,本实施例中的通知接收模块13在启动后可以一直接收服务器端发送的通知,当脚本执行模块11向其订阅通知时,该通知接收模块13具体根据第一订阅命令中需要测试通知的内容,从服务器端接收的通知中找到上述脚本执行模块11订阅的通知,并返回给脚本执行模块11;即本实施例中的订阅通知的操作具体为北向接口测试装置的内部模块之间的通知订 阅。另外,本实施例中的脚本执行模块11执行脚本用例的过程,不仅需要通过反复调用命令执行模块12来执行脚本执行模块11调用到的请求报文,还需要通过反复调用通知接收模块13来订阅脚本执行模块11当前执行的脚本用例中需要测试的通知。

进一步地,图4所示的北向接口测试装置还可以包括:初始化模块14和脚本加载模块15,具体地,初始化模块14,用于在脚本执行模块执行预先开发的脚本中的脚本用例之前,初始化脚本加载模块15加载该预先开发的脚本,同时初始化命令执行模块12的参数和通知接收模块13的参数,其中,脚本执行模块11执行的脚本用例就是根据脚本加载模块15加载该脚本中的各脚本用例所获取的,该脚本包括脚本用例和脚本方法,该脚本方法为脚本用例的执行方法;相应地,通知接收模块13,还用于在初始化后持续接收服务器发送的通知。需要说明的是,本实施例不限制初始化模块14初始化脚本加载模块15、命令执行模块12和通知接收模块13的顺序,可以是依次执行的,也可以是并行执行的。

在本实施例中,脚本加载模块15所加载的脚本例如为基于面向对象的程序设计语言Java虚拟机的编程语言(Groovy)编程的脚本,即Groovy脚本,由于Groovy语言是对Java语言的扩展,因此开发Groovy脚本的工作量较小;并且脚本加载模块15加载的Groovy脚本分为两部分内容,一部分是Groovy脚本方法,一部分是Groovy脚本用例,其中,Groovy脚本方法可以是一些常用的或者被各Groovy脚本用例公用的方法,例如为用于初始化模块14的登陆的Groovy脚本方法。

在通过本发明实施例提供的装置测试北向接口的一种应用场景中,如图5所示,为本发明实施例提供的又一种北向接口测试装置的结构示意图。本实施例可以用于测试CORBA接口,则脚本执行模块11通过执行脚本用例调用到的请求报文具体为CORBA请求报文,该CORBA请求报文同样为XML格式的文本文件。本实施例在具体实现中,一方面,初始化模块14用于初始化命令执行模块12的参数,具体包括:根据服务器的网络协议(Internet Protocol,简称为:IP)和命名服务端口,初始化对象请求代理(Object Request Broker,简称为:ORB);另一方面,初始化模块14用于初始化通知接收模 块13的参数,具体包括:根据服务器通知的服务端口,通过对象管理组织(Object Management Group,简称为:OMG)标准,指示通知接收模块13持续接收服务器发送的通知。

本实施例在具体实现中,命令执行模块12具体可以为CORBA命令执行模块12,通知接收模块13具体可以为OMG通知接收模块13,该OMG通知接收模块13在初始化之后,一直处于接收OMG通知的状态,可以提供订阅和取消订阅的接口,例如,在脚本执行模块11执行脚本用例时,如遇到要测试某个通知的情况,就向通知接收模块13发送第一订阅命以订阅需要通知时,此时,通知接收模块13在从服务器接收到的通知中找到第一订阅命指示的订阅的测试通知,从而向脚本执行模块11返回其所需的测试通知,完成测试通知的任务后则可以取消通知订阅。

需要说明的是,本实施例同样以脚本加载模块15加载的脚本具体为Groovy脚本为例予以说明,该Groovy脚本包括Groovy脚本方法和Groovy脚本用例,对于CORBA接口,都需要遵循814标准中的定义,定义了使用EmsSessionFactory来获得getEmsSession的登陆方法;具体地,在执行每个Groovy脚本用例前,都需要先进行登录操作,与待执行的Groovy脚本用例对应的Groovy脚本方法即是初始化模块14指示执行的登录的Groovy脚本方法。本实施例提供的装置在具体实现中,初始化模块14,还用于在脚本执行模块11执行脚本用例之前,向脚本执行模块11发送登陆命令,该登陆命令中包括登陆的脚本方法,例如为登录的Groovy脚本方法;脚本执行模块11,还用于根据登陆命令执行该登陆的Groovy脚本方法,并根据该登陆的Groovy脚本方法调用相应地登陆请求报文,例如为登陆的CORBA请求报文,该登陆的CORBA请求报文同样为以XML格式存储的文本文件,从而向命令执行模块12发送包括该登陆的CORBA请求报文的执行登陆命令;相应地,命令执行模块12,还用于根据接收到的登陆的CORBA请求报文执行CORBA的动态调用,执行完成后将执行结果返回给脚本执行模块11。

需要说明的是,图5所示实施例与图4所示实施例的不同在于,由于本实施例对CORBA接口的测试需要遵循814标准中的定义,即脚本执行模块11执行脚本用例前,需要先进行登录操作,该操作中需要初始化模块14向 脚本执行模块11发送登陆命令,因此,图5所示实施例中初始化模块14与脚本执行模块11具有发送信令的连接关系。另外,本发明各实施例中的请求报文可以全部以XML格式的文本文件存储,命令执行模块12接收到执行登陆命令后,读取该命令中的登陆的CORBA请求报文,读取完成后通过ORB调用CORBA的动态调用接口,调用完成后将执行结果重新保存为XML格式的文本文件,以供脚本执行模块11进行后续使用。再者,本实施例中的脚本执行模块11可以采用单元测试用例框架执行脚本加载模块15加载的脚本用例。

在通过本发明实施例提供的装置测试北向接口的另一种应用场景中,可以参考图4所示的北向接口测试装置的结构示意图。本实施例提供的北向接口测试装置可以用于测试MTOSI接口或者SDN的北向,则脚本执行模块11通过执行脚本用例调用到的请求报文具体为HTTP请求报文,该HTTP请求报文同样可以为XML格式的文本文件。本实施例在具体实现中,一方面,初始化模块14用于初始化命令执行模块12的参数,具体包括:初始化服务器的统一资源定位符(Uniform Resource Locator,简称为:URL)参数,也就是初始化用于构造HTTP请求报文的统一资源定位符URL,由于本实施例中脚本执行模块11执行脚本用例时具体调用HTTP请求报文,HTTP请求报文需要包括URL,该HTTP请求报文例如可以为简单对象访问协议(Simple Object Access Protocol,简称为:SOAP)请求报文,该SOAP请求报文可以是HTTP请求报文具体应用;另一方面,初始化模块14用于初始化通知接收模块13的参数,具体包括:订阅MTOSI通知,从而指示通知接收模块13持续接收服务器发送的通知。本实施例在具体实现中,命令执行模块12例如可以为HTTP请求执行模块,通知接收模块13例如可以为Jetty(基于Java的网络容器)通知接收模块,该Jetty通知接收模块在初始化之后,一直处于接收MTOSI通知的状态,可以提供订阅和取消订阅的接口,脚本执行模块11向Jetty通知接收模块订阅通知和取消通知订阅的方式与上述实施例相同,句属于北向接口测试装置的内部模块之间的通知订阅。

需要说明的是,本实施例同样以脚本加载模块15加载的脚本具体为Groovy脚本为例予以说明,该Groovy脚本包括Groovy脚本方法和Groovy 脚本用例,在初始化模块14初始化Jetty通知接收模块的参数后,即订阅MTOSI通知后,需要通过调用订阅的Groovy脚本方法向服务器发送订阅通知,具体实现方式为:通知接收模块13,还用于向脚本执行模块11发送第二订阅命令,该第二订阅命令中包括订阅的脚本方法,例如为订阅的Groovy脚本方法;脚本执行模块11,还用于根据第二订阅命令执行该订阅的Groovy脚本方法,并根据该订阅的Groovy脚本方法调用相应地订阅请求报文,例如为订阅的SOAP请求报文,该订阅的SOAP请求报文同样为以XML格式存储的文本文件,从而向命令执行模块12发送包括该订阅的SOAP请求报文的执行订阅命令;相应地,命令执行模块12,还用于根据订阅的SOAP请求报文执行HTTP请求调用,执行完成后将执行结果返回给脚本执行模块11。

需要说明的是,上述实施例中,无论是测试CORBA接口时初始化通知接收模块13,还是测试MTOSI接口或者SDN的北向时初始化通知接收模块13,目的都是需要接收服务器端的通知,该订阅通知的操作具体为北向接口测试装置与服务器之间的通知订阅。

更进一步地,图4和图5所示实施例中的北向接口测试装置还可以包括结果生成模块16,则脚本执行模块11,还用于在命令执行模块12将执行结果返回给脚本执行模块11之后,将该执行结果传输给结果生成模块16;相应地,结果生成模块16,用于输出执行结果,该执行结果包括已测试的所有北向接口,以及每个北向接口的测试次数和测试时间。另外,图4和图5所示实施例中的北向接口测试装置还可以包括记录模块17,则脚本执行模块11,还用于在执行脚本用例的过程中,将脚本用例的执行信息和异常信息发送给记录模块17;相应地,记录模块17,用于记录并展示脚本用例的执行信息和异常信息。

在具体实现中,脚本执行模块11执行完脚本用例后,可以通过结果生成模块16将测试结果以Web网页、文本或Excel等方式输出,以供测试人员查看执行结果,该执行结果中可以体现出每个脚本用例的执行情况,具体包括测试了哪些北向接口,以及测试的每个北向接口的测试次数和测试时间。另外,当脚本用例执行失败时,可以通过记录模块17所记录的信息查看相关异常运行状态。

本发明提供的各北向接口测试装置,具体从北向接口的特性出发,以北向接口协议的底层协议,即通讯接口为基础进行自动化用例测试,从而在脚本开发完成后,只需要进行请求报文编写和脚本用例编写,就可快速完成旧的脚本用例的变更,以及新的脚本用例开发,能与敏捷开发模式紧密结合,成倍的提高开发测试效率,有利于集成到持续集成系统中。另外,通过本发明实施例提供的北向接口测试装置,可以提供稳定的北向接口,同时适用于各种应用场景中脚本用例的自动化测试开发,可以相应地降低维护该北向接口测试装置所需的人力成本。

图6为本发明实施例提供的一种北向接口的测试方法的流程图。本实施例提供的方法适用于对北向接口的业务接口进行测试的情况中,该方法可以由北向接口测试装置执行,该北向接口测试装置通常以硬件和软件的方式实现,例如集成在测试设备的处理器中,供处理器调用执行。如图6所示,本实施例提供的方法具体包括以下步骤:

S110,脚本执行模块执行预先开发的脚本中的脚本用例,并根据脚本用例调用相应地请求报文。

S120,脚本执行模块向命令执行模块发送包括请求报文的执行命令。

S130,命令执行模块根据请求报文的内容执行相应的测试操作。

S140,命令执行模块将执行结果返回给所述脚本执行模块,该请求报文用于对当前测试的北向接口对应的通讯接口的能力进行测试。

本实施例中通过北向接口测试装置对北向接口的业务接口进行测试的应用场景同样可以参照上述图1所示的应用场景,其测试方式同样可以参照上述图3所示的测试原理图,即本实施例提供的北向接口的测试方法,在测试的过程中与具体的北向接口业务接口定义无关,只负责执行自动化测试脚本用例即可。

本发明实施例提供的北向接口的测试方法可以由本发明图2所示实施例提供的北向接口测试装置执行,该方法的各步骤与本发明实施例提供的北向接口测试装置中的各装置的功能对应,其实现原理和技术效果类似,此处不再赘述。

可选地,在上述图6所示实施例的基础上,若脚本执行模块当前执行的脚本用例中包括测试通知的任务,则本实施例提供的方法在S110之后,还包括:S111,脚本执行模块向通知接收模块发送第一订阅命令;S112,通知接收模块获取第一订阅命令指示的测试通知;S113,通知接收模块将获取的测试通知返回给脚本执行模块,本实施例中获取的测试通知具体为从服务器端接收到的通知;S114,脚本执行模块向通知接收模块发送取消订阅命令。

需要说明的是,本实施例不限制S111~S114与S120~S140的执行顺序,图6以S111~S114在S120~S140之前执行为例予以示出。

进一步地,本实施例提供的方法,在S110之前还包括:S101,初始化模块初始化脚本加载模块;S102,脚本加载模块加载预先开发的脚本中的脚本用例,具体地,脚本执行模块执行的脚本用例就是根据该脚本加载模块加载脚本中的各脚本用例所获取的,该脚本包括脚本用例和脚本方法,该脚本方法为脚本用例的执行方法;类似地,还包括S103,初始化模块初始化命令执行模块的参数;S104,初始化模块初始化通知接收模块的参数。需要说明的是,本实施例不限制初始化模块执行S101~S102与执行S103或S104的顺序,图6以S101~S104为顺序的执行方式为例予以示出。

在本发明实施例提供的北向接口的测试方法的一种具体应用中,如图7所示,为本发明实施例提供的另一种北向接口的测试方法的流程图。本实施例具体用于测试CORBA接口,则S110中脚本执行模块通过执行脚本用例调用到的请求报文具体为CORBA请求报文。则在上述图6所示实施例的基础上,S103可以替换为:根据服务器的IP和命名服务端口,初始化ORB;S104可以替换为:根据服务器通知的服务端口,通过OMG标准,指示通知接收模块调用接收服务器发送的通知,即订阅OMG通知,本实施例中的通知接收模块在初始化之后,一直处于接收OMG通知的状态,具体实现方式与上述实施例相同,故在此不再赘述。

需要说明的是,本实施例同样以脚本加载模块加载的脚本具体为Groovy脚本为例予以说明,该Groovy脚本包括Groovy脚本方法和Groovy脚本用例,本实施例具体对CORBA接口进行测试,即在执行每个Groovy脚本用例前,都需要先进行登录操作,具体地,本实施例提供的方法在S110之前还 包括:S105,初始化模块向脚本执行模块发送登陆命令,该登陆命令中包括登陆的Groovy脚本方法;S106,脚本执行模块根据登陆命令执行登陆的Groovy脚本方法,并根据登陆的Groovy脚本方法调用相应地登陆的CORBA请求报文,S107,脚本执行模块向命令执行模块发送包括登陆的CORBA请求报文的执行登陆命令;S108,命令执行模块根据接收到的登陆的CORBA请求报文执行CORBA的动态调用;S109,命令执行模块将执行结果返回给脚本执行模块。

本发明实施例提供的北向接口的测试方法可以由本发明图4所示实施例提供的北向接口测试装置执行,该方法的各步骤与本发明实施例提供的北向接口测试装置中的各装置的功能对应,其实现原理和技术效果类似,此处不再赘述。

类似地,在本发明实施例提供的北向接口的测试方法的另一种具体应用中,如图8所示,为本发明实施例提供的又一种北向接口的测试方法的流程图。本实施例具体用于测试MTOSI接口或者SDN的北向,则S110中脚本执行模块通过执行脚本用例调用到的请求报文具体为HTTP请求报文。则在上述图6所示实施例的基础上,S103可以替换为:初始化用于构造HTTP请求报文的URL;S104可以替换为:订阅MTOSI通知,从而指示通知接收模块持续接收服务器发送的通知。

需要说明的是,本实施例同样以脚本加载模块加载的脚本具体为Groovy脚本为例予以说明,该Groovy脚本包括Groovy脚本方法和Groovy脚本用例,在初始化模块初始化通知接收模块订阅MTOSI通知后,通知接收模块需要调用订阅的脚本方法,具体地,本实施例提供的方法在S104之后还包括:S105,通知接收模块向脚本执行模块发送第二订阅命令,该第二订阅命令中包括订阅的Groovy脚本方法;S106,脚本执行模块根据第二订阅命令执行订阅的Groovy脚本方法,并根据该订阅的Groovy脚本方法调用相应地订阅的SOAP请求报文,S107,脚本执行模块向命令执行模块发送包括订阅的SOAP请求报文的执行订阅命令;S108,命令执行模块根据订阅的SOAP请求报文执行HTTP请求调用;S109,命令执行模块将执行结果返回给脚本执行模块。

本发明实施例提供的北向接口的测试方法可以由本发明图5所示实施例提供的北向接口测试装置执行,该方法的各步骤与本发明实施例提供的北向接口测试装置中的各装置的功能对应,其实现原理和技术效果类似,此处不再赘述。

更进一步地,在上述各实施例提供的北向接口的测试方法的基础上,在S140和S109之后,均可以执行S150,脚本执行模块将执行结果传输给结果生成模块;S160,结果生成模块输出执行结果,该执行结果包括已测试的所有北向接口,以及每个北向接口的测试次数和测试时间。另外,在上述各实施例的基础上,脚本执行模块在执行脚本用例的过程中,还包括:脚本执行模块将脚本用例的执行信息和异常信息发送给记录模块;随后,记录模块记录并展示脚本用例的执行信息和异常信息。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1