掌桥专利:专业的专利平台
掌桥专利
首页

接口校验方法、装置、设备及存储介质

文献发布时间:2024-01-17 01:19:37


接口校验方法、装置、设备及存储介质

技术领域

本申请涉及通信技术领域,尤其涉及软件开发技术领域,具体涉及一种接口校验方法、装置、设备及存储介质。

背景技术

自动驾驶系统的实现依赖于各个功能模块协同作业,因此需要对各个模块的程序接口进行校验,直至各个模块的程序接口间信号对齐,以实现系统的正常运行。

现有的接口校验方法,通常采用人工校验的方式,在测试完成后,人工对接口测试结果的正确性进行校验,这种校验方式不仅需要耗费大量的人力,校验成本高,校验效率低下,而且一旦因检测人员疏忽,容易产生误测的情况。

发明内容

本申请提供一种接口校验方法、装置、设备及存储介质,以至少解决相关技术中人工校验成本高、效率低的技术问题。本申请的技术方案如下:

根据本申请涉及的第一方面,提供一种接口校验方法,包括:获取多个第一消息标识和多个第二消息标识;多个第一消息标识包括:系统中各个模块订阅的消息标识;多个第二消息标识包括:各个模块发布的消息的消息标识;对多个第一消息标识和多个第二消息标识进行校验,得到各个模块之间的接口检验结果;当多个第二消息标识中包括多个第一消息标识时,接口检验结果为校验成功;当多个第一消息标识中,存在与多个第二消息标识不同的第一消息标识时,接口检验结果为校验失败。

根据上述技术手段,本申请可以基于系统中各个模块的订阅和发布的消息标识,对接口进行校验,提高了开发过程中的自动化程度,实现在发布订阅模式下的接口校验,在解决软件开发过程中接口信号对齐的问题的同时,可以减少人工参与,降低成本,提高接口校验的效率。

在一种可能的实施方式中,当校验成功时,上述方法,还包括:根据多个第一消息标识和多个第二消息标识,执行数据流图创建操作,得到系统中各个模块之间的数据流图;数据流图创建操作包括:当第一模块的第一消息标识与第二模块的第二消息标识相同时,创建数据流图中,从第二模块指向第一模块的第一消息标识对应的数据流;第一模块和第二模块为系统中任意两个不同的模块。

根据上述技术手段,本申请可以根据各个模块之间的发布和订阅的关联关系,创建数据流图,以使得开发人员更直观地了解系统中各模块之间的数据流走向,为软件架构分析提供数据支撑。

在一种可能的实施方式中,上述方法,还包括:获取与多个第一消息标识中,每个第一消息标识对应的至少一个消息;根据每个第一消息标识对应的至少一个消息,创建各个模块的消息列表。

根据上述技术手段,本申请可以创建各个模块的消息列表,以指导软件开发或测试过程中的输入文件,可以有效提高软件开发的效率。

在一种可能的实施方式中,上述方法,还包括:当多个第二消息标识中,存在与多个第一消息标识不同的第二消息标识时,生成告警信息;告警信息包括:与多个第一消息标识不同的第二消息标识;当多个第一消息标识中,存在与多个第二消息标识不同的第一消息标识时,生成错误信息;错误信息包括:与多个第二消息标识不同的第一消息标识。

根据上述技术手段,本申请可以准确记录校验过程中的异常情况,便于后续进行数据查看和异常分析。

在一种可能的实施方式中,上述方法,还包括:获取各个模块的接口源文件;根据接口源文件的文件类型,确定检查工具;检查工具用于语法检查或规则检查中的至少一种;调用检查工具,对接口源文件进行检查,生成检查结果。

根据上述技术手段,本申请可以直接作用于模块的接口源文件,有效避免了在转换过程中出现错误和遗漏的情况,可以提高检查结果的准确度,进一步保障了系统的正常运行。

根据本申请提供的第二方面,提供一种接口校验装置,包括:获取单元以及校验单元;获取单元,用于获取多个第一消息标识和多个第二消息标识;多个第一消息标识包括:系统中各个模块订阅的消息标识;多个第二消息标识包括:各个模块发布的消息的消息标识;校验单元,用于对多个第一消息标识和多个第二消息标识进行校验,得到各个模块之间的接口检验结果;当多个第二消息标识中包括多个第一消息标识时,接口检验结果为校验成功;当多个第一消息标识中,存在与多个第二消息标识不同的第一消息标识时,接口检验结果为校验失败。

