分布式服务的测试方法和装置、计算机可读存储介质制造方法及图纸

技术编号:20517769 阅读:26 留言:0更新日期:2019-03-06 02:37
本发明专利技术公开了一种分布式服务的测试方法和装置、计算机可读存储介质,涉及互联网测试技术领域。该方法包括:解析配置文件,获取待测试服务对应的服务名、应用系统名和服务注册中心的地址;根据地址连接服务注册中心,并且根据服务名和应用系统名获取待测试服务的上下文;从上下文中获取待测试服务对应的接口方法;根据服务名、应用系统名和接口方法,通过Java的反射机制获取接口方法的入参类型,根据入参类型生成表单模板;根据用户基于表单模板构造的入参值生成请求表单;将请求表单注入接口方法的入参,并执行接口方法。该方法和装置能够提高测试的通用性和效率。

Testing methods and devices for distributed services and computer-readable storage media

The invention discloses a testing method and device for distributed services, a computer readable storage medium, and relates to the technical field of Internet testing. The method includes: parsing the configuration file, obtaining the service name, application system name and address of the service registry corresponding to the service to be tested; connecting the service registry according to the address, and obtaining the context of the service to be tested according to the service name and application system name; obtaining the interface method corresponding to the service to be tested from the context; and according to the service name, application system name and the interface party. Method: Obtain the input type of interface method through Java reflection mechanism, generate form template according to input type, generate request form according to input value constructed by user based on form template, inject request form into input of interface method, and execute interface method. This method and device can improve the universality and efficiency of testing.

【技术实现步骤摘要】
分布式服务的测试方法和装置、计算机可读存储介质
本专利技术涉及互联网测试
,特别涉及一种分布式服务的测试方法和装置、计算机可读存储介质。
技术介绍
当前基于RPC(RemoteProcedureCallProtocol,远程过程调用协议)的分布式微服务框架已经成为互联网应用服务主流。开源社区贡献了诸如Dubbo、DubboX、gRPC、Thrift和Montan等RPC分布式框架。从提高效率的角度出发,在RPC框架下的分布式微服务系统间多基于TCP(TransmissionControlProtocol,传输控制协议)协议进行通讯。为了验证分布式服务的功能,并对其性能进行诊断分析,需要对这些分布式服务进行测试。相关技术大都基于TCP协议针对RPC框架下的每个服务系统开发测试代码来进行测试。
技术实现思路
本专利技术的专利技术人发现上述相关技术中存在如下问题:针对RPC框架下的服务开发测试代码的过程极其繁琐而且不具有通用性,导致测试效率低下。针对上述问题中的至少一个问题,本专利技术人提出了解决方案。本专利技术的一个目的是提供一种高效率的分布式服务测试的技术方案。根据本专利技术的一个实施例,提供了一种分布式服务的测试方法,包括:解析配置文件,获取待测试服务对应的服务名、应用系统名和服务注册中心的地址;根据所述地址连接所述服务注册中心,并且根据所述服务名和所述应用系统名获取所述待测试服务的上下文;从所述上下文中获取所述待测试服务对应的接口方法;根据所述服务名、所述应用系统名和所述接口方法,通过Java的反射机制获取所述接口方法的入参类型,根据所述入参类型生成表单模板;根据用户基于所述表单模板构造的入参值生成请求表单;将所述请求表单注入所述接口方法的入参,并执行上述接口方法。可选地,从所述上下文中获取所述待测试服务对应的服务实例,并根据Java的反射机制从所述服务实例中获取所述接口方法。可选地,遍历所有所述入参类型,将所述入参类型序列化为入参字符串,所述入参字符串包括入参初始值和入参属性,所述表单模板由所述入参字符串组成。可选地,在配置文件中指定所述待测试服务对应的接口类,所述接口类中包括至少一个接口方法,所述服务名为所述接口类的名称;在配置文件中配置所述服务注册中心的地址。可选地,所述入参类型为Java的基础数据类型或根据所述待测试服务的需要定义的类。可选地,将所述服务名、所述应用系统名和所述接口方法放入全局缓存中,其中,在获取所述接口方法的入参类型时调用所述全局缓存。根据本专利技术的另一个实施例,提供一种分布式服务的测试装置,包括:解析模块,用于解析配置文件,获取待测试服务对应的服务名、应用系统名和服务注册中心的地址,根据所述地址连接所述服务注册中心,并且根据所述服务名和所述应用系统名获取所述待测试服务的上下文,从所述上下文中获取所述待测试服务对应的接口方法;表单生成模块,用于根据所述服务名、所述应用系统名和所述接口方法,通过Java的反射机制获取所述接口方法的入参类型,根据所述入参类型生成表单模板,并根据用户构造的所述表单模板的入参值生成请求表单;服务测试模块,用于将所述请求表单作注入所述接口方法的入参,并执行上述接口方法。可选地,所述解析模块从所述上下文中获取所述待测试服务对应的服务实例,并根据Java的反射机制从所述服务实例中获取所述接口方法。可选地,所述表单生成模块遍历所有所述入参类型,将所述入参类型序列化为入参字符串,所述入参字符串包括入参初始值和入参属性,所述表单模板由所述入参字符串组成。可选地,配置模块,用于在配置文件中指定所述待测试服务对应的接口类,所述接口类中包括至少一个接口方法,所述服务名为所述接口类的名称,并配置所述服务注册中心的地址。可选地,所述入参类型为Java的基础数据类型或根据所述待测试服务的需要定义的类。可选地,所述解析模块将所述服务名、所述应用系统名和所述接口方法放入全局缓存中,所述表单生成模块在获取所述接口方法的入参类型时,调用所述全局缓存。根据本专利技术的又一个实施例,提供一种分布式服务的测试装置,包括:存储器以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器装置中的指令,执行上述任一实施例中的分布式服务的测试方法。根据本专利技术的再一个实施例,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例中的分布式服务的测试方法。本专利技术的一个优点在于,根据待测试服务对应的服务名、应用系统名和接口方法,通过Java的反射机制构造请求表单作为待测试服务对应的接口方法的入参,可以在无需针对具体的待测试服务开发测试代码的情况下以完成服务测试,从而提高了测试的通用性和效率。附图说明构成说明书的一部分的附图描述了本专利技术的实施例,并且连同说明书一起用于解释本专利技术的原理。参照附图,根据下面的详细描述,可以更加清楚地理解本专利技术,其中:图1示出本专利技术的分布式服务的测试方法的一个实施例的流程图。图2示出本专利技术的分布式服务的测试方法的GUI的一个实施例的示意图。图3示出本专利技术的分布式服务的测试装置的一个实施例的结构图。图4示出本专利技术的分布式服务的测试装置的另一个实施例的结构图。具体实施方式现在将参照附图来详细描述本专利技术的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本专利技术的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本专利技术及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。图1示出本专利技术的分布式服务的测试方法的一个实施例的流程图。如图1所示,在步骤110中,解析配置文件。通过步骤110,可以获取待测试服务对应的服务名、应用系统名和服务注册中心的地址。例如,在基于RPC的分布式微服务框架下,应用系统(如计费系统等)中包含至少一个服务,每个服务都对应一个程序中的接口类,每个接口类中可以包含至少一个接口方法,每个接口方法都能够实现相应的操作或者功能,从而满足服务的需求。在一个实施例中,可以预先在配置文件中指定待测试服务对应的接口类,服务名可以为接口类的名称。配置文件可以是Java中的Config组件。接口类为一个接口封装,可以把复杂的业务逻辑对用户透明化,以方便用户调用,这些接口类的名称可以包含固定的关键字(如facade)以方便维护。例如,接口类的名称可以为IAttrQueryFacade。还可以在配置文件中配置服务注册中心的地址。服务注册中心可以是Zookeeper。仅得到待测试服务的服务名还是无法对其进行测试,还需要获取该服务名对应的服务实例(如接口类IAttrQueryFacade的实现类的实例)。即,还需要通过下面的步骤获取待本文档来自技高网...

