报文格式校验方法、装置以及存储介质

文档序号:1938119 发布日期:2021-12-07 浏览:14次 >En<

阅读说明:本技术 报文格式校验方法、装置以及存储介质 (Message format checking method, device and storage medium ) 是由 赵国永 霍晓莉 荆瑞泉 胡骞 于 2020-06-01 设计创作,主要内容包括:本公开提供了一种报文格式校验方法、装置以及存储介质,涉及计算机技术领域,其中的方法包括:基于报文规则信息确定与标签相对应的属性以及属性的属性值,用以生成校验规则文件;解析待校验报文,获取待校验报文中的报文节点信息;解析校验规则文件,获取校验规则信息;基于校验规则信息对报文节点信息进行校验,获取校验结果。本公开的方法、装置以及存储介质,可以对报文的正确性进行自动化检验,提高开发和测试的效率;利用报文标签生成规则文件,不扩展原有的标签,校验规则简便,能够减少开发工作量,并可以提高报错准确性。(The present disclosure provides a message format checking method, device and storage medium, which relate to the technical field of computers, wherein the method comprises the following steps: determining attributes corresponding to the labels and attribute values of the attributes based on the message rule information to generate a check rule file; analyzing the message to be checked, and acquiring message node information in the message to be checked; analyzing the check rule file to obtain check rule information; and verifying the message node information based on the verification rule information to obtain a verification result. The method, the device and the storage medium can automatically check the correctness of the message, and improve the efficiency of development and test; the rule file is generated by using the message label, the original label is not expanded, the rule is checked simply and conveniently, the development workload can be reduced, and the error reporting accuracy can be improved.)

报文格式校验方法、装置以及存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及一种报文格式校验方法、装置以及存储介质。

背景技术

在接口开发和测试过程中,通常使用XML等格式的报文作为媒介进行数据交互。例如,在采用netconf协议与设备进行通信的场景中,大量接口需要进行测试,通过人工对XML格式的报文进行判断合法性不仅费时费力,也容易出错;但利用XML schema校验方法,开发出的schema校验规则文件复杂,可能比XML格式的报文更加冗长,不利于理解代码,而且报错信息不全,检验不准确并且不可控。

发明内容

有鉴于此,本发明要解决的一个技术问题是提供一种报文格式校验方法、装置以及存储介质。

根据本公开的一个方面,提供一种报文格式校验方法,包括:基于报文规则信息确定与标签相对应的属性以及所述属性的属性值,用以生成校验规则文件;解析待校验报文,获取所述待校验报文中的报文节点信息;解析所述校验规则文件,获取校验规则信息;基于所述校验规则信息对所述报文节点信息进行校验,获取校验结果。

可选地,基于第一文件路径和第二文件路径分别加载所述待校验报文和所述校验规则文件,并分别转换为对应的文件对象。

可选地,所述待校验报文包括:XML格式报文;所述解析待校验的报文,获取所述待校验报文中的报文节点信息包括:获取所述XML格式报文中的第一根节点;基于所述第一根节点进行搜索处理,获取所述XML格式报文中的全部第一子节点;生成与所述第一根节点、所述第一子节点相对应的全部报文节点信息;其中,所述报文节点信息包括所述标签。

可选地,所述校验规则文件包括:XML规则文件;所述解析所述校验规则文件,获取校验规则信息包括:获取所述XML规则文件中的第二根节点;基于所述第二根节点进行搜索处理,获取所述XML规则文件中的全部第二子节点;生成与所述第二根节点、所述第二子节点相对应的全部规则节点信息;基于所述规则节点信息获取所述校验规则信息。

可选地,所述规则节点信息包括:所述标签、所述属性和所述属性值;所述基于所述规则节点信息获取所述校验规则信息包括:在所述规则节点信息中提取所述标签、所述属性和所述属性值;根据所述属性和所述属性值生成与所述标签对应的所述校验规则信息。

