一种自动化服务测试工具生成方法与流程

文档序号:15492252发布日期:2018-09-21 20:51阅读:155来源:国知局

本发明涉及测试领域,具体而言,涉及一种自动化服务测试工具生成方法、装置、设备及介质。



背景技术:

术语解释

pe:旅客服务引擎;

spring:一种java开源框架,广泛用于服务接口;

httpinvoker:一种同步的服务发布框架,由spring中间件发布提供。

html:超文本标记语言,能通过浏览器显示可视化内容。

java语言反射机制:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

pe后台服务系统大量使用spring进行服务发布,服务发布后的验证过程目前只能通过单独的开发去验证服务是否发布成功、是否可用。

springhttpinvoker是基于http协议发布二进制的服务调用方法,一旦服务发布成功后,在服务契约约束的范围内,可供使用者调用。如何测试服务发布成功则需服务开发者通过针对具体的服务进行测试工具的开发,耗费大量精力。



技术实现要素:

本发明提供了一种自动化服务测试工具生成方法、装置、设备及介质,以至少解决相关技术中服务发布接口测试效率低的问题。

第一方面,本发明实施例提供了一种自动化服务测试工具生成方法,包括:

查询服务容器中已注册服务的接口列表;

通过java语言的反射机制,获取所述接口列表中每个接口所采用的所有属性和方法;

生成动态html页面,所述动态html页面即为自动化服务测试工具,所述动态html页面包括所述接口列表,以及用于测试所述接口列表中每个接口所采用的所有属性和方法的测试界面。

第二方面,本发明实施例提供了一种自动化服务测试工具生成装置,所述装置包括:

查询模块,用于查询服务容器中已注册服务的接口列表;

获取模块,用于通过java语言的反射机制,获取所述接口列表中每个接口所采用的所有属性和方法;

生成模块,用于生成动态html页面,所述动态html页面即为自动化服务测试工具,所述动态html页面包括所述接口列表,以及用于测试所述接口列表中每个接口所采用的所有属性和方法的测试界面。

第三方面,本发明实施例提供了一种自动化服务测试工具生成设备,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现第一方面所述的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现第一方面所述的方法。

通过本发明实施例提供的自动化服务测试工具生成方法、装置、设备及介质,采用查询服务容器中已注册服务的接口列表;通过java语言的反射机制,获取接口列表中每个接口所采用的所有属性和方法;生成动态html页面,动态html页面即为自动化服务测试工具,动态html页面包括接口列表,以及用于测试接口列表中每个接口所采用的所有属性和方法的测试界面的方式,解决了服务发布接口测试效率低的问题,提高了服务发布接口测试效率。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的自动化服务测试工具生成方法的流程图;

图2是根据本发明实施例的动态html页面的示意图;

图3是根据本发明实施例的后台处理的流程图;

图4是根据本发明实施例的自动化服务测试工具生成装置的结构示意图;

图5是根据本发明实施例的自动化服务测试工具应用在spring服务内置框架中的示意图;

图6是根据本发明实施例的动化服务测试工具生成设备的硬件结构示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

针对现有技术中对具体的业务功能开发单独的工具去测试服务,重复开发成本较高的问题,在本发明实施例中通过java反射机制结合动态html页面,能够解决行数问题,并方便开发人员测试;本实施例提供的方案亦可在维护过程中使用。

在本实施例中提供了一种自动化服务测试工具生成方法,图1是根据本发明实施例的自动化服务测试工具生成方法的流程图,如图1所示,该流程包括如下步骤:

步骤s101,查询服务容器中已注册服务的接口列表;

步骤s102,通过java语言的反射机制,获取接口列表中每个接口所采用的所有属性和方法;

步骤s103,生成动态html页面,动态html页面即为自动化服务测试工具,动态html页面包括接口列表,以及用于测试接口列表中每个接口所采用的所有属性和方法的测试界面。

通过上述步骤,通过java语言的反射机制获取发布到服务容器中的接口所采用的所有属性和方法,并生成用于测试这些接口的动态html页面;相对于现有技术中在进行接口测试时,需要查阅对接口的介绍,并根据接口所采用的属性和方法逐一开发对应的测试工具的方式而言,采用上述步骤生成的动态html页面利用了java语言的反射机制,对于测试工具的生成者而言无需了解接口的具体属性和采用的方法。通过上述步骤,解决了服务发布接口测试效率低的问题,提高了服务发布接口测试效率。

