一种用于对协议接口进行测试的方法及装置与流程

文档序号:16327764发布日期:2018-12-19 06:01阅读:177来源:国知局
一种用于对协议接口进行测试的方法及装置与流程

本发明实施例涉及协议接口测试技术领域,尤其是涉及一种用于对协议接口进行测试的方法及装置。

背景技术

在接口测试技术领域,有一些接口支持的协议较为特殊,对这些接口进行测试的过程中,往往由于测试设备对格式的识别能力有限,或者工作人员对这种特征协议支持的格式不熟悉,导致测试过程效率较低。例如,类似于其他rpc系统,grpc是基于服务的协议。默认情况下,grpc使用protocolbuffers作为接口定义语言(idl),对于一批待测的grpc服务端接口,但是由于protocolbuffers格式较为复杂,对grpc协议接口测试的效率较低。

在实现本发明实施例的过程中,发明人发现现有的对协议接口进行测试的方法往往由于被测协议接口对应的格式较为复杂,测试效率低。



技术实现要素:

本发明所要解决的技术问题是如何解决现有的对协议接口进行测试的方法往往由于被测协议接口对应的格式较为复杂,测试效率低的问题。

针对以上技术问题,本发明的实施例提供了一种用于对协议接口进行测试的方法,包括:

在接收到服务端发送的对预设接口进行测试的请求信息后,从所述请求信息中获取所述预设接口对应的数据结构信息;

将所述数据结构信息由当前的第一格式转换为第二格式,根据转换为第二格式的数据结构信息,以所述第二格式生成对所述预设接口进行测试的第一测试用例;

将所述第一测试用例转换为所述第一格式,得到第二测试用例,通过所述第二测试用例对所述预设接口进行测试,得到测试结果;

其中,通过所述第二格式生成测试用例的效率高于通过所述第一格式生成测试用例的效率。

可选地,所述根据转换为第二格式的数据结构信息,以所述第二格式生成对所述预设接口进行测试的第一测试用例,包括:

对转换为第二格式的数据结构信息中的每一测试项目,均以所述第二格式生成多个所述第一测试用例,并通过预设字符分隔不同的第一测试用例。

可选地,所述将所述第一测试用例转换为所述第一格式,得到第二测试用例,通过所述第二测试用例对所述预设接口进行测试,得到测试结果,包括:

对根据所述预设字符读取的每一所述第一测试用例,将所述第一测试用例由所述第二格式转换为所述第一格式,得到所述第二测试用例,将所述第二测试用例发送到所述服务端,并接收由所述服务端返回的所述测试结果,若判断接收到的测试结果均无异常,则所述预设接口无异常。

可选地,所述第一格式为protocolbuffers格式,所述第二格式为json格式。

第二方面,本实施例提供了一种用于对协议接口进行测试的装置,包括:

获取模块,用于在接收到服务端发送的对预设接口进行测试的请求信息后,从所述请求信息中获取所述预设接口对应的数据结构信息;

生成模块,用于将所述数据结构信息由当前的第一格式转换为第二格式,根据转换为第二格式的数据结构信息,以所述第二格式生成对所述预设接口进行测试的第一测试用例;

测试模块,用于将所述第一测试用例转换为所述第一格式,得到第二测试用例,通过所述第二测试用例对所述预设接口进行测试,得到测试结果;

其中,通过所述第二格式生成测试用例的效率高于通过所述第一格式生成测试用例的效率。

可选地,所述生成模块还用于对转换为第二格式的数据结构信息中的每一测试项目,均以所述第二格式生成多个所述第一测试用例,并通过预设字符分隔不同的第一测试用例。

可选地,所述测试模块还用于对根据所述预设字符读取的每一所述第一测试用例,将所述第一测试用例由所述第二格式转换为所述第一格式,得到所述第二测试用例,将所述第二测试用例发送到所述服务端,并接收由所述服务端返回的所述测试结果,若判断接收到的测试结果均无异常,则所述预设接口无异常。

可选地,所述第一格式为protocolbuffers格式,所述第二格式为json格式。

第三方面,本实施例提供了一种电子设备,包括:

至少一个处理器、至少一个存储器、通信接口和总线;其中,

所述处理器、存储器、通信接口通过所述总线完成相互间的通信;

所述通信接口用于该电子设备和服务器的通信设备之间的信息传输;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行以上任一项所述的方法。

第四方面,本实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行以上任一项所述的方法。

本发明的实施例提供了一种用于对协议接口进行测试的方法及装置,终端在接收到对某一接口进行测试的请求信息后,将该接口对应的数据结构信息转换成较为常见的第二格式。通过第二格式能够快速生成对预设接口进行测试的测试用例,然后再通过格式转换将测试用例转换层支持终端和服务端进行通信的第一格式,发送测试用例,实现测试功能。由于第二格式能够高效的生成测试用例,因此通过第二格式生成测试用例能够实现高效测试,尤其是通过批量的测试用例进行测试时,能够明显节约时间成本。

附图说明

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

图1是本发明一个实施例提供的用于对协议接口进行测试的方法的流程示意图;

