一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

接口属性的一致性校验方法、装置、电子设备和存储介质与流程

2022-04-24 18:22:08 来源:中国专利 TAG:
1.本技术涉及计算机
技术领域
:,尤其涉及一种接口属性的一致性校验方法、装置、电子设备和存储介质。
背景技术
::2.随着互联网技术的发展,通常在进行业务系统开发时,都涉及到接口的开发。鉴于目前各产品逻辑复杂,接口设计链路深,或存在接口属性定义不一致的情况。相关技术中接口属性的测试手段通常以单接口视角检验接口入参,接口参数定义与db(database,数据库)定义也是分隔开来判断。在进行接口属性校验时,由人工校验定义是否一致,因而需要投入较大的人力,测试效率低。因此,如何实现系统自适应的接口属性的一致性校验以提高检测效率,已成为亟待解决的技术问题。技术实现要素:3.本技术实施例提供一种接口属性的一致性校验方法、装置、电子设备和存储介质,用以提高接口属性的一致性校验效率。4.本技术实施例提供的一种接口属性的一致性校验方法,包括:5.通过对多个待测试接口的接口文档进行解析,得到在不同的待测试接口中定义的相同接口字段的属性信息;6.将相同接口字段在不同的待测试接口中定义的属性信息进行比较,得到在不同的待测试接口中属性信息定义一致的目标接口字段,其中所述属性信息包括字段长度和字段类型;7.通过对与各个待测试接口相关联的数据库的库表信息进行分析,得到所述目标接口字段在各个数据库中映射得到的数据库字段;8.分别校验各个目标接口字段以及与各个目标接口字段相映射的数据库字段之间字段长度的一致性,和字段类型的一致性;9.针对任意一个目标接口字段,若所述目标接口字段以及与所述目标接口字段相映射的数据库字段的字段长度一致,且字段类型一致,则校验得到所述目标接口字段与所述数据库字段的属性相同,针对所述目标接口字段的一致性校验结果为校验成功。10.本技术实施例提供的一种接口属性的一致性校验装置,包括:11.解析单元,用于通过对多个待测试接口的接口文档进行解析,得到在不同的待测试接口中定义的相同接口字段的属性信息;12.比较单元,用于将相同接口字段在不同的待测试接口中定义的属性信息进行比较,得到在不同的待测试接口中属性信息定义一致的目标接口字段,其中所述属性信息包括字段长度和字段类型;13.获取单元,用于通过对与各个待测试接口相关联的数据库的库表信息进行分析,得到所述目标接口字段在各个数据库中映射得到的数据库字段;14.校验单元,用于分别校验各个目标接口字段以及与各个目标接口字段相映射的数据库字段之间字段长度的一致性,和字段类型的一致性;针对任意一个目标接口字段,若所述目标接口字段以及与所述目标接口字段相映射的数据库字段的字段长度一致,且字段类型一致,则校验得到所述目标接口字段与所述数据库字段的属性相同,针对所述目标接口字段的一致性校验结果为校验成功。15.可选的,所述获取单元具体用于:16.基于所述库表信息对各个数据库的分库分表进行分类去重,并对去重后剩余的各个数据表中的参数进行格式化;17.通过对格式化后的各个数据表中定义的相同数据库字段的属性信息进行比较,得到在不同的数据表中属性信息定义一致的目标数据库字段;18.建立所述目标接口字段与所述目标数据库字段之间的映射关系,并基于所述映射关系获取所述目标接口字段在各个数据库中映射得到的数据库字段。19.可选的,所述获取单元具体用于:20.对于存在字段名称与目标数据库字段相同的目标接口字段,则直接建立所述目标数据库字段与所述目标接口字段之间的映射关系;21.对于不存在字段名称与目标数据库字段相同的目标接口字段,则基于各个数据表的日志信息,建立所述目标数据库字段与所述目标接口字段之间的映射关系。22.可选的,所述获取单元具体用于:23.基于各个数据表的日志信息,查询与各个数据表对应的接口服务;24.建立各个数据表以及与所述接口服务对应的待测试接口之间的映射关系;25.基于各个数据表与所述待测试接口之间的映射关系,分别建立各个数据表中的目标数据库字段与对应的待测试接口中的目标接口字段之间的映射关系。26.可选的,所述解析单元还用于:27.将相同接口字段在不同的待测试接口中定义的属性信息进行比较,得到在不同的待测试接口中属性信息定义不一致的接口字段,与未定义属性信息的接口字段中的一种或多种;28.将得到的接口字段进行错误标记,并进行展示。29.可选的,所述获取单元还用于:30.通过对格式化后的各个数据表中定义的相同数据库字段的属性信息进行比较,得到在不同的数据表中属性信息定义不一致的数据库字段,与未定义属性信息的数据库字段中的一种或多种;31.将获取到的数据库字段进行错误标记,并进行展示。32.本技术实施例提供的一种电子设备,包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述任意一种接口属性的一致性校验方法的步骤。33.本技术实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任意一种接口属性的一致性校验方法的步骤。34.本技术实施例提供一种计算机可读存储介质,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行上述任意一种接口属性的一致性校验方法的步骤。35.本技术有益效果如下:36.本技术实施例提供的接口属性的一致性校验方法、装置、电子设备和存储介质。在本技术实施例中,通过识别待测试接口的接口文档,以及分析相关数据库的库表信息,来筛选出在不同的待测试接口中定义的相同接口字段中属性信息定义一致的目标接口字段,以及与目标接口字段相映射的数据库字段,采用系统自适应的方式,实现了将数据库定义与接口参数定义放在同一维度进行校验,杜绝因定义不一致导致数据库存储内容截断,程序异常退出的情况。本技术实施例能够在无人工参与的情况下,以分钟级别完成接口级别全链路参数校验,以小时级别完成接口与数据库间一致性校验,大大减少了人力投入,有效提高了接口属性一致性校验的校验效率。37.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明38.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:39.图1为本技术实施例中的一种应用场景的一个可选的示意图;40.图2为本技术实施例中的一种接口属性的一致性校验方法的流程示意图;41.图3为本技术实施例中的一种获取数据库字段的方法的流程示意图;42.图4为本技术实施例中的一种接口和数据库的字段之间的映射关系示意图;43.图5为本技术实施例中的一个系统架构图;44.图6为本技术实施例中的一种接口属性一致性校验的完整方法流程图;45.图7为本技术实施例中的一种接口属性的一致性校验装置的组成结构示意图;46.图8为应用本技术实施例的一种电子设备的一个硬件组成结构示意图。具体实施方式47.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术技术方案的一部分实施例,而不是全部的实施例。基于本技术文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术技术方案保护的范围。48.下面对本技术实施例中涉及的部分概念进行介绍。49.接口幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。以支付场景为例,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条…,这就没有保证接口的幂等性。50.接口测试:是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。51.接口文档:指由开发或者对应的技术负责人员编写的接口文档,里面会注明接口相关的地址、参数类型、方法、输入、输出等信息。接口文档的两个主要要素为功能描述以及接口参数说明,其中功能描述是指简洁清晰的描述接口功能,比如:接口获取的信息不包括哪些;接口参数说明指每个参数都要和实际中调用的一样,包括大小写;参数的含义言简意赅的说明,格式,是string(字符串)还是int(整型)还是long(长整型)等格式;说明部分,说明参数值是需要哪里提供,并详细说明参数怎么生成的,例如时间戳,是哪个时间段的,参数是否必填,一些参数是必须要有的,有些是可选参数等。在本技术实施例中,主要基于接口文档分析得到各个接口字段的属性信息,具体包括字段长度、字段类型等等。52.键值(key):是windows(一种操作系统)中注册表中的概念。键值位于注册表结构链末端,和文件系统的文件类似,包含当前计算机及应用程序执行时使用的实际配置信息和数据。键值包含几种字段类型,以适应不同环境的使用需求。注册表中,是通过键和子键来管理各种信息。同时,在注册表里面的所有信息是以各种形式的键值项数据保存下来。在注册表编辑器的右窗口中,保存的都是各种键值项数据。键值项由键值名、字段类型和键值三部分组成,其格式为:"键值名:字段类型:键值"。在本技术实施例中,可以字段为键值,对数据库的分库分别进行分类,对接口进行分类等等。53.数据库:是按照数据结构来组织、存储和管理数据的仓库。数据库从广义上来讲是存储数据的东西,狭义上来讲是存储在计算机中的结构化的表格。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜,存储电子文件的处所,但是在文件中读写数据速度相对较慢。用户可以对文件中的数据进行新增、查询、更新、删除等操作。数据库的目的是记录信息,意义是获取分析。54.数据表:表是数据的矩阵。是一个临时保存数据的网格虚拟表(表示内存中数据的一个表)。它无须代码就可以简单的绑定数据库。数据表是由表名、表中的字段和表的记录三个部分组成的。在本技术实施例中,一个数据库中可以有多个数据表。55.字段:其概念是一个成员,它表示与对象或类关联的变量。表中的每一行叫做一个“记录”,每一个记录包含这行中的所有信息,就像在通讯录数据库中某个人全部的信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。字段是比记录更小的单位,字段集合组成记录,每个字段描述文献的某一特征,即数据项,并有唯一的供计算机识别的字段标识符。一般类或结构中定义的变量和常量叫字段。56.下面对本技术实施例的设计思想进行简要介绍:57.随着互联网技术的发展,通常在进行业务系统开发时,都涉及到接口的开发,每个接口都需要进行参数的配置。当参数配置完成时,才能使用接口,通过使用接口来进行数据之间的传递。对于较为复杂的业务系统,同时需要配置多个接口,每个接口都有不同的参数。接口参数中会定义一个或多个接口字段。58.在前后端分离的web(worldwideweb,万维网)开发模式中,开发人员通常需要定义接口文档来规范其接口形式,如接口地址、参数、类型、含义等。鉴于目前各产品逻辑复杂,接口设计链路深,或存在接口调用前后字段长度限制不一致,多数据表间相同字段定义不一致,以及接口定义与db定义不一致的情况。59.目前对于接口长度校验一般采用接口测试的方式,接口长度限制也通常是参考开发提供的设计文档,这将导致接口间比对不充分以及参考资料不准确的情况,因此以系统自适应方式全局校验长度是非常有必要的。另外,目前的测试手段通常以单接口视角检验接口入参,接口参数定义与db定义也是分隔开来判断。在进行接口的字段长度校验时,若人工校验字段长度是否一致,人力投入较大;若忽略,或造成字段截断、流程终止、接口不支持幂等性等现象。60.有鉴于此,本技术实施例提出了一种接口属性的一致性校验方法、装置、电子设备和存储介质。在本技术实施例中,通过识别待测试接口的接口文档,以及分析相关数据库的库表信息,来筛选出在不同的待测试接口中定义的相同接口字段中属性信息定义一致的目标接口字段,以及与目标接口字段相映射的数据库字段,采用系统自适应的方式,实现了将数据库定义与接口参数定义放在同一维度进行校验,杜绝因定义不一致导致数据库存储内容截断,程序异常退出的情况。本技术实施例能够在无人工参与的情况下,以分钟级别完成接口级别全链路参数校验,以小时级别完成接口与数据库间一致性校验,大大减少了人力投入,有效提高了接口属性一致性校验的校验效率。61.以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。62.如图1所示,其为本技术实施例的应用场景示意图。该应用场景图中包括两个终端设备110和一个服务器120。终端设备110与服务器120之间可以通过通信网络进行通信。63.在一种可选的实施方式中,通信网络是有线网络或无线网络。终端设备110以及服务器120可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。64.在本技术实施例中,终端设备110为用户使用的电子设备,该电子设备可以是个人计算机、手机、平板电脑、笔记本、电子书阅读器、智能家居等具有一定计算能力并且运行有即时通讯类软件及网站或者社交类软件及网站的计算机设备。各终端设备110通过无线网络与服务器120,服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。65.随着互联网技术的不断发展,电子商务、企业办公、社交通信、购物、理财等各类应用应运而生,这些应用主要通过数据库为其提供内容支持。目前,数据库的类型各种各样,对于大型的应用,可能需要使用多个不同类别的数据库为其提供不同的内容支持。66.在本技术实施例中,每个终端设备110中可以安装有上述任意一类或多类应用,本技术实施例涉及的应用可以是软件,也可以是网页、小程序等客户端,服务器则是与软件或是网页、小程序等相对应的应用服务器,不限制客户端的具体类型。67.在一种可选的实施方式中,数据库包括多个物理机,每个物理机上绑定数据库以提供数据库服务。本领域技术人员也可以理解,上述物理机也能够以虚拟机的形式存在,同样在该虚拟机上绑定数据库以提供数据库服务。通过接口实现对数据库中数据的访问。68.下面对本技术实施例中所列举的接口属性的一致性校验方法来进行详细介绍:69.参阅图2所示,为本技术实施例提供的一种接口属性的一致性校验方法的实施流程图,该方法的具体实施流程如下:70.s21:通过对多个待测试接口的接口文档进行解析,得到在不同的待测试接口中定义的相同接口字段的属性信息;71.s22:将相同接口字段在不同的待测试接口中定义的属性信息进行比较,得到在不同的待测试接口中属性信息定义一致的目标接口字段,其中属性信息包括字段长度和字段类型;72.在本技术实施例中,待测试接口为在开发待测试的业务系统时所涉及的多个接口,这个接口主要用于访问该业务系统的数据库。具体的,在定义接口时,主要基于接口文档来实现。接口文档中会注明接口相关的地址、参数类型、方法、输入、输出等信息。73.在接口文档中,主要要素有接口参数说明,具体指每个参数都要和实际中调用的一样,包括大小写;参数的含义言简意赅的说明,格式,是string还是int还是long等格式;说明部分,说明参数值是需要哪里提供,并详细说明参数怎么生成的,例如时间戳,是哪个时间段的,参数是否必填,一些参数是必须要有的,有些是可选参数等。74.其中,接口参数中会包含一个或多个接口字段,在本技术实施例中,接口与接口字段之间是1:n的数量关系,n为正整数。75.可选的,接口字段的属性信息包括字段长度和字段类型。在本技术实施例中,一个字段一般会定义一个字段长度的区间,例如11-18位,其中18就是这一字段的字段长度上限(也可简称为长度上限,或者是上限),表示这个字段能存储的最大长度。另外,字段类型也就是指数据类型,如int(整型),tinyint(整型),string(字符串),char(字符型变量),varchar(可变长度字符串),bit(位数据类型,长度为1位)等等。76.其中,tinyint(m),m默认为4,是很小的整数。带符号的范围是-128到127。无符号的范围是0到255。int(m),m默认为11。普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。77.对于多个待测试接口而言,一个接口肯定不会定义相同的接口字段,但是不同的接口中可以定义相同的接口字段(字段名称相同)。如果相同的接口字段的属性信息在不同的接口中的定义不同,则容易出现字段截断、流程终止、接口不支持幂等性等现象。78.因而,本技术实施例中通过识别各个待测试接口的接口文档,对其中定义的接口参数进行详细分析,来获取接口参数中的各个接口字段的属性信息。进而以接口字段为键值进行分类分析,将相同的接口字段划分为同一类,通过汇总分析,将接口字段划分为如下三大类:79.第一类:在不同的待测试接口中属性信息定义一致的目标接口字段;80.第二类:在不同的待测试接口中属性信息定义不一致的接口字段;81.第三类:在不同的待测试接口中存在未定义属性信息情况的接口字段。82.在本技术实施例中,第二类和第三类接口字段都属于错误信息,即属性信息定义不一致或未定义时,容易出现字段截断、流程终止、接口不支持幂等性等现象,因而需要将获取到的第二类接口字段与第三类接口字段进行错误标记,并向用户进行展示。而对于第一类接口字段,主要用于和db层的字段进行比较,校验一致性。83.其中,未定义属性信息可以是未定义字段长度上限的情况,如下所示:[0084][0085][0086]上述为本技术实施例中所列举的一种向用户展示未定义字段长度上限的接口字段的方式。其中共列举了两个字段,字段名称分别为“mobile”和“application_id”,这两个字段都未设置长度上限。[0087]在本技术实施例中,基于对接口文档的分析,可以以全局视角校验全链路参数定义是否合理;不以人工维护的接口定义为参考系,而是采用系统自适应方式,判断链路是否存在参数溢出情况;其中,参数溢出是指a接口调用b接口时,由于b接口对某一参数定义字段限制更窄导致被截断。在无人工参与的情况下,以分钟级别完成接口级别全链路参数校验,可以有效提高校验的效率。[0088]s23:通过对与各个待测试接口相关联的数据库的库表信息进行分析,得到目标接口字段在各个数据库中映射得到的数据库字段;[0089]在本技术实施例中,通过调用接口服务可以访问业务系统的数据库。同样地,在数据库中也会定义有与接口定义的接口参数具有映射关系的数据库参数,数据库参数中可以包含一个或多个数据库字段。[0090]其中,数据库的库表信息可以包括库表的名称、以及库表中相关字段信息等。因而,基于库表信息进行分析,获取与s21中筛选出的各个目标接口字段相映射的数据库字段。在该步骤之后,即可将接口字段与数据库字段之间进行一致性校验。[0091]s24:分别校验各个目标接口字段以及与各个目标接口字段相映射的数据库字段之间字段长度的一致性,和字段类型的一致性;[0092]s25:针对任意一个目标接口字段,若目标接口字段以及与目标接口字段相映射的数据库字段的字段长度一致,且字段类型一致,则校验得到目标接口字段与数据库字段的属性相同,针对目标接口字段的一致性校验结果为校验成功。[0093]也就是说,在本技术实施例中,在将目标接口字段与各个数据库字段进行一致性校验时,主要是根据目标接口字段与目标数据库字段之间的映射关系,分别将各个目标接口字段与相映射的数据库字段之间进行一致性校验。[0094]其中,属性信息可以包括字段长度和字段类型,因此,在对某一个目标接口字段与相映射的数据库字段进行一致性校验时,需要分别校验各个目标接口字段以及与各个目标接口字段相映射的数据库字段之间字段长度的一致性,和字段类型的一致性。[0095]针对任意一个目标接口字段而言,若该目标接口字段以及与该目标接口字段相映射的数据库字段的字段长度一致,且字段类型也一致,比如字段长度的上限都是18,字段类型都是int类型,即表明与该目标接口字段相映射的数据库字段的属性信息与其属性信息相同,因而则可确定该目标接口字段与相映射的数据库字段的属性相同,校验结果为校验成功。反之,即可确定校验失败。[0096]在本技术实施例中,对于校验失败的目标接口字段,以及相映射的数据库字段进行错误标记之后,同样可向用户进行展示。[0097]在本技术实施例中,在执行图2所示的步骤s23时,一种可选的实施流程如图3所示,其中图2所示的步骤s23可以具体划分为步骤s33至步骤s35:[0098]s31:通过对多个待测试接口的接口文档进行解析,得到在不同的待测试接口中定义的相同接口字段的属性信息;[0099]s32:将相同接口字段在不同的待测试接口中定义的属性信息进行比较,得到在不同的待测试接口中属性信息定义一致的目标接口字段,其中属性信息包括字段长度和字段类型;[0100]s33:基于库表信息对各个数据库的分库分表进行分类去重,并对去重后剩余的各个数据表中的参数进行格式化;[0101]s34:通过对格式化后的各个数据表中定义的相同数据库字段的属性信息进行比较,得到在不同的数据表中属性信息定义一致的目标数据库字段;[0102]s35:建立目标接口字段与目标数据库字段之间的映射关系,并基于映射关系获取目标接口字段在各个数据库中映射得到的数据库字段;[0103]s36:分别校验各个目标接口字段以及与各个目标接口字段相映射的数据库字段之间字段长度的一致性,和字段类型的一致性;[0104]s37:针对任意一个目标接口字段,若目标接口字段以及与目标接口字段相映射的数据库字段的字段长度一致,且字段类型一致,则校验得到目标接口字段与数据库字段的属性相同,针对目标接口字段的一致性校验结果为校验成功。[0105]在本技术实施例中,一个数据库可能会有多个分库分表等,在同一类型的分库分表中,相同的数据库字段的属性信息的定义是相同的。[0106]其中,在对分库分表进行分类去重时,一般是按年月日分库分表,以及按某一键值分库分表,针对这两类型表,各自表格接口是相同,要对这两类表格去重处理,即各类型分库分表只保留一个表格结构进行后续的判断即可。针对返回表格结构进行初步校验并格式化参数。[0107]其中,进行初步校验具体是指对获取到的各个数据库字段进行分类分析,按照属性信息的定义的一致性情况进行划分,具体可分为在不同的数据库(或不同的数据表)中属性信息定义不一致的数据库字段,未定义属性信息的数据库字段,以及属性信息定义一致的数据库字段。[0108]对于属性信息定义一致的数据库字段,在本技术实施例中具体是称为目标数据库字段。用于和在步骤s21中获取到的属性信息定义一致的目标接口字段进行对比分析。而对于属性信息定义不一致或者是未定义属性信息的数据库字段,同接口字段的处理方式类型,同样进行错误标记,并向用户进行展示。[0109]下面以某一数据库字段为例,分别介绍该数据库字段在不同数据表中的字段长度定义:[0110]'max':[0111]{'max':4,[0112]'table':'db_1'}[0113]{'max':11,[0114]'table':'db_2'}[0115]{'max':4,[0116]'table':'db_3'}[0117]{'max':64,[0118]'table':'db_4'}[0119]上述内容表示:在表1(db_1)中,该字段的长度上限为4,在表2(db_2)中,该字段的长度上限为11,在表3(db_3)中,该字段的长度上限为4,在表4(db_4)中,该字段的长度上限为64。[0120]'type':[0121]{'table':'db_1',[0122]'type':'tinyint(4)'}[0123]{'table':'db_2',[0124]'type':'int(11)'}[0125]{'table':'db_3',[0126]'type':'tinyint(4)'}[0127]{'table':'db_4',[0128]'type':'varchar(64)'}[0129]上述内容表示:在表1(db_1)中,该字段的数据类型为tinyint,在表2(db_2)中,该字段的数据类型为int,在表3(db_3)中,该字段的数据类型为tinyint,在表4(db_4)中,该字段的数据类型为varchar。其中,在建立映射关系时,具体可分为以下两种情况:[0130]情况一、对于存在字段名称与目标数据库字段相同的目标接口字段,则直接建立目标数据库字段与目标接口字段之间的映射关系;[0131]例如,在某一待测试接口中定义的一个目标接口字段field1的字段名称为“state”,该字段表示状态,一个目标数据库字段field1的字段名称也为“state”,同样表示状态。因而可以直接建立起目标接口字段field1与目标数据库字段field1之间的映射关系。[0132]情况二、对于不存在字段名称与目标数据库字段相同的目标接口字段,则基于各个数据表的日志信息,建立目标数据库字段与目标接口字段之间的映射关系。[0133]例如,在某一待测试接口中定义的一个目标接口字段field1的字段名称为“state”,该字段表示状态,而目标数据库字段field1的字段名称并非是“state”,而是“status”。实际上无论是目标接口字段field1还是目标数据库字段field1都是表示状态。此时,即可获取各个数据表的日志信息,基于对日志信息的分析,判断他们的字段值是否一致,若一致即可建立起映射关系。[0134]具体的,在基于各个数据表的日志信息,建立目标数据库字段与目标接口字段之间的映射关系时的实现过程为:[0135]基于各个数据表的日志信息,查询与各个数据表对应的接口服务;建立各个数据表以及与接口服务对应的待测试接口之间的映射关系;基于各个数据表与待测试接口之间的映射关系,分别建立各个数据表中的目标数据库字段与对应的待测试接口中的目标接口字段之间的映射关系。[0136]在本技术实施例所列举待测试的业务系统中,一般都会进行数据库的读写分离的相关设计,因而可以通过扫描写db的服务的日志信息,建立接口入参(接口参数)中的接口字段与写入db的数据库字段的映射关系。不过,首先需要建立数据表与接口的映射关系,即在各个数据表的日志中进行匹配,对于任意一个数据表而言,通过日志信息找到写表操作的相关接口服务,将该数据表与该接口服务建立映射关系。并在此基础上,通过判断字段值是否一致,来建立该接口中的目标接口字段与该数据表中的目标数据库字段的映射关系,即找到提取写表对应服务的入参,根据入参中的接口字段内容与写表的数据库字段内容进行匹配,当二者一致时,将该接口字段与该数据库字段建立映射关系,进而即可基于该映射关系来校验接口层定义与db层定义的字段类型,字段长度是否一致。[0137]参阅图4所示,其为本技术实施例中的一种接口和数据库的字段之间的映射关系示意图。[0138]其中,以service这一接口服务为例,该接口服务对应一个待测试接口,通过该待测试接口可以在database.table这一数据表中写入数据。其中,与service相连接的field1指接口字段1、field2为接口字段2、field3为接口字段3、…、fieldn为接口字段n,其中,这n个接口字段都属于目标接口字段。[0139]database.table是与service这一接口具有映射关系的一个数据表。与database.table相连接的field1指数据库字段1、field2为数据库字段2、field3为数据库字段3、…、fieldn为数据库字段n,其中,这n个数据库字段都属于目标数据库字段。[0140]通过日志信息的分析,最终可以确定接口字段1与数据库字段1之间具有映射关系,接口字段2与数据库字段2之间具有映射关系,接口字段3与数据库字段3之间具有映射关系,…,接口字段n与数据库字段n之间具有映射关系。[0141]因而,在进行一致性校验时,主要是将接口字段1的属性信息与数据库字段1的属性信息进行比较,包括字段长度的比较以及字段类型的比较。同理,将接口字段2的属性信息与数据库字段2的属性信息进行比较,接口字段3的属性信息与数据库字段3的属性信息进行比较,…,最终,根据比较结果确定出针对各个目标接口字段的校验结果,是校验成功还是校验失败。[0142]其中,对于校验失败的,可进行错误标记,比如,在接口字段1的字段长度与数据库字段1的字段长度不一致时,即可标记字段长度不一致,并向用户进行展示;在接口字段2的字段类型与数据库字段2的字段类型不一致时,即可标记字段类型不一致,并向用户进行展示,以使用户做进一步的修改,避免因定义不一致导致db存储内容截断,程序异常退出等情况的发生。[0143]下面结合图5对本技术实施例中的一致性校验方法进行详细介绍。[0144]参阅图5所示,其为本技术实施例中的一种系统架构图,该架构图主要包括4部分,从左到右依次为:db层、服务层、校验模型和接口层。[0145]其中,接口层主要用于对待测试的业务系统中的各个待测试接口的接口定义进行分析,主要是识别接口文档中接口定义,获取其中各个接口字段的属性信息。进而,以接口字段为键值,进行分类分析。这里在进行分类分析时,主要是以属性信息一致性来作为分类条件的。[0146]例如图5所示,通过判断多个接口之间同一接口字段的属性信息是否一致,具体可分为以下几大类:[0147]1)当存在未设置属性信息时,将该字段数据输出至未设置属性信息的错误队列;进而可进行错误标记,生成相应的报告展示给用户,也就是将报告触达项目干系人,其中项目干系人又称为项目相关利益者,是指积极参与项目、或其利益会受到项目执行或完成情况影响的个人或组织。在本技术实施例中,主要是指待测试的业务系统的项目干系人,可以是个人,也可以是组织。[0148]2)当存在属性信息定义不一致的时,将该字段数据输出至定义不一致的错误队列;进而可进行错误标记,生成相应的报告,并将报告触达项目干系人。[0149]3)属性信息定义一致的,返回到工具智能校验层,等待与db层进行一致性校验。[0150]需要说明的是,在本技术实施例中,上述对于进行错误标记的字段数据,生产报告并触达项目干系人的步骤,可以在开发人员提交代码时即可输出,提前暴露风险,提高测试效率。以分钟级别完成接口级别的全链路参数校验,包括字段长度校验以及字段类型校验。[0151]其中,db层即数据库管理端,存储有各个数据库(数据表)的库表信息,以及数据库中的源数据,可将db中的库表信息输出至校验模型。校验模型主要包括收集器、格式化、工具智能校验、错误信息、生成报告以及触达项目干系人这几部分。[0152]具体的,收集器用于从db层的数据库管理端获取库表信息和源数据,源数据中会包含各个数据库字段。在获取到库表信息和源数据之后,按类型分类并做去重(即各类型分库分表只保留一个表格结构进行后续的判断)。针对返回表格结构进行初步校验并格式化参数,其一,以字段为键值,进行分类分析,对于在不同数据表中定义的同一个数据库字段而言,当存在未设置属性信息的情况时,将该数据库字段的相关数据输出至未设置属性信息的错误队列;当存在属性信息定义不一致的情况时,则将该数据库字段的相关数据输出至定义不一致的错误队列。其二,以表为维度,返回到工具智能校验层,等待生成数据库字段与接口字段的映射关系后,进行db与接口之间的一致性校验。上述第一部分内容(其一对数据库字段进行分类分析部分),在开发提交环境配置时即可校验,助力测试左移进行。[0153]其中,db与接口的映射关系主要是基于服务层来建立的,服务层具有用于提供各个数据库(数据表)的日志信息,基于这些日志信息即可建立起本技术实施例中所涉及的映射关系,进而通过工具智能校验部分校验目标接口字段与目标数据库字段的数据类型,数据长度是否一致。具体校验过程可参见上述实施例,重复之处不再赘述。最后基于校验结果来生成报告,并触达项目干系人。[0154]需要说明的是,本技术实施例适用于接口定义完善的所有业务系统。[0155]参阅图6所示,其为本技术实施例中的一种接口属性一致性校验的完整方法流程图。该方法的具体实施流程如下:[0156]步骤s61:通过对多个待测试接口的接口文档进行解析,得到在不同的待测试接口中定义的相同接口字段的属性信息;[0157]其中,待测试接口主要是用于访问数据库的,接口文档可以是json(javascriptobjectnotation,js对象简谱)格式的,当然也可以是其他格式,在此不做具体限定;本技术实施例中的接口文档中包含有接口参数的说明,基于这些信息可以分析得到接口文档中定义的各个接口字段的属性信息,筛选得到同一个接口字段在不同的待测试接口中定义的属性信息;[0158]步骤s62:将相同接口字段在不同的待测试接口中定义的属性信息进行比较,得到在不同的待测试接口中属性信息定义一致的目标接口字段;[0159]步骤s63:对于在不同的待测试接口中属性信息定义不一致或未定义属性信息的接口字段,进行错误标记并展示;[0160]其中,在进行展示时可以参考上述实施例中所列举的代码部分,以向用户直观的展示出哪些接口字段在不同的待测试接口中属性信息定义不一致,或者是未定义属性信息;其中,未定义属性信息一般是指未定义字段长度上限,而属性信息定义不一致分为:字段长度定义不一致、字段类型定义不一致;[0161]步骤s64:基于与各个待测试接口相关联的数据库的库表信息,对各个数据库的分库分表进行分类去重,并对去重后剩余的各个数据表中的参数进行格式化;[0162]其中,在对分库分表进行分类去重时,一般是按年月日分库分表,以及按某一键值分库分表,针对这两类型表,各自表格接口是相同,要对这两类表格去重处理,即各类型分库分表只保留一个表格结构进行后续的判断即可。针对返回表格结构进行初步校验并格式化参数;[0163]步骤s65:通过对格式化后的各个数据表中定义的相同数据库字段的属性信息进行比较,得到在不同的数据表中属性信息定义一致的目标数据库字段;[0164]步骤s66:对于在不同的数据库中属性信息定义不一致或未定义属性信息的数据库字段,进行错误标记并展示;[0165]同样地,在进行展示时也可以参考上述实施例中所列举的代码部分,以向用户直观的展示出哪些数据库字段在不同的数据库表中属性信息定义不一致,或者是未定义属性信息;其中,未定义属性信息一般是指未定义字段长度上限,而属性信息定义不一致分为:字段长度定义不一致、字段类型定义不一致。[0166]步骤s67:对于存在字段名称与目标数据库字段相同的目标接口字段,则直接建立目标数据库字段与目标接口字段之间的映射关系;[0167]具体的,通过比对目标接口字段与目标数据库字段的字段名称等方式,将字段名称相同的目标接口字段与目标数据库字段之间建立映射关系;[0168]步骤s68:对于不存在字段名称与目标数据库字段相同的目标接口字段,则基于各个数据表的日志信息,建立目标数据库字段与目标接口字段之间的映射关系;[0169]具体的,首先需要基于各个数据表的日志信息,查询与各个数据表对应的接口服务;进而建立各个数据表以及与接口服务对应的待测试接口之间的映射关系;最后基于各个数据表与待测试接口之间的映射关系,分别建立各个数据表中的目标数据库字段与对应的待测试接口中的目标接口字段之间的映射关系;[0170]步骤s69:判断目标接口字段与相映射的数据库字段的属性信息是否相同,获得针对各个目标接口字段的一致性校验结果;[0171]其中,在判断目标接口字段与相映射的数据库字段的属性信息是否相同时,主要是根据目标接口字段与目标数据库字段之间的映射关系,分别将各个目标接口字段与相映射的数据库字段之间的字段长度和字段类型进行一致性校验,针对任意一个目标接口字段而言,若该目标接口字段以及与该目标接口字段相映射的数据库字段的字段长度一致,且字段类型也一致,即可确定这个目标接口字段与相映射的数据库字段的属性信息相同,针对该目标接口字段的校验结果为校验成功。当字段长度与字段类型有至少一项不同时,即可确定这个目标接口字段与相映射的数据库字段的属性信息不相同,针对该目标接口字段的校验结果为校验失败。[0172]步骤s610:对于属性不同的目标接口字段和数据库字段,进行错误标记并展示。[0173]如图7所示,其为本技术实施例中的一种接口属性的一致性校验装置700的结构示意图,可以包括:[0174]解析单元701,用于通过对多个待测试接口的接口文档进行解析,得到在不同的待测试接口中定义的相同接口字段的属性信息;[0175]比较单元702,用于将相同接口字段在不同的待测试接口中定义的属性信息进行比较,得到在不同的待测试接口中属性信息定义一致的目标接口字段,其中属性信息包括字段长度和字段类型;[0176]获取单元703,用于通过对与各个待测试接口相关联的数据库的库表信息进行分析,得到目标接口字段在各个数据库中映射得到的数据库字段;[0177]校验单元704,用于分别校验各个目标接口字段以及与各个目标接口字段相映射的数据库字段之间字段长度的一致性,和字段类型的一致性;针对任意一个目标接口字段,若目标接口字段以及与目标接口字段相映射的数据库字段的字段长度一致,且字段类型一致,则校验得到目标接口字段与数据库字段的属性相同,针对目标接口字段的一致性校验结果为校验成功。[0178]可选的,获取单元703具体用于:[0179]基于库表信息对各个数据库的分库分表进行分类去重,并对去重后剩余的各个数据表中的参数进行格式化;[0180]通过对格式化后的各个数据表中定义的相同数据库字段的属性信息进行比较,得到在不同的数据表中属性信息定义一致的目标数据库字段;[0181]建立目标接口字段与目标数据库字段之间的映射关系,并基于映射关系获取目标接口字段在各个数据库中映射得到的数据库字段。[0182]可选的,获取单元703具体用于:[0183]对于存在字段名称与目标数据库字段相同的目标接口字段,则直接建立目标数据库字段与目标接口字段之间的映射关系;[0184]对于不存在字段名称与目标数据库字段相同的目标接口字段,则基于各个数据表的日志信息,建立目标数据库字段与目标接口字段之间的映射关系。[0185]可选的,获取单元703具体用于:[0186]基于各个数据表的日志信息,查询与各个数据表对应的接口服务;[0187]建立各个数据表以及与接口服务对应的待测试接口之间的映射关系;[0188]基于各个数据表与待测试接口之间的映射关系,分别建立各个数据表中的目标数据库字段与对应的待测试接口中的目标接口字段之间的映射关系。[0189]可选的,解析单元701还用于:[0190]将相同接口字段在不同的待测试接口中定义的属性信息进行比较,得到在不同的待测试接口中属性信息定义不一致的接口字段,与未定义属性信息的接口字段中的一种或多种;[0191]将得到的接口字段进行错误标记,并进行展示。[0192]可选的,获取单元703还用于:[0193]通过对格式化后的各个数据表中定义的相同数据库字段的属性信息进行比较,得到在不同的数据表中属性信息定义不一致的数据库字段,与未定义属性信息的数据库字段中的一种或多种;[0194]将获取到的数据库字段进行错误标记,并进行展示。[0195]为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本技术时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。[0196]在介绍了本技术示例性实施方式的接口属性的一致性校验方法和装置之后,接下来,介绍根据本技术的另一示例性实施方式的电子设备。[0197]所属
技术领域
:的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。[0198]与上述方法实施例基于同一发明构思,本技术实施例中还提供了一种电子设备。该电子设备可以用于接口属性的一致性检测。在一种实施例中,该电子设备可以是服务器,如图1所示的服务器120,也可以是其他电子设备,如图1所示的终端设备110。在该实施例中,电子设备的结构可以如图8所示,包括存储器801,通讯模块803以及一个或多个处理器802。[0199]存储器801,用于存储处理器802执行的计算机程序。存储器801可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。[0200]存储器801可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器801也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);或者存储器801是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器801可以是上述存储器的组合。[0201]处理器802,可以包括一个或多个中央处理单元(centralprocessingunit,cpu)或者为数字处理单元等等。处理器802,用于调用存储器801中存储的计算机程序时实现上述接口属性的一致性校验方法。[0202]通讯模块803用于与终端设备和其他服务器进行通信。[0203]本技术实施例中不限定上述存储器801、通讯模块803和处理器802之间的具体连接介质。本公开实施例在图8中以存储器801和处理器802之间通过总线804连接,总线804在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0204]存储器801中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本技术实施例的接口属性的一致性校验方法。处理器802用于执行上述的接口属性的一致性校验方法。[0205]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。[0206]或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。[0207]在一些可能的实施方式中,本技术提供的接口属性的一致性校验方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本技术各种示例性实施方式的接口属性的一致性校验方法中的步骤,例如,计算机设备可以执行如图2中所示的步骤。[0208]程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。[0209]本技术的实施方式的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在计算装置上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。[0210]可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。[0211]可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。[0212]尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。[0213]显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献