CN113742231A - 基于Protobuf协议动态解析的造数方法及装置 - Google Patents

基于Protobuf协议动态解析的造数方法及装置 Download PDF

Info

Publication number
CN113742231A
CN113742231A CN202111033702.6A CN202111033702A CN113742231A CN 113742231 A CN113742231 A CN 113742231A CN 202111033702 A CN202111033702 A CN 202111033702A CN 113742231 A CN113742231 A CN 113742231A
Authority
CN
China
Prior art keywords
cache
file
array type
content
protobuf
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.)
Pending
Application number
CN202111033702.6A
Other languages
English (en)
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 CN202111033702.6A priority Critical patent/CN113742231A/zh
Publication of CN113742231A publication Critical patent/CN113742231A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • 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/24552Database cache management
    • 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
    • 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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供的一种基于Protobuf协议动态解析的造数方法及装置,在应用服务开发测试环节使用PB协议进行造数时,测试人员可在前端页面输入相应的造数内容和预先约定的Protobuf协议文件描述内容,后端接收到上述数据后,利用预先约定的Protobuf协议文件描述内容对造数内容进行动态解析后得到对应的二进制数组类型消息,无需重新生成协议代码文件,并重新部署工具服务应用,即可对二进制数组类型消息进行序列化及反序列化读写数据。

Description