【技术保护点】
1.一种分布式服务的测试方法,包括:解析配置文件,获取待测试服务对应的服务名、应用系统名和服务注册中心的地址;根据所述地址连接所述服务注册中心,并且根据所述服务名和所述应用系统名获取所述待测试服务的上下文;从所述上下文中获取所述待测试服务对应的接口方法;根据所述服务名、所述应用系统名和所述接口方法,通过Java的反射机制获取所述接口方法的入参类型,根据所述入参类型生成表单模板;根据用户基于所述表单模板构造的入参值生成请求表单;将所述请求表单注入所述接口方法的入参,并执行所述接口方法。

【技术特征摘要】
1.一种分布式服务的测试方法,包括:解析配置文件,获取待测试服务对应的服务名、应用系统名和服务注册中心的地址;根据所述地址连接所述服务注册中心,并且根据所述服务名和所述应用系统名获取所述待测试服务的上下文;从所述上下文中获取所述待测试服务对应的接口方法;根据所述服务名、所述应用系统名和所述接口方法,通过Java的反射机制获取所述接口方法的入参类型,根据所述入参类型生成表单模板;根据用户基于所述表单模板构造的入参值生成请求表单;将所述请求表单注入所述接口方法的入参,并执行所述接口方法。2.根据权利要求1所述的测试方法,其中,获取接口方法包括:从所述上下文中获取所述待测试服务对应的服务实例,并根据Java的反射机制从所述服务实例中获取所述接口方法。3.根据权利要求1所述的测试方法,其中,生成表单模板包括:遍历所有所述入参类型,将所述入参类型序列化为入参字符串,所述入参字符串包括入参初始值和入参属性,所述表单模板由所述入参字符串组成。4.根据权利要求1所述的测试方法,还包括:在配置文件中指定所述待测试服务对应的接口类,所述接口类中包括至少一个接口方法,所述服务名为所述接口类的名称;在配置文件中配置所述服务注册中心的地址。5.根据权利要求1-4任一项所述的测试方法,其中,所述入参类型为Java的基础数据类型或根据所述待测试服务的需要定义的类。6.根据权利要求1-4任一项所述的测试方法,还包括:将所述服务名、所述应用系统名和所述接口方法放入全局缓存中,其中,在获取所述接口方法的入参类型时调用所述全局缓存。7.一种分布式服务的测试装置,包括:解析模块,用于解析配置文件,获取待测试服务对应的服务名、应用系统名和服务注册中心的地址,根据所述地址连接所述服务注册中心,并且根据所述服务名和所述应用系统名获取...

【专利技术属性】
技术研发人员:陈志勇李亚锋
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1