在一种可能的实施方式中,当校验成功时,上述装置,还包括:创建单元;创建单元,用于根据多个第一消息标识和多个第二消息标识,执行数据流图创建操作,得到系统中各个模块之间的数据流图;数据流图创建操作包括:当第一模块的第一消息标识与第二模块的第二消息标识相同时,创建数据流图中,从第二模块指向第一模块的第一消息标识对应的数据流;第一模块和第二模块为系统中任意两个不同的模块。

在一种可能的实施方式中,创建单元,还用于:获取与多个第一消息标识中,每个第一消息标识对应的至少一个消息;根据每个第一消息标识对应的至少一个消息,创建各个模块的消息列表。

在一种可能的实施方式中,校验单元,还用于:当多个第二消息标识中,存在与多个第一消息标识不同的第二消息标识时,生成告警信息;告警信息包括:与多个第一消息标识不同的第二消息标识;当多个第一消息标识中,存在与多个第二消息标识不同的第一消息标识时,生成错误信息;错误信息包括:与多个第二消息标识不同的第一消息标识。

在一种可能的实施方式中,上述装置还包括检查单元;获取单元,还用于获取各个模块的接口源文件;检查单元,用于根据接口源文件的文件类型,确定检查工具;检查工具用于语法检查或规则检查中的至少一种;检查单元,还用于调用检查工具,对接口源文件进行检查,生成检查结果。

根据本申请提供的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现上述第一方面及其任一种可能的实施方式的方法。

根据本申请提供的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述第一方面中及其任一种可能的实施方式的方法。

根据本申请提供的第五方面,提供一种计算机程序产品,计算机程序产品包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第一方面及其任一种可能的实施方式的方法。

根据本申请提供的第六方面,提供一种车辆,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现上述第一方面及其任一种可能的实施方式的方法。

由此,本申请的上述技术特征具有以下有益效果:

(1)可以基于系统中各个模块的订阅和发布的消息标识,对接口进行校验,提高了开发过程中的自动化程度,实现在发布订阅模式下的接口校验,在解决软件开发过程中接口信号对齐的问题的同时,可以减少人工参与,降低成本,提高接口校验的效率。

(2)可以根据各个模块之间的发布和订阅的关联关系,创建数据流图,以使得开发人员更直观地了解系统中各模块之间的数据流走向,为软件架构分析提供数据支撑。

(3)可以创建各个模块的消息列表,以指导软件开发或测试过程中的输入文件,可以有效提高软件开发的效率。

(4)可以准确记录校验过程中的异常情况,便于后续进行数据查看和异常分析。

(5)可以直接作用于模块的接口源文件,有效避免了在转换过程中出现错误和遗漏的情况,可以提高检查结果的准确度,进一步保障了系统的正常运行。

需要说明的是,第二方面至第六方面中的任一种实现方式所带来的技术效果可参见第一方面中对应实现方式所带来的技术效果,此处不再赘述。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。

图1是根据一示例性实施例示出的一种接口校验方法的流程示意图;

图2是根据一示例性实施例示出的又一种接口校验方法的示意图;

图3是根据一示例性实施例示出的一种接口校验装置的框图;

图4是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

为了便于理解,以下结合附图对本申请提供的接口校验方法进行具体介绍。

图1是根据一示例性实施例示出的一种接口校验方法的流程图,如图1所示,该接口校验方法包括以下步骤:

S101、接口校验装置获取多个第一消息标识和多个第二消息标识。

多个第一消息标识包括:系统中各个模块订阅的消息标识。

多个第二消息标识包括:各个模块发布的消息的消息标识。

可选的,在实际应用中,消息标识可以为消息的主题(topic)。

在一种可以实现的方式中,接口校验装置可以通过利用python脚本读取各个模块的配置文件,获取各个模块的订阅和发布的消息topic。

S102、接口校验装置对多个第一消息标识和多个第二消息标识进行校验,得到各个模块之间的接口检验结果。

具体的,当多个第二消息标识中包括多个第一消息标识时,即系统中发布的消息可以满足订阅,此时,系统可以正常运行,认为接口检验结果为校验成功。