可选地,生成的动态html页面如图2所示,页面中至少包括两个界面:接口界面和测试界面。接口界面中列出了该已注册服务的接口列表,对于接口列表中的每一个接口中的每一个方法,都具有一个对应地用于测试该方法的测试界面。测试界面列出了该方法中的每个属性以及对应于属性的输入框。利用这样的动态html页面结合页面后台的处理,就能够测试已注册服务的每一个接口以及每一个接口所采用的所有属性和方法。

参考图3,可选地,上述的页面后台的处理包括:通过测试界面中对应于一个接口所采用的一个方法的输入界面,接收用于测试一个方法的输入数据,即接收测试界面中的输入框中输入的输入数据;将输入数据按照输入数据对应的属性,组装成java对象的结构体;通过java语言的反射机制,使用结构体调用服务容器的一个方法;接收服务容器返回的结果;将结果发送给动态html页面,以通过动态html页面显示结果。对于html页面而言,将结果渲染显示到动态html页面上就能够将结果显示给用户。

可选地,输入数据为字符串格式的数据。相对于输入复杂java对象的测试方式而言,将java对象的组装采用后台的处理来实现,从而使得输入数据可以采用更容易理解的字符串格式的数据,为测试者提供了更友好的测试体验。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

在本实施例中还提供了一种自动化服务测试工具生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”或者“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是根据本发明实施例的自动化服务测试工具生成装置的结构框图,如图4所示,该装置包括:

查询模块41,用于查询服务容器中已注册服务的接口列表;

获取模块42,用于通过java语言的反射机制,获取接口列表中每个接口所采用的所有属性和方法;

生成模块43,用于生成动态html页面,动态html页面即为自动化服务测试工具,动态html页面包括接口列表,以及用于测试接口列表中每个接口所采用的所有属性和方法的测试界面。

可选地,装置还包括:测试模块,用于利用动态html页面测试已注册服务的一个接口以及一个接口所采用的所有属性和方法。

可选地,测试模块利用动态html页面测试已注册服务的一个接口以及一个接口所采用的所有属性和方法包括:通过测试界面中对应于一个接口所采用的一个方法的输入界面,接收用于测试一个方法的输入数据;将输入数据按照输入数据对应的属性,组装成java对象的结构体;通过java语言的反射机制,使用结构体调用服务容器的一个方法;接收服务容器返回的结果;将结果发送给动态html页面,以通过动态html页面显示结果。

可选地,输入数据为字符串格式的数据。

图5是根据本发明实施例的自动化服务测试工具应用在spring服务内置框架中的示意图。如图5所示,自动化服务测试工具是指工具扩展框架中的page1和page2,相当于上述的动态html页面,这些动态html页面由动态页面生成器生成,动态页面生成器相当于上述的生成模块43;服务查询及反射处理模块用于实现查询模块41、获取模块42以及测试模块的功能。

其中工具扩展框架是可以移植的,除page之外的工具扩展框架中其他的部分均无需考虑已注册服务的详细信息,而page则由工具扩展框架根据已注册服务的详细信息自动生成。可见,采用上述的工具扩展框架能够针对不同的已注册服务实现自动化服务测试工具的生成。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。

另外,结合图1描述的本发明实施例的自动化服务测试工具生成方法可以由自动化服务测试工具生成设备来实现。图6示出了本发明实施例提供的自动化服务测试工具生成设备的硬件结构示意图。

自动化服务测试工具生成设备可以包括处理器61以及存储有计算机程序指令的存储器62。

具体地,上述处理器61可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。

存储器62可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器62可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器62可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器62可在数据处理装置的内部或外部。在特定实施例中,存储器62是非易失性固态存储器。在特定实施例中,存储器62包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。

处理器61通过读取并执行存储器62中存储的计算机程序指令,以实现上述实施例中的任意一种自动化服务测试工具生成方法。

在一个示例中,自动化服务测试工具生成设备还可包括通信接口63和总线60。其中,如图6所示,处理器61、存储器62、通信接口63通过总线60连接并完成相互间的通信。

通信接口63,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。

总线60包括硬件、软件或两者,将自动化服务测试工具生成设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线60可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

该自动化服务测试工具生成设备可以基于获取到的数据,执行本发明实施例中的自动化服务测试工具生成方法,从而实现结合图1描述的自动化服务测试工具生成方法。

另外,结合上述实施例中的自动化服务测试工具生成方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种自动化服务测试工具生成方法。

综上所述,通过本发明的上述实施例或者实施方式,通过结合java反射机制和spring内置容器获取httpinvoker服务发布详细内容,以及使用html与服务详细内容结合生成动态html页面,一方面,图形化的测试工具能够便于测试者的查看以及处理,另一方面,自动化生成测试工具还提高了测试效率。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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