可选地,所述基于所述校验规则信息对所述报文节点信息进行校验包括:基于与所述规则节点信息对应的标签与所述报文节点信息的标签之间的匹配关系,使用所述校验规则信息对所述报文节点信息进行校验;其中,所述XML格式报文和所述XML规则文件的格式相同。

可选地,如果判断所述全部报文节点信息中存在不符合所述校验规则信息的报文节点信息,则确定出现错误的报文节点信息以及错误原因。

可选地,基于所述出现错误的报文节点信息生成所述校验结果;其中,所述校验结果包括:标签信息、错误原因。

可选地,所述属性包括:标签存在特征属性、标签出现次数属性、标签类型属性、标签枚举值属性、标签匹配策略属性和标签互斥属性中的一个或多个。

根据本公开的一个方面,提供一种报文格式校验装置,包括:规则文件生成模块,用于基于报文规则信息确定与标签相对应的属性以及所述属性的属性值,用以生成校验规则文件;第一内容解析模块,用于解析待校验报文,获取所述待校验报文中的报文节点信息;第二内容解析模块,用于解析所述校验规则文件,获取校验规则信息;校验比对模块,用于基于所述校验规则信息对所述报文节点信息进行校验,获取校验结果。

可选地,文件加载模块,用于基于第一文件路径和第二文件路径分别加载所述待校验报文和所述校验规则文件,并分别转换为对应的文件对象。

可选地,所述待校验报文包括:XML格式报文;所述第一内容解析模块,用于获取所述XML格式报文中的第一根节点;基于所述第一根节点进行搜索处理,获取所述XML格式报文中的全部第一子节点;生成与所述第一根节点、所述第一子节点相对应的全部报文节点信息;其中,所述报文节点信息包括所述标签。

可选地,所述校验规则文件包括:XML规则文件;所述第二内容解析模块,用于获取所述XML规则文件中的第二根节点;基于所述第二根节点进行搜索处理,获取所述XML规则文件中的全部第二子节点;生成与所述第二根节点、所述第二子节点相对应的全部规则节点信息;基于所述规则节点信息获取所述校验规则信息。

可选地,所述规则节点信息包括:所述标签、所述属性和所述属性值;所述第二内容解析模块,具体用于在所述规则节点信息中提取所述标签、所述属性和所述属性值;根据所述属性和所述属性值生成与所述标签对应的所述校验规则信息。

可选地,所述校验比对模块,用于基于与所述规则节点信息对应的标签与所述报文节点信息的标签之间的匹配关系,使用所述校验规则信息对所述报文节点信息进行校验;其中,所述XML格式报文和所述XML规则文件的格式相同。

可选地,所述校验比对模块,还用于如果判断所述全部报文节点信息中存在不符合所述校验规则信息的报文节点信息,则确定出现错误的报文节点信息以及错误原因。

可选地,所述校验比对模块,还用于基于所述出现错误的报文节点信息生成所述校验结果;其中,所述校验结果包括:标签信息、错误原因。

根据本公开的又一方面,提供一种报文格式校验装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的方法。

根据本公开的再一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如上的方法。

本公开的报文格式校验方法、装置以及存储介质,基于报文规则信息确定与标签相对应的属性以及属性的属性值,生成校验规则文件,解析校验规则文件获取校验规则信息用于进行校验;可以对报文的正确性进行自动化检验,提高开发和测试的效率;利用报文标签生成规则文件,不扩展原有的标签,能够减少开发工作量,校验规则简便,并可以提高报错准确性。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为根据本公开的报文格式校验方法的一个实施例的流程示意图;

图2为根据本公开的报文格式校验方法的一个实施例中的解析待校验报文的流程示意图;

图3为根据本公开的报文格式校验方法的一个实施例中的解析校验规则文件的流程示意图;

图4为根据本公开的报文格式校验方法的一个实施例中的进行校验的流程示意图;

图5为根据本公开的报文格式校验装置的一个实施例的模块示意图;

图6为根据本公开的报文格式校验装置的另一个实施例的模块示意图;