基于Protobuf协议动态解析的造数方法及装置
技术领域
本发明涉及测试造数技术领域,尤其涉及一种基于Protobuf协议动态解析的造数方法、装置、存储介质及计算机设备。
背景技术
随着互联网应用的发展,网络应用服务的性能效率以及数据安全要求越来越高,网络应用服务数据交互使用Protobuf数据协议的缓存数据的场景越来越多。Protobuf(简称PB)协议文件的数据流是以二进制数据流的形式传输,读写数据时,可通过protoc可执行文件在操作系统下对PB协议文件进行不同网络编程语言的解析,生成对应编程语言的协议代码文件,然后对协议代码文件进行序列化和反序列化后方可使用。
例如,在应用服务开发测试环节中,对于PB协议的缓存数据存取的应用场景,需要可靠且高效的测试造数工具,便于开发测试人员快速进行明文转换不同的PB协议数据的造数,以应对不同测试场景,进而保障应用服务质量。
但是,现有的应用服务开发测试环节在使用PB协议进行造数时,需要在每次PB协议文件修改后,重新生成协议代码文件上传到缓存造数工具代码中,然后将明文数据转换成新的PB协议数据写入缓存组件,并重新部署工具服务应用才可正常序列化及反序列化读写数据,该造数过程较为复杂,工作效率较低。
发明内容
本发明的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中应用服务开发测试环节使用PB协议进行造数时的造数过程较为复杂,工作效率较低的技术缺陷。
本发明提供了一种基于Protobuf协议动态解析的造数方法,所述方法包括:
接收前端页面发送的模拟请求数据,所述模拟请求数据包括造数内容和预先约定的Protobuf协议文件描述内容,所述造数内容为依据所述Protobuf协议文件描述内容编写的json格式的缓存数据字符串;
基于所述Protobuf协议文件描述内容对所述造数内容进行动态解析,得到二进制数组类型消息,并将所述二进制数组类型消息作为造数后得到的测试数据。
可选地,所述基于所述Protobuf协议文件描述内容对所述造数内容进行动态解析,得到二进制数组类型消息的步骤,包括:
基于所述Protobuf协议文件描述内容构造相应的动态消息类;
基于所述动态消息类对所述对所述造数内容进行动态解析,得到二进制数组类型消息。
可选地,所述基于所述Protobuf协议文件描述内容构造相应的动态消息类的步骤,包括:
将所述Protobuf协议文件描述内容写入proto文件中,得到描述文件;
基于所述描述文件生成descriptor文件,所述descriptor文件为二进制文件;
基于所述descriptor文件构造相应的动态消息类。
可选地,所述模拟请求数据还包括缓存组件节点和缓存key;
所述缓存key用于与所述二进制数组类型消息进行配对。
可选地,所述的基于Protobuf协议动态解析的造数方法,还包括:
基于所述缓存组件节点将所述二进制数组类型消息和所述缓存key写入缓存组件。
可选地,所述缓存组件节点包括redis节点,所述缓存组件包括redis缓存组件;
所述基于所述缓存组件节点将所述二进制数组类型消息和所述缓存key写入缓存组件的步骤,包括:
基于所述redis节点创建与所述redis缓存组件之间的数据连接;
将所述二进制数组类型消息和所述缓存key写入数据连接后的redis缓存组件中。
可选地,所述缓存组件节点包括tair节点,所述缓存组件包括tair缓存组件;
所述基于所述缓存组件节点将所述二进制数组类型消息和所述缓存key写入缓存组件的步骤,包括:
基于所述tair节点创建与所述tair缓存组件之间的数据连接;
将所述二进制数组类型消息和所述缓存key写入数据连接后的tair缓存组件中。
本发明还提供了一种基于Protobuf协议动态解析的造数装置,包括:
数据接收模块,用于接收前端页面发送的模拟请求数据,所述模拟请求数据包括造数内容和预先约定的Protobuf协议文件描述内容,所述造数内容为依据所述Protobuf协议文件描述内容编写的json格式的缓存数据字符串;
造数模块,用于基于所述Protobuf协议文件描述内容对所述造数内容进行动态解析,得到二进制数组类型消息,并将所述二进制数组类型消息作为造数后得到的测试数据。
本发明还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于Protobuf协议动态解析的造数方法的步骤。
本发明还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于Protobuf协议动态解析的造数方法的步骤。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明提供的一种基于Protobuf协议动态解析的造数方法及装置,在应用服务开发测试环节使用PB协议进行造数时,测试人员可在前端页面输入相应的造数内容和预先约定的Protobuf协议文件描述内容,后端接收到上述数据后,利用预先约定的Protobuf协议文件描述内容对造数内容进行动态解析后得到对应的二进制数组类型消息,无需重新生成协议代码文件,并重新部署工具服务应用,即可对二进制数组类型消息进行序列化及反序列化读写数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种基于Protobuf协议动态解析的造数方法的流程示意图;
图2为本发明实施例提供的另一种基于Protobuf协议动态解析的造数方法的流程示意图;
图3为本发明实施例提供的系统原理图;
图4为本发明实施例提供的前端页面的输入数据结构示意图;
图5为本发明实施例提供的一种基于Protobuf协议动态解析的造数装置的结构示意图;
图6为本发明实施例提供的一种计算机设备的内部结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着互联网应用的发展,网络应用服务的性能效率以及数据安全要求越来越高,网络应用服务数据交互使用Protobuf数据协议的缓存数据的场景越来越多。Protobuf(简称PB)协议文件的数据流是以二进制数据流的形式传输,读写数据时,可通过protoc可执行文件在操作系统下对PB协议文件进行不同网络编程语言的解析,生成对应编程语言的协议代码文件,然后对协议代码文件进行序列化和反序列化后方可使用。
例如,在应用服务开发测试环节中,对于PB协议的缓存数据存取的应用场景,需要可靠且高效的测试造数工具,便于开发测试人员快速进行明文转换不同的PB协议数据的造数,以应对不同测试场景,进而保障应用服务质量。
但是,现有的应用服务开发测试环节在使用PB协议进行造数时,需要在每次PB协议文件修改后,重新生成协议代码文件上传到缓存造数工具代码中,然后将明文数据转换成新的PB协议数据写入缓存组件,并重新部署工具服务应用才可正常序列化及反序列化读写数据,该造数过程较为复杂,工作效率较低。
因此,本发明的目的是解决现有技术中应用服务开发测试环节使用PB协议进行造数时的造数过程较为复杂,工作效率较低的技术问题,并提出如下技术方案:
在一个实施例中,如图1所示,图1为本发明实施例提供的一种基于Protobuf协议动态解析的造数方法的流程示意图,本发明提供了一种基于Protobuf协议动态解析的造数方法,具体步骤如下:
S110:接收前端页面发送的模拟请求数据。
本步骤中,开发测试人员在应用服务开发测试环节,需要运用可靠且高效的测试造数工具,便于开发测试人员快速进行造数,以应对不同测试场景,进而保障应用服务质量。
比如,在性能测试脚本准备阶段,脚本中的参数一般需要造数才能更好的模拟真实的环境。而有些参数,如身份证号是固定长度的,如果需要造1万个身份证号,则借助测试造数工具来辅助进行造数,以进一步提高测试效率。
本申请中的测试造数工具主要使用PB协议进行造数,在造数时,首先通过前端页面的输入入口输入相关的造数内容以及预先约定的Protobuf协议文件描述内容,以便利用Protobuf协议文件描述内容对造数内容进行动态解析。
可以理解的是,这里的Protobuf协议文件描述内容是依据数据生产方和消费方事先约定好的Protobuf协议进行编写后得到;例如,Protobuf协议文件描述内容中可以定义关键字为商品标签I2i的描述数据更新时间以及描述标签等。
这里的造数内容为依据Protobuf协议文件描述内容编写的json格式的缓存数据字符串,在造数的时候,测试人员只需要模拟json格式的明文数据,测试造数工具则会根据固定的Protobuf协议文件描述内容对明文进行转换,转换后的数据可以存储到缓存组件中,从而形成缓存数据。
比如说,缓存组件为键值对数据库时,在输入造数内容时,可以输入缓存key的值以及缓存组件节点,此时输入的json格式的明文数据则为明文形式的value,通过Protobuf协议文件描述内容对明文数据进行转换,并将转换后的数据存储至缓存组件后,此时,缓存组件中存储的value为非明文形式,可通过缓存key来查询对应的value。
S120:基于Protobuf协议文件描述内容对造数内容进行动态解析,得到二进制数组类型消息。
本步骤中,通过步骤S110接收前端页面发送的模拟请求数据后,可以基于预先约定的Protobuf协议文件描述内容对造数内容进行动态解析,从而得到二进制数组类型消息,该二进制数组类型消息可以作为造数后得到的测试数据。
可以理解的是,Protobuf为结构化数据格式标准,提供序列化和反序列方法,用于存储和交换,可通过.proto文件生成对应语言的类代码。而在使用PB协议进行造数时,若每次PB协议文件修改后都需要重新生成协议代码文件,并重新部署工具服务应用才可正常序列化及反序列化读写数据的话,则会导致工作效率较低。
因而,本申请利用Protobuf提供的动态解析机制来对造数内容进行动态解析,该过程可以根据实际业务的多样性而制定的Protobuf协议文件,动态调整生成Protobuf协议描述文件,接着利用Protobuf协议描述文件中的的Protobuf协议文件描述内容对明文形式的造数内容进行动态解析,从而将造数内容动态转换成Protobuf协议数据,即本申请中的二进制数组类型消息。
上述实施例中,在应用服务开发测试环节使用PB协议进行造数时,测试人员可在前端页面输入相应的造数内容和预先约定的Protobuf协议文件描述内容,后端接收到上述数据后,利用预先约定的Protobuf协议文件描述内容对造数内容进行动态解析后得到对应的二进制数组类型消息,无需重新生成协议代码文件,并重新部署工具服务应用,即可对二进制数组类型消息进行序列化及反序列化读写数据。
上述实施例对本申请中基于Protobuf协议动态解析的造数方法进行了展开描述,下面将对本申请中如何对造数内容进行动态解析,得到二进制数组类型消息的过程进行说明。
在一个实施例中,步骤S120中基于所述Protobuf协议文件描述内容对所述造数内容进行动态解析,得到二进制数组类型消息的步骤,可以包括:
S121:基于所述Protobuf协议文件描述内容构造相应的动态消息类。
S122:基于所述动态消息类对所述对所述造数内容进行动态解析,得到二进制数组类型消息。
本实施例中,使用Protobuf的动态解析机制来处理造数内容时,无需根据proto文件编译生成的类来反序列化消息,而是通过proto文件生成的descriptor来构造动态消息类,然后反序列化(解析)消息。
因此,本申请在对造数内容进行动态解析之前,可以基于Protobuf协议文件描述内容来构造相应的动态消息类,以便通过该动态消息类来对造数内容进行动态解析,以此来获得二进制数组类型消息。
上述实施例对本申请中如何对造数内容进行动态解析,得到二进制数组类型消息的过程进行说明,下面将对本申请中如何基于Protobuf协议文件描述内容构造相应的动态消息类的过程进行解释说明。
在一个实施例中,步骤S121中基于所述Protobuf协议文件描述内容构造相应的动态消息类的步骤,可以包括:
S210:将所述Protobuf协议文件描述内容写入proto文件中,得到描述文件。
S211:基于所述描述文件生成descriptor文件,所述descriptor文件为二进制文件。
S212:基于所述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格式缓存数据,生成相应PB协议的二进制数组数据,以此来提高测试效率。
上述实施例对本申请中如何基于Protobuf协议文件描述内容构造相应的动态消息类的过程进行解释说明,下面将对本申请中的模拟请求数据进行进一步说明。
在一个实施例中,所述模拟请求数据还可以包括缓存组件节点和缓存key;所述缓存key用于与所述二进制数组类型消息进行配对。
本实施例中,测试人员在前端页面输入造数内容时,为了将造数后得到的测试数据进行保存,以便测试时使用,测试人员还可以在前端页面中输入缓存组件节点和缓存key,通过缓存组件节点来查找对应的缓存组件,通过缓存key来与二进制数组类型消息进行配对。
上述实施例对本申请中的模拟请求数据进行进一步说明,下面将依据上述的模拟请求数据来对本申请中基于Protobuf协议动态解析的造数方法进行进一步说明。
在一个实施例中,如图2所示,图2为本发明实施例提供的另一种基于Protobuf协议动态解析的造数方法的流程示意图,所述基于Protobuf协议动态解析的造数方法,还可以包括:
S130:基于所述缓存组件节点将所述二进制数组类型消息和所述缓存key写入缓存组件。
本实施例中,如图2所示,当前端页面输入缓存组件节点和缓存key后,可以基于缓存组件节点将二进制数组类型消息和缓存key写入缓存组件中,当测试人员需要测试数据时,可以通过缓存key来查找对应的二进制数组类型消息,从而提高测试效率。
可以理解的是,本申请中的缓存组件为缓存中间件,其本质上是一个简洁高速的key-value存储系统,主要包括策略逻辑层和物理存储层,通过缓存组件查询数据,减少数据库访问次数,以提高动态Web应用的速度。
示意性地,如图3所示,图3为本发明实施例提供的系统原理图,当用户访问浏览器WEB前端页面时,在前端页面的主应用入口输入PB协议内容,即本申请中的Protobuf协议文件描述内容,造数内容、缓存key、缓存组件节点,后端服务模块接收到前端输入的内容后,使用PB协议动态解析来对造数内容进行格式转换,并将格式转换后的数据作为缓存数据存储至缓存组件中。
上述实施例依据上述的模拟请求数据来对本申请中基于Protobuf协议动态解析的造数方法进行进一步说明,下面将对本申请中的redis缓存组件进行说明。
在一个实施例中,如图4所示,图4为本发明实施例提供的前端页面的输入数据结构示意图;所述缓存组件节点可以包括redis节点,所述缓存组件可以包括redis缓存组件。
步骤S130中基于所述缓存组件节点将所述二进制数组类型消息和所述缓存key写入缓存组件的步骤,可以包括:
S131:基于所述redis节点创建与所述redis缓存组件之间的数据连接。
S132:将所述二进制数组类型消息和所述缓存key写入数据连接后的redis缓存组件中。
本实施例中,当缓存组件选择redis缓存组件时,对应的缓存组件节点为redis节点,使用缓存组件节点来对二进制数组类型消息进行缓存时,可以先利用redis节点创建与redis缓存组件之间的数据连接,然后再将二进制数组类型消息和缓存key写入数据连接后的redis缓存组件中。
如图4所示,图4中的数据表名tableName和key组合后是一个缓存key,通过缓存key查询对应的值(value),如key=2时,value=’hello’,value可以为不同类型的值。通过图4中PB输入口输入相应的Protobuf协议文件描述内容,造数内容模块输入json格式的明文数据。
可以理解的是,redis缓存组件是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。因此,测试人员可通过输入缓存key,来查找对应的value,即本申请中的二进制数组类型消息。
上述实施例对本申请中的redis缓存组件进行说明,下面将对本申请中的tair缓存组件进行解释。
在一个实施例中,所述缓存组件节点可以包括tair节点,所述缓存组件可以包括tair缓存组件。
步骤S130中基于所述缓存组件节点将所述二进制数组类型消息和所述缓存key写入缓存组件的步骤,可以包括:
S141:基于所述tair节点创建与所述tair缓存组件之间的数据连接。
S142:将所述二进制数组类型消息和所述缓存key写入数据连接后的tair缓存组件中。
本实施例中,当缓存组件选择tair缓存组件时,对应的缓存组件节点为tair节点,使用缓存组件节点来对二进制数组类型消息进行缓存时,可以先利用tair节点创建与tair缓存组件之间的数据连接,然后再将二进制数组类型消息和缓存key写入数据连接后的tair缓存组件中。
可以理解的是,这里的tair缓存组件也是一种key/value结构数据存储系统,因此,测试人员也可以通过输入缓存key,来查找对应的value,即本申请中的二进制数组类型消息。
下面对本申请实施例提供的基于Protobuf协议动态解析的造数装置进行描述,下文描述的基于Protobuf协议动态解析的造数装置与上文描述的基于Protobuf协议动态解析的造数方法可相互对应参照。
在一个实施例中,如图5所示,图5为本发明实施例提供的一种基于Protobuf协议动态解析的造数装置的结构示意图;本发明还提供了一种基于Protobuf协议动态解析的造数装置,包括数据接收模块210和造数模块220,具体包括如下:
数据接收模块210,用于接收前端页面发送的模拟请求数据,所述模拟请求数据包括造数内容和预先约定的Protobuf协议文件描述内容,所述造数内容为依据所述Protobuf协议文件描述内容编写的json格式的缓存数据字符串。
造数模块220,用于基于所述Protobuf协议文件描述内容对所述造数内容进行动态解析,得到二进制数组类型消息,并将所述二进制数组类型消息作为造数后得到的测试数据。
上述实施例中,在应用服务开发测试环节使用PB协议进行造数时,测试人员可在前端页面输入相应的造数内容和预先约定的Protobuf协议文件描述内容,后端接收到上述数据后,利用预先约定的Protobuf协议文件描述内容对造数内容进行动态解析后得到对应的二进制数组类型消息,无需重新生成协议代码文件,并重新部署工具服务应用,即可对二进制数组类型消息进行序列化及反序列化读写数据。
在一个实施例中,所述造数模块220可以包括:
构造模块,用于基于所述Protobuf协议文件描述内容构造相应的动态消息类。
动态解析模块,用于基于所述动态消息类对所述对所述造数内容进行动态解析,得到二进制数组类型消息。
在一个实施例中,所述构造模块可以包括:
写入模块,用于将所述Protobuf协议文件描述内容写入proto文件中,得到描述文件。
文件生成模块,用于基于所述描述文件生成descriptor文件,所述descriptor文件为二进制文件。
确定模块,用于基于所述descriptor文件构造相应的动态消息类。
在一个实施例中,所述模拟请求数据还可以包括缓存组件节点和缓存key;所述缓存key用于与所述二进制数组类型消息进行配对。
在一个实施例中,所述的基于Protobuf协议动态解析的造数装置,还包括:
缓存模块,用于基于所述缓存组件节点将所述二进制数组类型消息和所述缓存key写入缓存组件。
在一个实施例中,所述缓存组件节点可以包括redis节点,所述缓存组件可以包括redis缓存组件;所述缓存模块可以包括:
第一数据连接模块,用于基于所述redis节点创建与所述redis缓存组件之间的数据连接。
第一存储模块,用于将所述二进制数组类型消息和所述缓存key写入数据连接后的redis缓存组件中。
在一个实施例中,所述缓存组件节点可以包括tair节点,所述缓存组件可以包括tair缓存组件;所述缓存模块可以包括:
第二数据连接模块,用于基于所述tair节点创建与所述tair缓存组件之间的数据连接;
第二存储模块,用于将所述二进制数组类型消息和所述缓存key写入数据连接后的tair缓存组件中。
在一个实施例中,本发明还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述基于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协议文件描述内容编写的json格式的缓存数据字符串;
基于所述Protobuf协议文件描述内容对所述造数内容进行动态解析,得到二进制数组类型消息,并将所述二进制数组类型消息作为造数后得到的测试数据。
2.根据权利要求1所述的基于Protobuf协议动态解析的造数方法,其特征在于,所述基于所述Protobuf协议文件描述内容对所述造数内容进行动态解析,得到二进制数组类型消息的步骤,包括:
基于所述Protobuf协议文件描述内容构造相应的动态消息类;
基于所述动态消息类对所述对所述造数内容进行动态解析,得到二进制数组类型消息。
3.根据权利要求2所述的基于Protobuf协议动态解析的造数方法,其特征在于,所述基于所述Protobuf协议文件描述内容构造相应的动态消息类的步骤,包括:
将所述Protobuf协议文件描述内容写入proto文件中,得到描述文件;
基于所述描述文件生成descriptor文件,所述descriptor文件为二进制文件;
基于所述descriptor文件构造相应的动态消息类。
4.根据权利要求1所述的基于Protobuf协议动态解析的造数方法,其特征在于,所述模拟请求数据还包括缓存组件节点和缓存key;
所述缓存key用于与所述二进制数组类型消息进行配对。
5.根据权利要求4所述的基于Protobuf协议动态解析的造数方法,其特征在于,还包括:
基于所述缓存组件节点将所述二进制数组类型消息和所述缓存key写入缓存组件。
6.根据权利要求5所述的基于Protobuf协议动态解析的造数方法,其特征在于,所述缓存组件节点包括redis节点,所述缓存组件包括redis缓存组件;
所述基于所述缓存组件节点将所述二进制数组类型消息和所述缓存key写入缓存组件的步骤,包括:
基于所述redis节点创建与所述redis缓存组件之间的数据连接;
将所述二进制数组类型消息和所述缓存key写入数据连接后的redis缓存组件中。
7.根据权利要求5所述的基于Protobuf协议动态解析的造数方法,其特征在于,所述缓存组件节点包括tair节点,所述缓存组件包括tair缓存组件;
所述基于所述缓存组件节点将所述二进制数组类型消息和所述缓存key写入缓存组件的步骤,包括:
基于所述tair节点创建与所述tair缓存组件之间的数据连接;
将所述二进制数组类型消息和所述缓存key写入数据连接后的tair缓存组件中。
8.一种基于Protobuf协议动态解析的造数装置,其特征在于,包括:
数据接收模块,用于接收前端页面发送的模拟请求数据,所述模拟请求数据包括造数内容和预先约定的Protobuf协议文件描述内容,所述造数内容为依据所述Protobuf协议文件描述内容编写的json格式的缓存数据字符串;
造数模块,用于基于所述Protobuf协议文件描述内容对所述造数内容进行动态解析,得到二进制数组类型消息,并将所述二进制数组类型消息作为造数后得到的测试数据。
9.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述基于Protobuf协议动态解析的造数方法的步骤。
10.一种计算机设备,其特征在于:所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述基于Protobuf协议动态解析的造数方法的步骤。
CN202111033702.6A 2021-09-03 2021-09-03 基于Protobuf协议动态解析的造数方法及装置 Pending CN113742231A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111033702.6A CN113742231A (zh) 2021-09-03 2021-09-03 基于Protobuf协议动态解析的造数方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111033702.6A CN113742231A (zh) 2021-09-03 2021-09-03 基于Protobuf协议动态解析的造数方法及装置