容易理解的是,在校验成功的情况中,多个第二消息标识中包括多个第一消息标识,包括两种情况:多个第二消息标识包括且大于多个第一消息标识,以及多个第二消息标识包括且等于多个第一消息标识。

当多个第一消息标识中,存在与多个第二消息标识不同的第一消息标识时,即系统中存在订阅但未发布的消息,此时,系统存在异常,可能影响正常运行,认为接口检验结果为校验失败。

在一些实施例中,当校验成功时,为了让开发人员更直观地了解系统中各模块之间的数据流走向,为软件架构分析提供数据支撑,本申请实施例提供的方法,还包括以下步骤:

S201、接口校验装置根据多个第一消息标识和多个第二消息标识,执行数据流图创建操作,得到系统中各个模块之间的数据流图。

具体的,数据流图创建操作包括:当第一模块的第一消息标识与第二模块的第二消息标识相同时,表示第一模块订阅了第二模块发布的消息,此时,第一消息标识对应的数据流应该从第二模块指向第一模块,接口校验装置可以将该数据流在数据流图中表示出来,即创建数据流图中,从第二模块指向第一模块的第一消息标识对应的数据流。

其中,第一模块和第二模块为系统中任意两个不同的模块。

在一种可以实现的方式中,接口校验装置可以向终端发送数据流图,以使得开发人员可以通过终端获取数据流图中的信息。

在一些实施例中,获得数据流图之后,为了进一步展示系统中的数据清单,本申请实施例提供的方法,还包括以下步骤:

S301、接口校验装置获取与多个第一消息标识中,每个第一消息标识对应的至少一个消息。

在一种可以实现的方式中,每个消息topic可以对应至少一个消息(message),接口校验装置可以读取系统中的消息报文,识别消息的消息topic,创建topic与message的对应关系。

S302、接口校验装置根据每个第一消息标识对应的至少一个消息,创建各个模块的消息列表。

在一种可以实现的方式中,接口校验装置可以根据topic与message的对应关系,创建每个模块的消息列表,以指导软件开发或测试过程中的输入文件。

在一种可以实现的方式中,接口校验装置可以向终端发送各个模块的消息列表,以使得开发人员可以通过终端获取各个模块的消息列表。

在一些实施例中,为了提高接口检验结果记录的准确性,本申请实施例提供的方法,还包括以下步骤:

S401、当多个第二消息标识中,存在与多个第一消息标识不同的第二消息标识时,接口校验装置生成告警信息。

告警信息包括:与多个第一消息标识不同的第二消息标识。

具体的,当多个第二消息标识中,存在与多个第一消息标识不同的第二消息标识时,即系统中存在发布但未订阅的消息,虽然不影响系统正常运行,但是存在发布订阅不匹配的情况,可以生成告警信息,将上述消息进行记录,便于开发人员进行查询。

S402、当多个第一消息标识中,存在与多个第二消息标识不同的第一消息标识时,接口校验装置生成错误信息。

错误信息包括:与多个第二消息标识不同的第一消息标识。

具体的,当多个第一消息标识中,存在与多个第二消息标识不同的第一消息标识时,即系统中存在订阅但未发布的消息,此时,系统存在异常,可能影响正常运行,可以生成错误信息,将上述消息进行记录,便于开发人员进行查询。

在一些实施例中,为了使得系统中各接口传输的文件可以被正常识别,接口校验装置在进行接口校验之前,本申请实施例提供的方法,还包括以下步骤:

S501、接口校验装置获取各个模块的接口源文件。

S502、接口校验装置根据接口源文件的文件类型,确定检查工具。

可选的,检查工具用于语法检查或规则检查中的至少一种。

S503、接口校验装置调用检查工具,对接口源文件进行检查,生成检查结果。

在一种可以实现的方式中,接口校验装置首先可以根据接口源文件的文件后缀,确定接口源文件的文件类型,例如*.proto、*.idl、*.h等。然后,可以利用该文件类型的官方工具进行基本语法检查和规则检查,例如*.proto文件可以利用protoc工具进行检查,生成检查结果。

可选的,检查结果以txt格式形式保存,标注问题行号和错误类型,便于开发人员迅速定位并修改问题。

如图2所示,本申请提供的接口校验方法可以通过算法模型等的方式进行实现,通过输入接口源文件和配置文件,执行S1-S3,输出检查结果、接口检验结果、数据流图和消息列表。本申请对方法实现方式不作限定。

S1、接口校验装置对接口源文件进行检查。

S2、接口校验装置进行各个模块之间的接口检验。

S3、接口校验装置创建数据流图和消息列表。

上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,接口校验装置或电子设备包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法,示例性的对接口校验装置或电子设备进行功能模块的划分,例如,接口校验装置或电子设备可以包括对应各个功能划分的各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图3是根据一示例性实施例示出的一种接口校验装置的框图。参照图3,该接口校验装置包括:获取单元301以及校验单元302。

获取单元301,用于获取多个第一消息标识和多个第二消息标识;多个第一消息标识包括:系统中各个模块订阅的消息标识;多个第二消息标识包括:各个模块发布的消息的消息标识。

校验单元302,用于对多个第一消息标识和多个第二消息标识进行校验,得到各个模块之间的接口检验结果;当多个第二消息标识中包括多个第一消息标识时,接口检验结果为校验成功;当多个第一消息标识中,存在与多个第二消息标识不同的第一消息标识时,接口检验结果为校验失败。

在一种可能的实施方式中,当校验成功时,上述装置,还包括:创建单元303。

创建单元303,用于根据多个第一消息标识和多个第二消息标识,执行数据流图创建操作,得到系统中各个模块之间的数据流图;数据流图创建操作包括:当第一模块的第一消息标识与第二模块的第二消息标识相同时,创建数据流图中,从第二模块指向第一模块的第一消息标识对应的数据流;第一模块和第二模块为系统中任意两个不同的模块。

在一种可能的实施方式中,创建单元303,还用于:获取与多个第一消息标识中,每个第一消息标识对应的至少一个消息;根据每个第一消息标识对应的至少一个消息,创建各个模块的消息列表。

在一种可能的实施方式中,校验单元302,还用于:当多个第二消息标识中,存在与多个第一消息标识不同的第二消息标识时,生成告警信息;告警信息包括:与多个第一消息标识不同的第二消息标识;当多个第一消息标识中,存在与多个第二消息标识不同的第一消息标识时,生成错误信息;错误信息包括:与多个第二消息标识不同的第一消息标识。

在一种可能的实施方式中,上述装置还包括检查单元304。

获取单元301,还用于获取各个模块的接口源文件。

检查单元304,用于根据接口源文件的文件类型,确定检查工具;检查工具用于语法检查或规则检查中的至少一种;检查单元304,还用于调用检查工具,对接口源文件进行检查,生成检查结果。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图4是根据一示例性实施例示出的一种电子设备的框图。如图4所示,电子设备包括但不限于:处理器401和存储器402。

其中,上述的存储器402,用于存储上述处理器401的可执行指令。可以理解的是,上述处理器401被配置为执行指令,以实现上述实施例中的方法。

需要说明的是,本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图4所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

处理器401是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器401可包括一个或多个处理单元。可选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储软件程序以及各种数据。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能模块所需的应用程序(比如确定单元、处理单元等)等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器402,上述指令可由电子设备的处理器401执行以实现上述实施例中的方法。

在实际实现时,图3中的获取单元301、校验单元302、创建单元303和检查单元304的功能均可以由图4中的处理器401调用存储器402中存储的计算机程序实现。其具体的执行过程可参考上实施例中方法部分的描述,这里不再赘述。

可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存储存储器(Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

在示例性实施例中,本申请实施例还提供了一种包括一条或多条指令的计算机程序产品,该一条或多条指令可以由电子设备的处理器401执行以完成上述实施例中的方法。

需要说明的是,上述计算机可读存储介质中的指令或计算机程序产品中的一条或多条指令被电子设备的处理器执行时实现上述方法实施例的各个过程,且能达到与上述方法相同的技术效果,为避免重复,这里不再赘述。

在示例性实施例中,还提供了一种包括指令的车辆,例如包括指令的存储器402,上述指令可由电子设备的处理器401执行以实现上述实施例中的方法。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全分类部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全分类部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全分类部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全分类部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

技术分类

06120116131353