图7为根据本公开的报文格式校验装置的又一个实施例的模块示意图。

具体实施方式

下面参照附图对本公开进行更全面的描述,其中说明本公开的示例性实施例。下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。下面结合各个图和实施例对本公开的技术方案进行多方面的描述。

下文中的“第一”、“第二”等仅用于描述上相区别,并没有其它特殊的含义。

图1为根据本公开的报文格式校验方法的一个实施例的流程示意图,如图1所示:

步骤101,基于报文规则信息确定与标签相对应的属性以及属性的属性值,用以生成校验规则文件。

在一个实施例中,报文可以为多种,例如为XML格式报文等。可扩展标记语言,标准通用标记语言的子集,简称XML,是一种用于标记电子文件使其具有结构性的标记语言。标签包围在“<”和“>”之间,标准通用标记语言还定义了标签的特性属性。

获取待检验的XML格式报文的报文规则信息,报文规则包括标签的出现次数、互斥属性、类型等规则。属性包括标签存在特征属性、标签出现次数属性、标签类型属性、标签枚举值属性、标签匹配策略属性和标签互斥属性中的一个或多个。

校验规则文件可以为XML规则文件等。XML规则文件的格式与XML格式报文的格式相同,即XML规则文件的格式与XML格式报文具有相同的标签以及相同的结构。

步骤102,解析待校验报文,获取待校验报文中的报文节点信息。例如,XML格式报文为树形结构,报文节点信息与XML格式报文中的标签相对应,报文节点信息包括标签以及相应的值等。

步骤103,解析校验规则文件,获取校验规则信息。例如,对XML规则文件进行解析,获取校验规则信息。

步骤104,基于校验规则信息对报文节点信息进行校验,获取校验结果。

本公开基于报文规则信息确定与标签相对应的属性以及属性的属性值,生成校验规则文件,对设备返回的XML格式报文的正确性进行自动化检验,可大大减少开发工作量,校验规则简练,同时提高了报错的准确性,也可对报错信息进行自定义控制。

在一个实施例中,基于第一文件路径和第二文件路径分别加载待校验报文和校验规则文件,并分别转换为对应的文件对象。例如,输入两个XML文件的路径,将XML规则文件与XML格式报文加载到内存中并转化为File对象,将File对象转为XML对象;使用校验规则信息对XML格式报文进行校验对比,过程中发现错误将错误记录至错误缓冲区,最后校验完毕,将所有的错误信息进行输出,如果无错误则提示成功。

图2为根据本公开的报文格式校验方法的一个实施例中的解析待校验报文的流程示意图,如图2所示:

步骤201,获取XML格式报文中的第一根节点。

步骤202,基于第一根节点进行搜索处理,获取XML格式报文中的全部第一子节点。

步骤203,生成与第一根节点、第一子节点相对应的全部报文节点信息;报文节点信息包括标签等。

XML格式报文为树形结构,可以采用多种搜索算法进行遍历,获取全部报文节点信息。XML格式报文的每个XML标签都可以抽象为一个标签节点,区别在于名称和属性以及值不同,节点下可嵌套节点,对于每个标签节点都生成报文节点信息。

图3为根据本公开的报文格式校验方法的一个实施例中的解析校验规则文件的流程示意图,如图3所示:

步骤301,获取XML规则文件中的第二根节点。

步骤302,基于第二根节点进行搜索处理,获取XML规则文件中的全部第二子节点。

步骤303,生成与第二根节点、第二子节点相对应的全部规则节点信息。

步骤304,基于规则节点信息获取校验规则信息。规则节点信息包括标签、属性和属性值。

XML规则文件为树形结构,可以采用多种搜索算法进行遍历,获取全部规则节点信息。XML规则文件的每个XML标签都可以抽象为一个规则节点,对于每个规则节点都生成规则节点信息。基于规则节点信息中的标签、属性和属性值获取校验规则信息。

图4为根据本公开的报文格式校验方法的一个实施例中的进行校验的流程示意图,如图4所示:

步骤401,在规则节点信息中提取标签、属性和属性值。

步骤402,根据属性和属性值生成与标签对应的校验规则信息。

步骤403,基于与规则节点信息对应的标签与报文节点信息的标签之间的匹配关系,使用校验规则信息对报文节点信息进行校验。

XML格式报文和XML规则文件的格式相同,XML格式报文和XML规则文件中标签为一一对应,基于与规则节点信息对应的标签与报文节点信息的标签之间的对应关系,使用校验规则信息对报文节点信息进行校验。

如果判断全部报文节点信息中存在不符合校验规则信息的报文节点信息,则确定出现错误的报文节点信息以及错误原因。基于出现错误的报文节点信息生成校验结果,校验结果包括标签信息、错误原因等。

在一个实施例中,XML格式报文中的每个XML标签都可以抽象为一个标签节点,对于每个节点(标签)都有相对应的属性,如下表1所示:

表1-标签属性以及属性值表

如表1所示,标签存在特征属性为must,标签出现次数属性为isList,标签类型属性为type、标签枚举值属性为values、标签匹配策略属性为matchPolicy,标签互斥属性为choices。基于XML格式报文的报文规则信息确定与标签相对应的属性以及属性的属性值,生成XML规则文件。

例如,一个XML规则文件的内容如下所示:

此XML格式报文中的标签包括rpc-reply、connection、name、ctp、protocol等,XML格式报文的报文规则可以为rpc-reply标签不能缺少、ctp标签的类型是数值类型、protocol标签的类型为枚举等。可以使用开发的文件自动生成工具软件,用户通过设置标签、指定标签之间的关系,设置对应的属性以及属性值等,由工具软件输出校验规则文件。

XML规则文件的第一行中设置了与rpc-reply标签对应的校验规则信息,校验规则信息包括:属性must=true说明rpc-reply标签不能缺少,属性type=object说明rpc-reply标签下含有子标签,同时,connection与ok二者互斥,只能出现一个。

XML规则文件的第三行中设置了与name标签的对应的校验规则信息,校验规则信息包括:name标签的属性type=string,说明该name标签的值是一个普通字符串。

XML规则文件的第四行中设置了与ctp标签对应的校验规则信息,校验规则信息包括:ctp标签的类型是数值类型,属性isList=true代表该ctp标签会出现多次。

XML规则文件的第五行中设置了与protocol标签对应的校验规则信息,校验规则信息包括:protocol标签的类型为枚举,protocol标签的值被限定在了values定义好的值里面。

另一个XML规则文件的内容如下所示:

本公开以原有的XML标签属性为基础,不依赖于扩展标签,可以不增删改任何标签名,仅通过扩展原标签属性来生成校验规则文件;定义七种独有的属性,彼此独立,在使用过程中,采用无嵌套的描述规则的方式。

传统方式在描述是否必选、是否为复杂对象、是否是枚举对象、是否互斥等规则描述的时候,是层层嵌套的方式,而且在描述枚举对象或者列表对象时,必须使用多组标签来实现对所有值的描述。本公开将所有枚举值存储到一个属性值中,只占用原标签所在行,大大缩减长度。传统方式的报错信息缺乏错误完整路径,为便于阅读,本公开能一次性把完整错误路径和错误原因同时输出在一行中的方式。

在一个实施例中,可以使用开发的解析自动工具,解析待校验的XML格式报文,获取报文节点信息。例如,报文节点信息包括与ctp标签和name标签相对应的报文节点信息。使用开发的解析自动工具,解析XML规则文件,获取规则节点信息。例如,规则节点信息包括与ctp标签和name标签相对应的规则节点信息。

可以使用开发的规则自动分析工具,在与ctp标签和name标签相对应的规则节点信息中提取标签、属性和属性值,根据属性和属性值生成与ctp标签和name标签对应的校验规则信息。与ctp标签对应的校验规则信息可以包括:ctp标签的类型是数值类型、该ctp标签会出现多次等;与name标签对应的校验规则信息可以包括:name标签的值是一个普通字符串。