Publications (1)

Publication Number Publication Date
CN113742231A true CN113742231A (zh) 2021-12-03

Family

ID=78735556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111033702.6A Pending CN113742231A (zh) 2021-09-03 2021-09-03 基于Protobuf协议动态解析的造数方法及装置

Country Status (1)

Country Link
CN (1) CN113742231A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746842A (zh) * 2021-09-03 2021-12-03 唯品会(广州)软件有限公司 基于Protobuf协议动态解析的消息发送方法
CN115373655A (zh) * 2022-10-25 2022-11-22 中国人民解放军国防科技大学 一种基于标准化模板的信息协议代码自动生成方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746842A (zh) * 2021-09-03 2021-12-03 唯品会(广州)软件有限公司 基于Protobuf协议动态解析的消息发送方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746842A (zh) * 2021-09-03 2021-12-03 唯品会(广州)软件有限公司 基于Protobuf协议动态解析的消息发送方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
像条狗汪汪叫: "Protobuf动态解析在Java中的应用 包含例子程序", HTTPS://WWW.CNBLOGS.COM/LIULAOSHI/P/7226439.HTML, pages 1 - 2 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746842A (zh) * 2021-09-03 2021-12-03 唯品会(广州)软件有限公司 基于Protobuf协议动态解析的消息发送方法
CN115373655A (zh) * 2022-10-25 2022-11-22 中国人民解放军国防科技大学 一种基于标准化模板的信息协议代码自动生成方法

