CN113742408A - 基于Protobuf协议动态解析的数据交互方法 - Google Patents

基于Protobuf协议动态解析的数据交互方法 Download PDF

Info

Publication number
CN113742408A
CN113742408A CN202111033698.3A CN202111033698A CN113742408A CN 113742408 A CN113742408 A CN 113742408A CN 202111033698 A CN202111033698 A CN 202111033698A CN 113742408 A CN113742408 A CN 113742408A
Authority
CN
China
Prior art keywords
interface
data
matching
file
matching rule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111033698.3A
Other languages
English (en)
Other versions
CN113742408B (zh
Inventor
胡梦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vipshop Guangzhou Software Co Ltd
Original Assignee
Vipshop Guangzhou Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vipshop Guangzhou Software Co Ltd filed Critical Vipshop Guangzhou Software Co Ltd
Priority to CN202111033698.3A priority Critical patent/CN113742408B/zh
Publication of CN113742408A publication Critical patent/CN113742408A/zh
Application granted granted Critical
Publication of CN113742408B publication Critical patent/CN113742408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供的一种基于Protobuf协议动态解析的数据交互方法,当测试人员在前端页面配置模拟接口数据时,可输入匹配规则数据和预先约定的Protobuf协议文件描述内容,当后端接收到该模拟接口数据后,可以监听并拦截接口请求服务,将接口请求服务与模拟接口数据中的匹配规则数据之间进行匹配,并在匹配成功后,通过Protobuf协议文件描述内容对匹配规则数据进行动态解析,并将解析后得到的二进制数组类型消息作为服务响应数据返回给接口请求服务中的接口请求方,该过程无需测试人员进行重复性劳动,即可进行接口数据交互,有效提高了测试效率,并节省了人力成本和时间成本。

Description

基于Protobuf协议动态解析的数据交互方法
技术领域
本发明涉及开发测试技术领域,尤其涉及一种基于Protobuf协议动态解析的数据交互方法、装置、存储介质及计算机设备。
背景技术
Protobuf(简称PB)是一种高效的数据传输格式,读写数据时需用对Protobuf协议解析后的协议代码文件进行序列化和反序列化才可使用。而在应用服务开发测试环节中,对于PB数据协议的接口数据交互的应用场景,需要可靠且高效的接口mock工具,便于开发测试人员快速进行明文转换不同的PB协议数据的接口数据模拟,以应对不同测试场景,进而保障应用服务质量。
目前,对于PB数据协议的接口数据交互的应用场景,每针对一份Protobuf协议文件的数据,就需要人为开发实现一份Protobuf协议代码文件,然后将明文数据转换成新的Protobuf协议数据返回给接口请求方,并重新部署工具应用服务,该过程需要进行大量的重复性工作,极大地耗费人力。
发明内容
本发明的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中对于PB数据协议的接口数据交互的应用场景,需要进行大量的重复性工作,极大地耗费人力的技术缺陷。
本发明提供了基于Protobuf协议动态解析的数据交互方法,所述方法包括:
接收前端页面发送的模拟接口数据,所述模拟接口数据包括匹配规则数据和预先约定的Protobuf协议文件描述内容;
监听接口请求服务,并将所述接口请求服务与所述匹配规则数据进行匹配;
若匹配成功,则基于所述Protobuf协议文件描述内容对所述匹配规则数据进行动态解析,得到二进制数组类型消息;
将所述二进制数组类型消息作为服务响应数据返回给所述接口请求服务中的接口请求方。
可选地,所述将所述接口请求服务与所述匹配规则数据进行匹配的步骤之前,还包括:
将所述匹配规则数据保存至数据库中。
可选地,所述将所述接口请求服务与所述匹配规则数据进行匹配的步骤,包括:
将所述接口请求服务中的待请求接口与所述数据库中的匹配规则数据进行匹配。
可选地,所述匹配规则数据包括服务器IP、接口协议、URI和接口入参参数;
所述将所述接口请求服务中的待请求接口与所述数据库中的匹配规则数据进行匹配的步骤,包括:
将所述接口请求服务中的请求源IP、目标IP、接口请求协议,请求URL、接口入参参数,与所述数据库中的服务器IP、接口协议、URI、接口入参参数进行匹配。
可选地,所述将所述接口请求服务与所述匹配规则数据进行匹配的步骤之后,还包括:
若匹配不成功,则将拦截到的接口请求服务进行释放。
可选地,所述基于所述Protobuf协议文件描述内容对所述匹配规则数据进行动态解析,得到二进制数组类型消息的步骤,包括:
基于所述Protobuf协议文件描述内容构造相应的动态消息类;
基于所述动态消息类对所述对所述匹配规则数据进行动态解析,得到二进制数组类型消息。
可选地,所述基于所述Protobuf协议文件描述内容构造相应的动态消息类的步骤,包括:
将所述Protobuf协议文件描述内容写入proto文件中,得到描述文件;
基于所述描述文件生成descriptor文件,所述descriptor文件为二进制文件;
基于所述descriptor文件构造相应的动态消息类。
本发明还提供了一种基于Protobuf协议动态解析的数据交互装置,包括:
数据接收模块,用于接收前端页面发送的模拟接口数据,所述模拟接口数据包括匹配规则数据和预先约定的Protobuf协议文件描述内容;
规则匹配模块,用于监听接口请求服务,并将所述接口请求服务与所述匹配规则数据进行匹配;
动态解析模块,用于若匹配成功,则基于所述Protobuf协议文件描述内容对所述匹配规则数据进行动态解析,得到二进制数组类型消息;
数据交互模块,用于将所述二进制数组类型消息作为服务响应数据返回给所述接口请求服务中的接口请求方。
本发明还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于Protobuf协议动态解析的数据交互方法的步骤。
本发明还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于Protobuf协议动态解析的数据交互方法的步骤。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明提供的一种基于Protobuf协议动态解析的数据交互方法,当测试人员在前端页面配置模拟接口数据时,可输入匹配规则数据和预先约定的Protobuf协议文件描述内容,当后端接收到该模拟接口数据后,可以监听并拦截接口请求服务,将接口请求服务与模拟接口数据中的匹配规则数据之间进行匹配,并在匹配成功后,通过Protobuf协议文件描述内容对匹配规则数据进行动态解析,并将解析后得到的二进制数组类型消息作为服务响应数据返回给接口请求服务中的接口请求方,该过程无需测试人员进行重复性劳动,即可进行接口数据交互,有效提高了测试效率,并节省了人力成本和时间成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种基于Protobuf协议动态解析的数据交互方法的流程示意图;
图2为本发明实施例提供的***原理图;
图3为本发明实施例提供的前端页面的接口匹配规则入口示意图;
图4为本发明实施例提供的前后端交互的流程示意图;
图5为本发明实施例提供的一种基于Protobuf协议动态解析的数据交互装置的结构示意图;
图6为本发明实施例提供的一种计算机设备的内部结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Protobuf(简称PB)是一种高效的数据传输格式,读写数据时需用对Protobuf协议解析后的协议代码文件进行序列化和反序列化才可使用。而在应用服务开发测试环节中,对于PB数据协议的接口数据交互的应用场景,需要可靠且高效的接口mock工具,便于开发测试人员快速进行明文转换不同的PB协议数据的接口数据模拟,以应对不同测试场景,进而保障应用服务质量。
目前,对于PB数据协议的接口数据交互的应用场景,每针对一份Protobuf协议文件的数据,就需要人为开发实现一份Protobuf协议代码文件,然后将明文数据转换成新的Protobuf协议数据返回给接口请求方,并重新部署工具应用服务,该过程需要进行大量的重复性工作,极大地耗费人力。
因此,本发明的目的是解决现有技术中对于PB数据协议的接口数据交互的应用场景,需要进行大量的重复性工作,极大地耗费人力的技术问题,并提出如下方案:
在一个实施例中,如图1所示,图1为本发明实施例提供的一种基于Protobuf协议动态解析的数据交互方法的流程示意图;本发明提供了基于Protobuf协议动态解析的数据交互方法,具体包括如下步骤:
S110:接收前端页面发送的模拟接口数据。
本实施例中,对于PB数据协议的接口数据交互的应用场景,在使用接口mock工具时,可以在前端页面输入相应的模拟接口数据,该模拟接口数据可以是匹配规则数据和预先约定的Protobuf协议文件描述内容,以便后端接收到数据后,利用Protobuf协议文件描述内容对json格式的接口响应数据进行动态解析。
可以理解的是,这里的Protobuf协议文件描述内容是依据数据生产方和消费方事先约定好的Protobuf协议进行编写后得到;例如,Protobuf协议文件描述内容中可以定义用户将要调用的接口数据。
这里的匹配规则数据为依据Protobuf协议文件描述内容编写的json格式的接口数据内容,在模拟接口数据时,测试人员只需要模拟json格式的接口数据内容,接口mock工具则会根据固定的Protobuf协议文件描述内容对明文进行转换。
可以理解的是,这里的接口数据内容包括但不限于服务器IP、接口协议、URI和接口参数;这里的接口mock工具可以假装实现的技术,比如说,前端需要使用某些api进行调试,但是服务端并没有开发完成这些api,那么前端的工作就被服务端阻塞了,此时便可以使用接口mock工具假装实现这些api,并返回特定的数据,帮助前端进行页面渲染。
S120:监听接口请求服务,并将接口请求服务与匹配规则数据进行匹配。
本步骤中,当通过步骤S110接收前端页面发送的模拟接口数据后,后端服务可以监听并拦截前端发送的服务接口请求,并将该服务接口请求与匹配规则数据之间进行匹配,若匹配成功的话,则可以将模拟接口数据作为服务响应数据返回给服务接口请求的请求方。
可以理解的是,一个服务接口请求可以包括请求源IP,目标IP,请求协议,请求URL(包括请求URI和入参参数)等,服务器接收到请求处理后,将其与前端页面发送的模拟接口数据进行匹配,并在匹配成功后,将该模拟接口数据作为响应数据发送给请求方。
S130:若匹配成功,则基于Protobuf协议文件描述内容对匹配规则数据进行动态解析,得到二进制数组类型消息。
本步骤中,通过步骤S120将接口请求服务与匹配规则数据进行匹配后,若匹配成功的话,则表明该接口请求服务中请求的接口数据与模拟接口数据对应。此时,可以基于Protobuf协议文件描述内容对匹配规则数据进行动态解析,进而得到二进制数组类型消息。
可以理解的是,Protobuf为结构化数据格式标准,提供序列化和反序列方法,用于存储和交换,可通过.proto文件生成对应语言的类代码。而在使用PB协议的接口数据进行交互时,若每次PB协议文件修改后都需要重新生成协议代码文件,并重新部署工具服务应用才可正常序列化及反序列化读写数据的话,则会导致工作效率较低。
因而,本申请利用Protobuf提供的动态解析机制来对匹配规则数据进行动态解析,该过程可以根据实际业务的多样性而制定的Protobuf协议文件,动态调整生成Protobuf协议描述文件,接着利用Protobuf协议描述文件中的的Protobuf协议文件描述内容对json格式的匹配规则数据进行动态解析,从而将匹配规则数据动态转换成Protobuf协议数据,即本申请中的二进制数组类型消息。
S140:将二进制数组类型消息作为服务响应数据返回给接口请求服务中的接口请求方。
本步骤中,通过步骤S130得到二进制数组类型消息后,可以将该二进制数组类型消息作为服务响应数据返回给匹配成功的接口服务请求中的接口请求方,以便该接口请求方通过该接口进行后续工作。
示意性地,如图2所示,图2为本发明实施例提供的***原理图,图2中,当用户访问浏览器WEB前端页面时,可输入相应的模拟接口数据,主应用入口接收到该模拟接口数据,如接口匹配规则配置、接口数据输入,即本申请中的匹配规则数据,以及PB协议内容输入,即本申请中预先约定的Protobuf协议文件描述内容后,将其传输至后端服务模块,后端服务模块可以将规则存储至数据库,然后通过接口监听匹配判断当前的接口请求服务是否匹配成功,若匹配成功的话,则通过PB协议对匹配规则数据进行动态解析,将造数内容格式转换为Protobuf协议数据,即本申请中的二进制数组类型消息,最终,将二进制数组类型消息作为服务响应数据返回给接口请求服务中的接口请求方。
上述实施例中,当测试人员在前端页面配置模拟接口数据时,可输入匹配规则数据和预先约定的Protobuf协议文件描述内容,当后端接收到该模拟接口数据后,可以保存至数据库,同时拦截接口请求服务,将接口请求服务与模拟接口数据中的匹配规则数据之间进行匹配,并在匹配成功后,通过Protobuf协议文件描述内容对匹配规则数据进行动态解析,并将解析后得到的二进制数组类型消息作为服务响应数据返回给接口请求服务中的接口请求方,该过程无需测试人员进行重复性劳动,即可进行接口数据交互,有效提高了测试效率,并节省了人力成本和时间成本。
上述实施例对本申请中的基于Protobuf协议动态解析的数据交互方法进行展开描述,下面将对本申请中的匹配规则数据进行说明。
在一个实施例中,步骤S120中将所述接口请求服务与所述匹配规则数据进行匹配的步骤之前,还可以包括:将所述匹配规则数据保存至数据库中。
本实施例中,当后端服务接收到前端页面发送的模拟接口数据后,可以将该模拟接口数据中的匹配规则数据保存至数据库中,以便在监听并拦截相应的接口请求服务后,调用数据库中保存的匹配规则数据与其进行匹配。
上述实施例对本申请中的匹配规则数据进行说明,下面将对本申请中接口请求服务与匹配规则数据的匹配过程进行描述。
在一个实施例中,步骤S120中将所述接口请求服务与所述匹配规则数据进行匹配的步骤,可以包括:
S121:将所述接口请求服务中的待请求接口与所述数据库中的匹配规则数据进行匹配。
本实施例中,在将接口请求服务与匹配规则数据进行匹配时,主要是将接口请求服务中的待请求接口与数据库中存储的匹配规则数据进行匹配,可以是依据前端输入的源服务器IP、接口协议、URI和接口入参参数等来进行匹配。
上述实施例对本申请中接口请求服务与匹配规则数据的匹配过程进行描述,下面将对本申请中接口请求服务中的待请求接口与数据库中的匹配规则数据进行匹配的过程进行具体说明。
在一个实施例中,如图3所示,图3为本发明实施例提供的前端页面的接口匹配规则入口示意图;所述匹配规则数据可以包括服务器IP、接口协议、URI和接口入参参数。
步骤S121中将所述接口请求服务中的待请求接口与所述数据库中的匹配规则数据进行匹配的步骤,可以包括:将所述接口请求服务中的请求源IP、目标IP、接口请求协议,请求URL、接口入参参数,与所述数据库中的服务器IP、接口协议、URI、接口入参参数进行匹配。
本实施例中,如图3所示,图3中对模拟接口数据进行规则设置时,可以设置规则名称、方式、URL以及Params,继而形成匹配规则数据。
当后端服务接收到匹配规则数据,并将其保存至数据库后,可以将拦截的接口请求服务中的请求源IP、目标IP、接口请求协议,请求URL、接口入参参数,与数据库中存储的服务器IP、接口协议、URI、接口入参参数进行匹配,从而得到相应的匹配结果。
上述实施例对本申请中接口请求服务中的待请求接口与数据库中的匹配规则数据进行匹配的过程进行具体说明,下面将对本申请中匹配不成功的步骤进行描述。
在一个实施例中,如图4所示,图4为本发明实施例提供的前后端交互的流程示意图;步骤S120中将所述接口请求服务与所述匹配规则数据进行匹配的步骤之后,还可以包括:若匹配不成功,则将拦截到的接口请求服务进行释放。
本实施例中,当拦截到的接口请求服务与匹配规则数据不匹配的话,则表明当前接口请求服务请求的接口数据并非模拟接口数据,此时,可以将拦截到的接口请求服务释放,以便通过其他途径响应该接口请求服务。
如图4所示,用户在前端页面配置匹配规则后存储至数据库,同时后端服务监听拦截接口,将拦截到的接口与数据库中的规则数据进行匹配,若匹配成功,则动态解析PB描述内容后得到PB描述文件,并将PB描述文件明文序列化后返回给请求方,若匹配不成功的话,则不拦截接口。
上述实施例对本申请中匹配不成功的步骤进行描述,下面将对本申请中如何基于Protobuf协议文件描述内容对匹配规则数据进行动态解析的过程进行说明。
在一个实施例中,步骤S130中基于所述Protobuf协议文件描述内容对所述匹配规则数据进行动态解析,得到二进制数组类型消息的步骤,可以包括:
S131:基于所述Protobuf协议文件描述内容构造相应的动态消息类。
S132:基于所述动态消息类对所述对所述匹配规则数据进行动态解析,得到二进制数组类型消息。
本实施例中,使用Protobuf的动态解析机制来处理匹配规则数据时,无需根据proto文件编译生成的类来反序列化消息,而是通过proto文件生成的descriptor来构造动态消息类,然后反序列化(解析)消息。
因此,本申请在对匹配规则数据进行动态解析之前,可以基于Protobuf协议文件描述内容来构造相应的动态消息类,以便通过该动态消息类来对匹配规则数据进行动态解析,以此来获得二进制数组类型消息。
上述实施例对本申请中如何基于Protobuf协议文件描述内容对匹配规则数据进行动态解析的过程进行说明,下面将对本申请中如何基于Protobuf协议文件描述内容构造相应的动态消息类的过程进行解释说明。
在一个实施例中,步骤S131中基于所述Protobuf协议文件描述内容构造相应的动态消息类的步骤,可以包括:
S311:将所述Protobuf协议文件描述内容写入proto文件中,得到描述文件。
S312:基于所述描述文件生成descriptor文件,所述descriptor文件为二进制文件。
S313:基于所述descriptor文件构造相应的动态消息类。
本实施例中,后端依据Protobuf协议文件描述内容构造相应的动态消息类之前,可以新建一个临时文件,并保证该临时文件中的输入内容非空,且协议内容格式正确。
接着将Protobuf协议文件描述内容写入.proto格式的文件,即本申请中的proto文件,得到描述文件后,可以根据该描述文件中的描述内容来生成descriptor文件,然后依据descriptor文件来构造相应的动态消息类。
可以理解的是,本申请在构造动态消息类时,首先将Protobuf协议文件描述内容写入.proto格式的文件中,从而获得PBMessage对象,接着利用PBMessage对象获得Descriptors.Descriptor对象,有了Descriptors.Descriptor对象后,就可以创建DynamicMessage对象,即本申请中的动态消息类,而有了动态消息类,就可以解析对应的请求。
进一步地,在基于描述文件生成descriptor文件时,可以利用protoc可执行文件在服务器中对描述文件执行“protoc--descriptor_set_out=$outputpath”命令来生成descriptor文件。
本实施例利用Protobuf的动态解析机制来处理匹配规则数据,使用proto文件生成的descriptor文件来构造DynamicMessage类,并通过DynamicMessage类来解析json格式的接口响应数据,生成二进制数组类型的数据,以此来提高测试效率。
下面对本申请实施例提供的基于Protobuf协议动态解析的数据交互装置进行描述,下文描述的基于Protobuf协议动态解析的数据交互装置与上文描述的基于Protobuf协议动态解析的数据交互方法可相互对应参照。
在一个实施例中,如图5所示,图5为本发明实施例提供的一种基于Protobuf协议动态解析的数据交互装置的结构示意图,本发明还提供了一种基于Protobuf协议动态解析的数据交互装置,包括数据接收模块210、规则匹配模块220、动态解析模块230、数据交互模块240,具体包括如下:
数据接收模块210,用于接收前端页面发送的模拟接口数据,所述模拟接口数据包括匹配规则数据和预先约定的Protobuf协议文件描述内容。
规则匹配模块220,用于监听接口请求服务,并将所述接口请求服务与所述匹配规则数据进行匹配。
动态解析模块230,用于若匹配成功,则基于所述Protobuf协议文件描述内容对所述匹配规则数据进行动态解析,得到二进制数组类型消息。
数据交互模块240,用于将所述二进制数组类型消息作为服务响应数据返回给所述接口请求服务中的接口请求方。
上述实施例中,当测试人员在前端页面配置模拟接口数据时,可输入匹配规则数据和预先约定的Protobuf协议文件描述内容,当后端接收到该模拟接口数据后,可以监听并拦截接口请求服务,将接口请求服务与模拟接口数据中的匹配规则数据之间进行匹配,并在匹配成功后,通过Protobuf协议文件描述内容对匹配规则数据进行动态解析,并将解析后得到的二进制数组类型消息作为服务响应数据返回给接口请求服务中的接口请求方,该过程无需测试人员进行重复性劳动,即可进行接口数据交互,有效提高了测试效率,并节省了人力成本和时间成本。
在一个实施例中,所述规则匹配模块220之前,还可以包括:
数据保存模块,用于将所述匹配规则数据保存至数据库中。
在一个实施例中,所述规则匹配模块220可以包括:
接口匹配模块,用于将所述接口请求服务中的待请求接口与所述数据库中的匹配规则数据进行匹配。
在一个实施例中,所述匹配规则数据可以包括服务器IP、接口协议、URI和接口入参参数。所述接口匹配模块可以包括:
数据匹配模块,用于将所述接口请求服务中的请求源IP、目标IP、接口请求协议,请求URL、接口入参参数,与所述数据库中的服务器IP、接口协议、URI、接口入参参数进行匹配。
在一个实施例中,所述规则匹配模块220之后,还可以包括:
接口释放模块,用于若匹配不成功,则将拦截到的接口请求服务进行释放。
在一个实施例中,所述动态解析模块230可以包括:
构造模块,用于基于所述Protobuf协议文件描述内容构造相应的动态消息类。
解析模块,用于基于所述动态消息类对所述对所述匹配规则数据进行动态解析,得到二进制数组类型消息。
在一个实施例中,所述构造模块可以包括:
写入模块,用于将所述Protobuf协议文件描述内容写入proto文件中,得到描述文件。
文件生成模块,用于基于所述描述文件生成descriptor文件,所述descriptor文件为二进制文件。
确定模块,用于基于所述descriptor文件构造相应的动态消息类。
在一个实施例中,本发明还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于Protobuf协议动态解析的数据交互方法的步骤。
在一个实施例中,本发明还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于Protobuf协议动态解析的数据交互方法的步骤。
示意性地,如图6所示,图6为本发明实施例提供的一种计算机设备的内部结构示意图,该计算机设备300可以被提供为一服务器。参照图6,计算机设备300包括处理组件302,其进一步包括一个或多个处理器,以及由存储器301所代表的存储器资源,用于存储可由处理组件302的执行的指令,例如应用程序。存储器301中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件302被配置为执行指令,以执行上述任意实施例的基于Protobuf协议动态解析的数据交互方法。
计算机设备300还可以包括一个电源组件303被配置为执行计算机设备300的电源管理,一个有线或无线网络接口304被配置为将计算机设备300连接到网络,和一个输入输出(I/O)接口305。计算机设备300可以操作基于存储在存储器301的操作***,例如WindowsServer TM、Mac OS XTM、Unix TM、Linux TM、Free BSDTM或类似。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于Protobuf协议动态解析的数据交互方法,其特征在于,所述方法包括:
接收前端页面发送的模拟接口数据,所述模拟接口数据包括匹配规则数据和预先约定的Protobuf协议文件描述内容;
监听接口请求服务,并将所述接口请求服务与所述匹配规则数据进行匹配;
若匹配成功,则基于所述Protobuf协议文件描述内容对所述匹配规则数据进行动态解析,得到二进制数组类型消息;
将所述二进制数组类型消息作为服务响应数据返回给所述接口请求服务中的接口请求方。
2.根据权利要求1所述的基于Protobuf协议动态解析的数据交互方法,其特征在于,所述将所述接口请求服务与所述匹配规则数据进行匹配的步骤之前,还包括:
将所述匹配规则数据保存至数据库中。
3.根据权利要求2所述的基于Protobuf协议动态解析的数据交互方法,其特征在于,所述将所述接口请求服务与所述匹配规则数据进行匹配的步骤,包括:
将所述接口请求服务中的待请求接口与所述数据库中的匹配规则数据进行匹配。
4.根据权利要求3所述的基于Protobuf协议动态解析的数据交互方法,其特征在于,所述匹配规则数据包括服务器IP、接口协议、URI和接口入参参数;
所述将所述接口请求服务中的待请求接口与所述数据库中的匹配规则数据进行匹配的步骤,包括:
将所述接口请求服务中的请求源IP、目标IP、接口请求协议,请求URL、接口入参参数,与所述数据库中的服务器IP、接口协议、URI、接口入参参数进行匹配。
5.根据权利要求1所述的基于Protobuf协议动态解析的数据交互方法,其特征在于,所述将所述接口请求服务与所述匹配规则数据进行匹配的步骤之后,还包括:
若匹配不成功,则将拦截到的接口请求服务进行释放。
6.根据权利要求1所述的基于Protobuf协议动态解析的数据交互方法,其特征在于,所述基于所述Protobuf协议文件描述内容对所述匹配规则数据进行动态解析,得到二进制数组类型消息的步骤,包括:
基于所述Protobuf协议文件描述内容构造相应的动态消息类;
基于所述动态消息类对所述对所述匹配规则数据进行动态解析,得到二进制数组类型消息。
7.根据权利要求6所述的基于Protobuf协议动态解析的数据交互方法,其特征在于,所述基于所述Protobuf协议文件描述内容构造相应的动态消息类的步骤,包括:
将所述Protobuf协议文件描述内容写入proto文件中,得到描述文件;
基于所述描述文件生成descriptor文件,所述descriptor文件为二进制文件;
基于所述descriptor文件构造相应的动态消息类。
8.一种基于Protobuf协议动态解析的数据交互装置,其特征在于,包括:
数据接收模块,用于接收前端页面发送的模拟接口数据,所述模拟接口数据包括匹配规则数据和预先约定的Protobuf协议文件描述内容;
规则匹配模块,用于监听接口请求服务,并将所述接口请求服务与所述匹配规则数据进行匹配;
动态解析模块,用于若匹配成功,则基于所述Protobuf协议文件描述内容对所述匹配规则数据进行动态解析,得到二进制数组类型消息;
数据交互模块,用于将所述二进制数组类型消息作为服务响应数据返回给所述接口请求服务中的接口请求方。
9.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述基于Protobuf协议动态解析的数据交互方法的步骤。
10.一种计算机设备,其特征在于:所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述基于Protobuf协议动态解析的数据交互方法的步骤。
CN202111033698.3A 2021-09-03 2021-09-03 基于Protobuf协议动态解析的数据交互方法 Active CN113742408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111033698.3A CN113742408B (zh) 2021-09-03 2021-09-03 基于Protobuf协议动态解析的数据交互方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111033698.3A CN113742408B (zh) 2021-09-03 2021-09-03 基于Protobuf协议动态解析的数据交互方法

Publications (2)

Publication Number Publication Date
CN113742408A true CN113742408A (zh) 2021-12-03
CN113742408B CN113742408B (zh) 2024-02-02

Family

ID=78735563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111033698.3A Active CN113742408B (zh) 2021-09-03 2021-09-03 基于Protobuf协议动态解析的数据交互方法

Country Status (1)

Country Link
CN (1) CN113742408B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115454880A (zh) * 2022-10-25 2022-12-09 中邮消费金融有限公司 一种动态生成数据的请求处理组件

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160065460A1 (en) * 2013-05-10 2016-03-03 Huawei Technologies Co., Ltd. Packet processing method and apparatus
CN106648945A (zh) * 2016-09-30 2017-05-10 北京金山安全软件有限公司 一种接口数据测试方法、装置及电子设备
CN110673856A (zh) * 2019-09-30 2020-01-10 新华三大数据技术有限公司 一种数据处理方法、装置及机器可读存储介质
CN111212056A (zh) * 2019-12-30 2020-05-29 中电工业互联网有限公司 一种基于809协议的数据解析与分发***及方法
CN111913922A (zh) * 2019-05-10 2020-11-10 北京百度网讯科技有限公司 二进制结构化日志的生成方法、装置、设备及存储介质
US20210240712A1 (en) * 2020-01-31 2021-08-05 Salesforce.Com, Inc. Merging multiple unsynchronized streams of related events and multi-tenant support

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160065460A1 (en) * 2013-05-10 2016-03-03 Huawei Technologies Co., Ltd. Packet processing method and apparatus
CN106648945A (zh) * 2016-09-30 2017-05-10 北京金山安全软件有限公司 一种接口数据测试方法、装置及电子设备
CN111913922A (zh) * 2019-05-10 2020-11-10 北京百度网讯科技有限公司 二进制结构化日志的生成方法、装置、设备及存储介质
CN110673856A (zh) * 2019-09-30 2020-01-10 新华三大数据技术有限公司 一种数据处理方法、装置及机器可读存储介质
CN111212056A (zh) * 2019-12-30 2020-05-29 中电工业互联网有限公司 一种基于809协议的数据解析与分发***及方法
US20210240712A1 (en) * 2020-01-31 2021-08-05 Salesforce.Com, Inc. Merging multiple unsynchronized streams of related events and multi-tenant support

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
田丹: "一种Protobuf到JSON动态转换方法", 数据与计算发展前沿, no. 04, pages 155 - 164 *
蔡乐;石荣;许都;: "基于关联规则挖掘的未知协议特征提取方法", 电子信息对抗技术, no. 06, pages 20 - 25 *
隋心怡;王瑞刚;梁小江;: "基于Google Protocol Buffer的即时通讯***设计", 电子科技, no. 01, pages 125 - 128 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115454880A (zh) * 2022-10-25 2022-12-09 中邮消费金融有限公司 一种动态生成数据的请求处理组件

Also Published As

Publication number Publication date
CN113742408B (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
CN111083225B (zh) 在物联网平台中的数据处理方法、装置及物联网平台
US10204035B1 (en) Systems, methods and devices for AI-driven automatic test generation
US8745641B1 (en) Automatic verification and anomaly detection in a representational state transfer (REST) application programming interface
CN111930365B (zh) 基于Qt的应用程序快速开发框架、开发方法及运行方法
CN110287109B (zh) 协议接口的测试方法、装置、计算机设备及其存储介质
WO2020233369A1 (zh) 基于模拟端口改进软件集成***的方法及相关设备
US6654699B2 (en) Computer network testing system and method using client playback of edited network information
US20040111727A1 (en) Automatic context management for web applications with client side code execution
US6567767B1 (en) Terminal server simulated client performance measurement tool
CN104932974B (zh) 一种脚本转换方法和装置
CN110955409B (zh) 在云平台上创建资源的方法和装置
US20080091775A1 (en) Method and apparatus for parallel operations on a plurality of network servers
CN111221729B (zh) 一种平台服务与测试服务分离的自动化测试方法及***
CN107168844B (zh) 一种性能监控的方法及装置
CN106919511B (zh) 应用的模拟方法、模拟应用及其运作方法以及模拟***
CN113127356A (zh) 压测方法、装置、电子设备及存储介质
CN113746842A (zh) 基于Protobuf协议动态解析的消息发送方法
CN113742408B (zh) 基于Protobuf协议动态解析的数据交互方法
CN113742231A (zh) 基于Protobuf协议动态解析的造数方法及装置
CN114035789A (zh) 日志解析模板的生成方法、日志解析方法、装置及设备
CN112052163B (zh) 高并发网页压力测试方法、装置、电子设备以及存储介质
CN111124937B (zh) 基于插桩函数辅助提高生成测试用例效率的方法及***
CN116521552A (zh) 一种测试缺陷的获取方法、装置、设备及可读存储介质
CN116166533A (zh) 接口测试方法、装置、终端设备以及存储介质
CN110874278A (zh) 外部***的嵌入方法、工作流***、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant