一种组件接口测试分析方法、装置、服务器以及存储介质制造方法及图纸

技术编号:27006136 阅读:13 留言:0更新日期:2021-01-08 17:09
本发明专利技术实施例公开了一种组件接口测试分析方法、装置、服务器以及存储介质。该方法包括:扫描分布式架构下各个组件的源代码包,获取各个组件的接口调用关系,统计去重后所有组件的接口调用关系数量,得到设计态接口调用关系数量;从服务调度中心获取处于运行状态的所有组件的不重复的接口调用关系,统计不重复的接口调用关系的数量,得到运行态接口调用关系数量,其中,服务调度中心用于从数据库中获取各个处于运行状态的组件的接口调用关系;确定运行态接口调用关系数量与设计态接口调用关系数量的比例关系,将比例关系作为分布式架构下所有组件接口的测试覆盖率。通过度量所有组件接口的测试覆盖率,实现度量分布式架构组件之间的测试充分性。

【技术实现步骤摘要】
一种组件接口测试分析方法、装置、服务器以及存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种组件接口测试分析方法、装置、服务器以及存储介质。
技术介绍
随着微服务和敏捷研发模式的盛行,各个互联网公司、商业银行等头部IT企业基本都转向了多项目组协同开发的分布式、频繁迭代的研发模式。这种研发模式有很多优点,比如可以更快速灵活的响应外部市场环境的变化,更早的交付客户价值,微服务松耦合的开发部署方式使得每一个组件可以由不同的团队、不同的编程语言独立进行开发和部署、降低了单个组件的复杂度等。这种跨组件跨组织的研发模式会给不同组件之间接口调用的开发测试工作带来很多挑战。目前,可以采用链路跟踪技术定位组件中的每个服务调用了哪些外部服务,进而,可以基于定位结果进行接口之间的测试。现有的链路跟踪技术,最早由Google在2010年提出,当时Google发布了一篇Dapper论文,介绍了自研的分布式链路追踪的实现原理,还介绍了他们是怎么低成本实现对应用透明的。除了Google的dapper,还有一些其他比较有名的链路追踪产品,比如阿里的鹰眼、大众点评的CAT、Twitter的Zipkin以及国产开源的skywalking等。然而,分布式架构下单个组件的项目组只维护了本业务领域的服务,有大量的功能需要调用外组件的服务才能完成。不同组件间接口之间的测试是一个非常重要但是容易被忽视的问题,各个项目组通常都会对自己本组件发布的接口或者服务做充分的测试,但是由于组织的割裂关系会导致信息的割裂,外部接口的测试一般会做的比较薄弱。因此,如何度量分布式架构组件之间测试是否充分成为亟待解决的问题。
技术实现思路
本专利技术实施例提供一种组件接口测试分析方法、装置、服务器以及存储介质,可以实现度量分布式架构组件之间的测试充分性。第一方面,本专利技术实施例提供了一种组件接口测试分析方法,包括:扫描分布式架构下各个组件的源代码包,获取各个所述组件的接口调用关系,统计去重后所有组件的接口调用关系数量,得到设计态接口调用关系数量;从服务调度中心获取处于运行状态的所有组件的不重复的接口调用关系,统计所述不重复的接口调用关系的数量,得到运行态接口调用关系数量,其中,所述服务调度中心用于从数据库中获取各个所述处于运行状态的组件的接口调用关系;确定所述运行态接口调用关系数量与设计态接口调用关系数量的比例关系,将所述比例关系作为所述分布式架构下所有组件接口的测试覆盖率。第二方面,本专利技术实施例还提供了一种组件接口测试分析装置,包括:设计态统计模块,用于扫描分布式架构下各个组件的源代码包,获取各个所述组件的接口调用关系,统计去重后所有组件的接口调用关系数量,得到设计态接口调用关系数量;运行态统计模块,用于从服务调度中心获取处于运行状态的所有组件的不重复的接口调用关系,统计所述不重复的接口调用关系的数量,得到运行态接口调用关系数量,其中,所述服务调度中心用于从数据库中获取各个所述处于运行状态的组件的接口调用关系;覆盖率确定模块,用于确定所述运行态接口调用关系数量与设计态接口调用关系数量的比例关系,将所述比例关系作为所述分布式架构下所有组件接口的测试覆盖率。第三方面,本专利技术实施例还提供了一种服务器,所述服务器包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术任意实施例提供的组件接口测试分析方法。第四方面,本专利技术实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本专利技术任意实施例提供的组件接口测试分析方法。本专利技术实施例通过从分布式架构下各个组件的源代码包中获取各个组件的接口调用关系并统计数量,得到设计态接口调用关系数量,从服务调用中心获取处于运行状态的所有组件的不重复的接口调用关系并统计数量,得到运行态接口调用关系数量,将运行态接口调用关系数量与设计态接口调用关系数量的比例关系作为分布式架构下所有组件接口的测试覆盖率,本专利技术实施例通过度量所有组件接口之间的测试覆盖率,度量分布式架构组件之间的测试充分性,便于用户及时发现组件间的接口调用问题,及时修复问题,提高后期整体集成阶段的测试质量。附图说明图1是本专利技术实施例一提供的一种组件接口测试分析方法的流程图;图2是本专利技术实施例二提供的另一种组件接口测试分析方法的流程图;图3是本专利技术实施例三提供的又一种组件接口测试分析方法的流程图;图4是本专利技术实施例四提供的一种组件接口测试分析装置的结构示意图;图5为本专利技术实施例五提供的一种服务器的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1是本专利技术实施例一提供的一种组件接口测试分析方法的流程图,本实施例可适用于分布式架构组件间接口测试的情况,该方法可以由组件接口测试分析装置来执行,该装置可以采用软件和/或硬件的方式实现。该装置可配置于服务器中。如图1所示,该方法包括:步骤S101、扫描分布式架构下各个组件的源代码包,获取各个组件的接口调用关系,统计去重后所有组件的接口调用关系数量,得到设计态接口调用关系数量。在微服务和敏捷研发模式下,每个组件可以由不同团队和不同的编程语言独立进行开发和部署。微服务最早由MartinFowler与JamesLewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是超文本传送协定应用程序编程接口(HyperTextTransferProtocolApplicationProgrammingInterface,HTTPAPI),这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征,敏捷研发力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。组件是对数据和方法的封装,例如业务组件是对相关数据和方法的封装,可以提供多个业务功能。服务是组件暴露在外部的接口,用于和其他组件相互调用,当组件中的某个或某些方法可重复时,组件可以开放一个服务。一个组件可以有0个、1个或多个服务,不同的组件之间可以通过服务进行相互调用。设计态接口调用关系是各个组件的源代码包中包含的不重复的接口调用关系,用于确定各个组件间接口调用均正常运行时所有组件的不重复的本文档来自技高网
...

