基于Protobuf的接口测试方法和装置制造方法及图纸

技术编号:31010354 阅读:13 留言:0更新日期:2021-11-30 00:07
本公开的实施例公开了基于Protobuf的接口测试方法和装置。该方法的一具体实施方式包括:获取与待测试接口匹配的测试数据文件,其中,该测试数据文件符合预设的Protobuf文件中的数据定义,该测试数据文件包括至少一个测试用例,测试用例中包括入参和期望输出;将该测试数据文件中的入参传入该待测试接口,生成入参对应的测试结果集合,其中,测试结果为二进制形式;对所生成的测试结果进行反序列化,生成测试结果对象;获取与该测试结果对象对应的值;根据与该测试结果对象对应的值和对应的期望输出的比较,生成表征该待测试接口是否通过测试的结果信息。该实施方式提升了测试脚本的复用性并减少了数据传输量,从而节省了人力和网络资源。网络资源。网络资源。

【技术实现步骤摘要】
基于Protobuf的接口测试方法和装置


[0001]本公开的实施例涉及计算机
,具体涉及基于Protobuf的接口测试方法和装置。

技术介绍

[0002]随着计算机技术的发展,接口自动化测试也取得了越来越多的应用。现有的接口自动化测试框架或工具如postman、jmeter、soapui需要涉及众多内容复杂的接口测试协议文件,而且大量的数据传输也需要耗费大量的网络带宽和I/O资源。
[0003]Protobuf作为一门开源的高性能的编码框架,以其跨语言、性能高、编码后消息体小等优点被很多项目广泛应用。但由于其采用二进制方式进行数据交互方式,无法与现有的接口自动化测试框架或工具进行衔接,不能实现接口的高性能自动化测试。

技术实现思路