Similar Documents

Publication Publication Date Title
CN112104709B (zh) 智能合约的处理方法、装置、介质及电子设备
WO2021259039A1 (zh) 神经网络模型的定制化方法、系统、设备和存储介质
CN113032244B (zh) 接口测试方法、装置、计算机系统和计算机可读存储介质
CN111078555B (zh) 一种测试文件的生成方法、系统、服务器和存储介质
CN113742231A (zh) 基于Protobuf协议动态解析的造数方法及装置
CN109597618B (zh) 程序开发方法、装置、计算机设备及存储介质
CN110290135B (zh) 对复杂报文统一规范化处理的方法及请求的数据流
CN113746842A (zh) 基于Protobuf协议动态解析的消息发送方法
CN112070608A (zh) 信息处理方法、装置、介质及电子设备
JP2017174418A (ja) モデルチェックのためのデータ構造抽象化
CN112286815A (zh) 一种接口测试脚本的生成方法及其相关设备
Hamerski et al. Evaluating serialization for a publish-subscribe based middleware for MPSoCs
CN113778897B (zh) 接口的自动测试方法、装置、设备及存储介质
CN112883088B (zh) 一种数据处理方法、装置、设备及存储介质
CN112363939A (zh) 快速生成模糊测试网络协议模板的方法及系统、设备
CN107038022B (zh) 一种反序列化方法及装置
CN111506305A (zh) 工具包生成方法、装置、计算机设备及可读存储介质
CN113742408B (zh) 基于Protobuf协议动态解析的数据交互方法
CN116467156A (zh) 联调测试方法、装置、存储介质及电子设备
CN112597036B (zh) 一种通用测试挡板方法及装置
CN113448822B (zh) 测试方法、装置、计算机可读介质及电子设备
US11797277B2 (en) Neural network model conversion method server, and storage medium
CN113467761A (zh) 一种基于Java反射原理的接口测试模板生成方法
Rahimian et al. Performance evaluation of mobile software systems: Challenges for a software engineer
CN115437906A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20211203