【技术保护点】
1.一种组件接口测试分析方法,其特征在于,包括:/n扫描分布式架构下各个组件的源代码包,获取各个所述组件的接口调用关系,统计去重后所有组件的接口调用关系数量,得到设计态接口调用关系数量;/n从服务调度中心获取处于运行状态的所有组件的不重复的接口调用关系,统计所述不重复的接口调用关系的数量,得到运行态接口调用关系数量,其中,所述服务调度中心用于从数据库中获取各个所述处于运行状态的组件的接口调用关系;/n确定所述运行态接口调用关系数量与设计态接口调用关系数量的比例关系,将所述比例关系作为所述分布式架构下所有组件接口的测试覆盖率。/n

【技术特征摘要】
1.一种组件接口测试分析方法,其特征在于,包括:
扫描分布式架构下各个组件的源代码包,获取各个所述组件的接口调用关系,统计去重后所有组件的接口调用关系数量,得到设计态接口调用关系数量;
从服务调度中心获取处于运行状态的所有组件的不重复的接口调用关系,统计所述不重复的接口调用关系的数量,得到运行态接口调用关系数量,其中,所述服务调度中心用于从数据库中获取各个所述处于运行状态的组件的接口调用关系;
确定所述运行态接口调用关系数量与设计态接口调用关系数量的比例关系,将所述比例关系作为所述分布式架构下所有组件接口的测试覆盖率。


2.根据权利要求1所述的方法,其特征在于,在扫描分布式架构下各个组件的源代码包,获取各个所述组件的接口调用关系之后,还包括:
根据各个所述组件的接口调用关系,确定所有组件的第一参考接口调用关系;
过滤重复的第一参考接口调用关系,得到去重后所有组件的接口调用关系。


3.根据权利要求1所述的方法,其特征在于,所述从服务调度中心获取处于运行状态的所有组件的不重复的接口调用关系,包括:
从服务网关中获取处于运行状态的所有组件的第二参考接口调用关系;
过滤重复的第二参考接口调用关系,得到处于运行状态的所有组件的不重复的接口调用关系。


4.根据权利要求3所述的方法,其特征在于,在从服务网关中获取处于运行状态的所有组件的第二参考接口调用关系之前,还包括:
在检测到接口调用事件时,通过服务网关将所述接口调用事件对应的接口调用关系发送给数据库,以通过数据库存储各个处于运行状态的组件的不重复的接口调用关系;
在检测到测试事件触发时,指示所述服务网关从所述数据库中获取所述处于运行状态的各个组件的接口调用关系。


5.根据权利要求1所述的方法,其特征在于,所述从服务调度中心获取处于运行状态的所有组件的不重复的接口调用关系,包括:
从应用性能管理装置中抓取处于运行状态下的接口调用链路数据;
拆解所述接口调用链路数据,得到各个所述组件的第三参考接口调用关系;
过滤重复的第三参考接口调用关系,得到处于运行状态的所有组件的不重复的接口调用关系。


6.根据权利要求1所述的方法,其特征在于,所述扫描分布式架构下各个组件的源代码包,获取各个所述组件的接口调用关系,包括:
获取分布式架构下各个组件的源代码包;
扫描各个所述组件的源代码包,获取与同一组件内各个服务消费者具有调用关系的服务生产者,其中,所述服务消费者用于表示接口调用的调用发起方,所述服务生产者用于表示接口调用的被调用方;
汇总同一组件内所有所述服务消费者与服务生产者之间的调用关系,确定各个所述组件的接口调用关系。


7.根据权利要求6所述的方法,其特征在于,在汇总同一组件内所有所述服务消费者与服务生产者之间的调用关系,确定各个所述组件的接口调用关系之后,还包括:
汇总各个所述组件的接口调用关系,确定所述分布式架构下所有组件的接口调用关系。...

【专利技术属性】
技术研发人员:尹盛
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:上海;31

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

1