[0004]本公开的实施例提出了基于Protobuf的接口测试方法和装置。
[0005]第一方面,本公开的实施例提供了一种基于Protobuf的接口测试方法,该方法包括:获取与待测试接口匹配的测试数据文件,其中,测试数据文件符合预设的Protobuf文件中的数据定义,测试数据文件包括至少一个测试用例,测试用例中包括入参和期望输出;将测试数据文件中的入参传入待测试接口,生成入参对应的测试结果集合,其中,测试结果为二进制形式;对所生成的测试结果进行反序列化,生成测试结果对象;获取与测试结果对象对应的值;根据与测试结果对象对应的值和对应的期望输出的比较,生成表征待测试接口是否通过测试的结果信息。
[0006]在一些实施例中,上述获取与待测试接口匹配的测试数据文件,包括:获取测试数据文件的信息集合,其中,测试数据文件的信息包括测试数据文件中分页的标识;获取待测试接口的标识,其中,标识包括待测试接口对应的脚本的类名;根据与待测试接口对应的脚本的类名一致的测试数据文件中分页的标识,获取测试数据文件作为匹配的测试数据文件。
[0007]在一些实施例中,上述测试数据文件的测试用例中还包括方法名,上述方法名用于表征待测试接口的功能;以及上述将测试数据文件中的入参传入待测试接口,生成入参对应的测试结果,包括:读取测试数据文件中的测试用例;从测试数据文件中选取测试用例,以及执行以下测试步骤:确定所选取的测试用例的方法名是否满足预设条件;响应于确定满足,将所选取的测试用例的入参传入待测试接口,生成所选取的测试用例的入参对应的测试结果以及将所生成的测试结果存入预设的测试结果集合;确定测试数据文件中是否存在未被选取的测试用例;响应于确定存在,从测试数据文件中重新选取测试用例,以及继续执行测试步骤。
[0008]在一些实施例中,上述获取与测试结果对象对应的值,包括:响应于确定测试结果对象不为空,基于反射机制获取测试结果对象的属性;获取与所获取的属性对应的属性值
作为与测试结果对象对应的值。
[0009]在一些实施例中,上述根据与测试结果对象对应的值和对应的期望输出的比较,生成表征待测试接口是否通过测试的结果信息,包括:将所获取的与测试结果对象对应的值存入预设的键值数据库;响应于确定所获取的属性值与对应的期望输出一致,生成表征待测试接口通过测试的结果信息;响应于确定所获取的属性值与对应的期望输出不一致,生成表征待测试接口未通过测试的结果信息。
[0010]在一些实施例中,该方法还包括:根据所生成的表征待测试接口是否通过测试的结果信息,生成接口测试报告,其中,接口测试报告中还包括测试用例的方法名、编号、描述信息、入参、期望输出、测试结果和表征是否执行的信息。
[0011]第二方面,本公开的实施例提供了一种基于Protobuf的接口测试装置,该装置包括:第一获取单元,被配置成获取与待测试接口匹配的测试数据文件,其中,测试数据文件符合预设的Protobuf文件中的数据定义,测试数据文件包括至少一个测试用例,测试用例中包括入参和期望输出;第一生成单元,被配置成将测试数据文件中的入参传入待测试接口,生成入参对应的测试结果集合,其中,测试结果为二进制形式;第二生成单元,被配置成对所生成的测试结果进行反序列化,生成测试结果对象;第二获取单元,被配置成获取与测试结果对象对应的值;第三生成单元,被配置成根据与测试结果对象对应的值和对应的期望输出的比较,生成表征待测试接口是否通过测试的结果信息。
[0012]在一些实施例中,上述第一获取单元包括:信息获取模块,被配置成获取测试数据文件的信息集合,其中,测试数据文件的信息包括测试数据文件中分页的标识;标识获取模块,被配置成获取待测试接口的标识,其中,标识包括待测试接口对应的脚本的类名;文件获取模块,被配置成根据与待测试接口对应的脚本的类名一致的测试数据文件中分页的标识,获取测试数据文件作为匹配的测试数据文件。
[0013]在一些实施例中,上述测试数据文件的测试用例中还包括方法名,上述方法名用于表征待测试接口的功能;以及第一生成单元包括:读取模块,被配置成读取测试数据文件中的测试用例;选取模块,被配置成从测试数据文件中选取测试用例;测试模块,被配置成执行以下测试步骤:确定所选取的测试用例的方法名是否满足预设条件;响应于确定满足,将所选取的测试用例的入参传入待测试接口,生成所选取的测试用例的入参对应的测试结果以及将所生成的测试结果存入预设的测试结果集合;确定测试数据文件中是否存在未被选取的测试用例;响应于确定存在,从测试数据文件中重新选取测试用例,以及继续执行测试步骤。
[0014]在一些实施例中,上述第二获取单元包括:属性获取模块,被配置成响应于确定测试结果对象不为空,基于反射机制获取测试结果对象的属性;属性值获取模块,被配置成获取与所获取的属性对应的属性值作为与测试结果对象对应的值。
[0015]在一些实施例中,上述第三生成单元包括:存储模块,被配置成将所获取的与测试结果对象对应的值存入预设的键值数据库;第一生成模块,被配置成响应于确定所获取的属性值与对应的期望输出一致,生成表征待测试接口通过测试的结果信息;第二生成模块,被配置成响应于确定所获取的属性值与对应的期望输出不一致,生成表征待测试接口未通过测试的结果信息。
[0016]在一些实施例中,该装置还包括:第四生成单元,被配置成:根据所生成的表征待
测试接口是否通过测试的结果信息,生成接口测试报告,其中,接口测试报告中还包括测试用例的方法名、编号、描述信息、入参、期望输出、测试结果和表征是否执行的信息。
[0017]第三方面,本公开的实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
[0018]第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
[0019]本公开的实施例提供的基于Protobuf的接口测试方法和装置,首先通过获取与待测试接口匹配的测试数据文件。其中,测试数据文件符本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Protobuf的接口测试方法,包括:获取与待测试接口匹配的测试数据文件,其中,所述测试数据文件符合预设的Protobuf文件中的数据定义,所述测试数据文件包括至少一个测试用例,测试用例中包括入参和期望输出;将所述测试数据文件中的入参传入所述待测试接口,生成入参对应的测试结果集合,其中,测试结果为二进制形式;对所生成的测试结果进行反序列化,生成测试结果对象;获取与所述测试结果对象对应的值;根据与所述测试结果对象对应的值和对应的期望输出的比较,生成表征所述待测试接口是否通过测试的结果信息。2.根据权利要求1所述的方法,其中,所述获取与待测试接口匹配的测试数据文件,包括:获取测试数据文件的信息集合,其中,测试数据文件的信息包括测试数据文件中分页的标识;获取待测试接口的标识,其中,所述标识包括所述待测试接口对应的脚本的类名;根据与所述待测试接口对应的脚本的类名一致的测试数据文件中分页的标识,获取测试数据文件作为所述匹配的测试数据文件。3.根据权利要求2所述的方法,其中,所述测试数据文件的测试用例中还包括方法名,所述方法名用于表征待测试接口的功能;以及所述将所述测试数据文件中的入参传入所述待测试接口,生成入参对应的测试结果,包括:读取所述测试数据文件中的测试用例;从所述测试数据文件中选取测试用例,以及执行以下测试步骤:确定所选取的测试用例的方法名是否满足预设条件;响应于确定满足,将所选取的测试用例的入参传入所述待测试接口,生成所选取的测试用例的入参对应的测试结果以及将所生成的测试结果存入预设的测试结果集合;确定所述测试数据文件中是否存在未被选取的测试用例;响应于确定存在,从所述测试数据文件中重新选取测试用例,以及继续执行所述测试步骤。4.根据权利要求1所述的方法,其中,所述获取与所述测试结果对象对应的值,包括:响应于确定所述测试结果对象不为空,基于反射机制获取所述测试结果对象的属性;获取与所获取的属性对应的属性值作为与所述测试结果对象对应的值。5.根据权利要求4所述的方法,其中,所述根据与所述测试结果对象对应...

【专利技术属性】
技术研发人员:徐征磊
申请(专利权)人:北京京东世纪贸易有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1