基于规则节点信息、报文节点信息的ctp标签和name标签之间的匹配关系,使用与ctp标签和name标签对应的校验规则信息对与ctp标签和name标签相对应的报文节点信息以及其他的报文节点信息进行校验。

上述实施例中的报文格式校验方法,利用待校验的xml格式报文的原始标签作为主体,采用属性标记法来对标签进行描述,以此生成规则文件,可直接在原xml格式报文基础上直接按业务需要进行改写,所见即所得。与当前比较常用的XML schema和RelaxNG相比,开发量小、简单易懂;生成校验文件的长度是原XML的1/3~1/2;可以一次性记录全部错误,并精准指出错误的位置、原因。

在一个实施例中,如图5所示,本公开提供一种报文格式校验装置50,包括:规则文件生成模块51、第一内容解析模块52、第二内容解析模块53和校验比对模块54。

规则文件生成模块51基于报文规则信息确定与标签相对应的属性以及属性的属性值,用以生成校验规则文件。第一内容解析模块52解析待校验报文,获取待校验报文中的报文节点信息。第二内容解析模块53解析校验规则文件,获取校验规则信息。校验比对模块54基于校验规则信息对报文节点信息进行校验,获取校验结果。

在一个实施例中,如图6所示,文件加载模块55基于第一文件路径和第二文件路径分别加载待校验报文和校验规则文件,并分别转换为对应的文件对象。

待校验报文包括XML格式报文,第一内容解析模块52获取XML格式报文中的第一根节点,基于第一根节点进行搜索处理,获取XML格式报文中的全部第一子节点,生成与第一根节点、第一子节点相对应的全部报文节点信息;其中,报文节点信息包括标签等。

校验规则文件包括XML规则文件,第二内容解析模块53获取XML规则文件中的第二根节点,基于第二根节点进行搜索处理,获取XML规则文件中的全部第二子节点,生成与第二根节点、第二子节点相对应的全部规则节点信息。第二内容解析模块53基于规则节点信息获取校验规则信息。

规则节点信息包括标签、属性和属性值,第二内容解析模块53在规则节点信息中提取标签、属性和属性值,根据属性和属性值生成与标签对应的校验规则信息。

校验比对模块54基于与规则节点信息对应的标签与报文节点信息的标签之间的匹配关系,使用校验规则信息对报文节点信息进行校验,其中,XML格式报文和XML规则文件的格式相同。如果判断全部报文节点信息中存在不符合校验规则信息的报文节点信息,则校验比对模块54确定出现错误的报文节点信息以及错误原因。校验比对模块54基于出现错误的报文节点信息生成校验结果;校验结果包括标签信息、错误原因等。

在一个实施例中,图7为根据本公开的报文格式校验装置的又一个实施例的模块示意图。如图7所示,该装置可包括存储器71、处理器72、通信接口73以及总线74。存储器71用于存储指令,处理器72耦合到存储器71,处理器72被配置为基于存储器71存储的指令执行实现上述的报文格式校验方法。

存储器71可以为高速RAM存储器、非易失性存储器(non-volatile memory)等,存储器71也可以是存储器阵列。存储器71还可能被分块,并且块可按一定的规则组合成虚拟卷。处理器72可以为中央处理器CPU,或专用集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本公开的报文格式校验方法的一个或多个集成电路。

在一个实施例中,本公开提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上任一个实施例中的报文格式校验方法。

上述实施例提供的报文格式校验方法、装置以及存储介质,利用待校验的xml格式报文的原始标签作为主体,采用属性标记法来对标签进行描述,以此生成规则文件,开发量小、简单易懂,能够提高开发和测试的效率;可以一次性记录全部错误,并精准指出错误的位置、原因;可以对设备返回的XML报文的正确性进行自动化检验,大大减少开发工作量,校验规则简便,同时提高了报错的准确性,可对报错信息进行自定义控制。

可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。

本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于文本校验的数据处理方法、电子设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!