图2是本发明另一个实施例提供的用于对协议接口进行测试的装置的结构框图;

图3是本发明另一个实施例提供的电子设备的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是本实施例提供的一种用于对协议接口进行测试的方法的流程示意图,参见图1,该方法包括:

101:在接收到服务端发送的对预设接口进行测试的请求信息后,从所述请求信息中获取所述预设接口对应的数据结构信息;

102:将所述数据结构信息由当前的第一格式转换为第二格式,根据转换为第二格式的数据结构信息,以所述第二格式生成对所述预设接口进行测试的第一测试用例;

103:将所述第一测试用例转换为所述第一格式,得到第二测试用例,通过所述第二测试用例对所述预设接口进行测试,得到测试结果;

其中,通过所述第二格式生成测试用例的效率高于通过所述第一格式生成测试用例的效率。

本实施例提供的方法由测试设备(例如,电脑、手机或专用测试设备)执行。服务端为提供某一服务的平台。通常终端和服务端进行通信所支持的协议较为复杂,因此直接根据该协议支持的格式生成测试用例效率较低。为了解决这一问题,本实施例中,终端在接收到对预设接口进行测试的请求信息后,现将接口对应的数据结构信息转换为较为简单或者较为工作人员熟悉的格式后,再生成测试用例,使用测试用例进行测试时,再将测试用例进行格式的转换,以此提高测试用例的生成效率,进而提高测试效率。

服务端中与预先设置有对某一服务进行测试的测试逻辑,因此服务端会根据该测试逻辑向终端发送对某一服务的接口进行测试的请求信息。当终端接收到该请求信息中,从请求信息获取该接口对应的数据结构信息。例如,该接口用于处理表示动物的字符的接口或者用于处理表示人的性别的字符的接口。通常第二格式为比第一格式更为常见的格式,例如,第一格式为protocolbuffers格式(pb格式),第二格式为json格式,通过第二格式能够较高效地生成测试用例。第一格式和第二格式之间的转换可以通过格式转换软件实现,本实施例对此不错具体限制。例如,实现pb格式和json格式相互转换的软件(调用protocolbuffers的parse方法转化json为pb格式)。

本实施例提供了一种用于对协议接口进行测试的方法,终端在接收到对某一接口进行测试的请求信息后,将该接口对应的数据结构信息转换成较为常见的第二格式。通过第二格式能够快速生成对预设接口进行测试的测试用例,然后再通过格式转换将测试用例转换层支持终端和服务端进行通信的第一格式,发送测试用例,实现测试功能。由于第二格式能够高效的生成测试用例,因此通过第二格式生成测试用例能够实现高效测试,尤其是通过批量的测试用例进行测试时,能够明显节约时间成本。

更进一步地,在上述实施例的基础上,所述根据转换为第二格式的数据结构信息,以所述第二格式生成对所述预设接口进行测试的第一测试用例,包括:

对转换为第二格式的数据结构信息中的每一测试项目,均以所述第二格式生成多个所述第一测试用例,并通过预设字符分隔不同的第一测试用例。

预设字符可以是分隔符“|”,本实施例对此不做具体限制。例如,某一数据结构信息中包括姓名和性别两项测试项目,则针对姓名生成多个第一测试用例(例如,测试用例为发送“张三”、发送“123”),针对性别也生成多个第一测试用例(例如,测试用例为发送“男”、发送“女”、发送“猫”),这些测试用例之间通过预设字符分隔。

本实施例提供了一种用于对协议接口进行测试的方法,当批量对生成某一预设接口的测试用例时,通过预设字符将各测试用例分开,以便根据预设字符对每一测试用例进行格式转换。

更进一步地,在上述实施例的基础上,所述将所述第一测试用例转换为所述第一格式,得到第二测试用例,通过所述第二测试用例对所述预设接口进行测试,得到测试结果,包括:

对根据所述预设字符读取的每一所述第一测试用例,将所述第一测试用例由所述第二格式转换为所述第一格式,得到所述第二测试用例,将所述第二测试用例发送到所述服务端,并接收由所述服务端返回的所述测试结果,若判断接收到的测试结果均无异常,则所述预设接口无异常。

例如,以json格式生成了多个对预设接口进行测试的测试用例,则需要根据预设字符将每一json格式的第一测试用例转换为pb格式的第二测试用例。将每一第二测试用例发送到服务端,服务端返回测试结果。例如,测试结果为“发送的姓名“张三”正确、发送的姓名“123”错误”,发送的性别“男”正确、发送的性别“女”正确、发送的性别“猫”错误。由于对测试结果中对每一测试用例的判断是正确的,则说明该预设接口无异常。只要测试结果中存在一项异常结果,则预设接口存在异常。

本实施例提供了一种用于对协议接口进行测试的方法,通过测试用例对接口进行测试,并通过测试结果对接口是否异常进行准确快速的判断。

更进一步地,在上述实施例的基础上,所述第一格式为protocolbuffers格式,所述第二格式为json格式。

作为具体的实施例,本实施例提供了一种对上百个grpc服务接口进行测试的方法,包括:

(1)经过查询grpc官方相关文档,发现经常编辑的json格式和grpc默认的protocolbuffers数据格式可以互相转换,对于服务端提供的protocolbuffers数据格式,可以用json格式编辑测试用例,然后调用protocolbuffers的parse方法转化json为pb格式,进一步访问grpc服务。

(2)对照grpc服务提供的protocolbuffers数据结构,通过常用的文本文档编辑批量的json文件,实现测试用例的批量化。

(3)在测试用例文本里,通过增加分隔符“|”实现批量服务的批量测试用例,通过#号,增加注释行,增加测试用例可读性。例如,对于invitation这一服务,其生产的json格式的测试用例可以写为:

#invitation

#sameorg

createdata|{“visitor:{“visitor_staff”:{“oid:19,”“uid”:1122}},”uuid:“3f2504e0-4f89-11d39aoc-0000000000”,“v”:

#notsameorg

fetchdata|{“visitor:{“visitor_staff”:{“oid:19,”“uid”:1122}},”k:“base_version”:“0”,“k_obj”:

(4)借助python,通过解析用例文本里的服务和测试用例,实现批量接口的批量测试用例(即将测试用例转换为json格式)。

本实施例提供了方法,在面对一套完整系统中,grpc服务多,每个服务的用例多的情况下,通过上述任一实施例挺的方法,可以实现对服务的protocolbuffers数据,按照测试思路,通过编辑json文本测试用例,完成批量接口的批量用例,提高工作效率,节约时间成本。

图2示出了本发明的实施例提供的用于对协议接口进行测试的装置的结构框图,参见图2,本实施例提供的一种用于对协议接口进行测试的装置,包括获取模块201、生成模块202和测试模块203,其中,

获取模块201,用于在接收到服务端发送的对预设接口进行测试的请求信息后,从所述请求信息中获取所述预设接口对应的数据结构信息;

生成模块202,用于将所述数据结构信息由当前的第一格式转换为第二格式,根据转换为第二格式的数据结构信息,以所述第二格式生成对所述预设接口进行测试的第一测试用例;

测试模块203,用于将所述第一测试用例转换为所述第一格式,得到第二测试用例,通过所述第二测试用例对所述预设接口进行测试,得到测试结果;

其中,通过所述第二格式生成测试用例的效率高于通过所述第一格式生成测试用例的效率。

本实施例提供的用于对协议接口进行测试的装置适用于上述实施例中提供的用于对协议接口进行测试的方法,在此不再赘述。

本发明的实施例提供了一种用于对协议接口进行测试的装置,终端在接收到对某一接口进行测试的请求信息后,将该接口对应的数据结构信息转换成较为常见的第二格式。通过第二格式能够快速生成对预设接口进行测试的测试用例,然后再通过格式转换将测试用例转换层支持终端和服务端进行通信的第一格式,发送测试用例,实现测试功能。由于第二格式能够高效的生成测试用例,因此通过第二格式生成测试用例能够实现高效测试,尤其是通过批量的测试用例进行测试时,能够明显节约时间成本。

图3是示出本实施例提供的电子设备的结构框图。

参照图3,所述电子设备包括:处理器(processor)301、存储器(memory)302、通信接口(communicationsinterface)303和总线304;

其中,

所述处理器301、存储器302、通信接口303通过所述总线304完成相互间的通信;

所述通信接口303用于该电子设备和服务器的通信设备之间的信息传输;

所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:在接收到服务端发送的对预设接口进行测试的请求信息后,从所述请求信息中获取所述预设接口对应的数据结构信息;将所述数据结构信息由当前的第一格式转换为第二格式,根据转换为第二格式的数据结构信息,以所述第二格式生成对所述预设接口进行测试的第一测试用例;将所述第一测试用例转换为所述第一格式,得到第二测试用例,通过所述第二测试用例对所述预设接口进行测试,得到测试结果;其中,通过所述第二格式生成测试用例的效率高于通过所述第一格式生成测试用例的效率。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:在接收到服务端发送的对预设接口进行测试的请求信息后,从所述请求信息中获取所述预设接口对应的数据结构信息;将所述数据结构信息由当前的第一格式转换为第二格式,根据转换为第二格式的数据结构信息,以所述第二格式生成对所述预设接口进行测试的第一测试用例;将所述第一测试用例转换为所述第一格式,得到第二测试用例,通过所述第二测试用例对所述预设接口进行测试,得到测试结果;其中,通过所述第二格式生成测试用例的效率高于通过所述第一格式生成测试用例的效率。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:在接收到服务端发送的对预设接口进行测试的请求信息后,从所述请求信息中获取所述预设接口对应的数据结构信息;将所述数据结构信息由当前的第一格式转换为第二格式,根据转换为第二格式的数据结构信息,以所述第二格式生成对所述预设接口进行测试的第一测试用例;将所述第一测试用例转换为所述第一格式,得到第二测试用例,通过所述第二测试用例对所述预设接口进行测试,得到测试结果;其中,通过所述第二格式生成测试用例的效率高于通过所述第一格式生成测试用例的效率。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1