测试接口的方法、网络代理和系统的制作方法

文档序号:9474134阅读:402来源:国知局
测试接口的方法、网络代理和系统的制作方法
【技术领域】
[0001]本发明涉及设备测试领域,并具体地涉及一种测试接口的方法、网络代理和系统。
【背景技术】
[0002]在网络产品中,通常包含多个组件,每个组件通常以服务模块的形式部署在系统后台。后台服务模块与前台存在接口,服务模块之间也存在接口,接口间的协议和调用方式是多种多样的。在产品测试阶段,需要对通信接口进行功能测试。
[0003]—种通常采用的测试方法是打粧测试法,该方法对接口两端的服务分别做测试。由于分属不同的服务模块,测试工作可能由不同的产品测试团队进行。而在之后的联调测试阶段,在修改接口数据时需要双方配合进行调试,使得测试效率低下。对于接口的Fuzz测试,对端服务也很难构造出异常数据。特别是在调用第三方接口时,无法充分地对接口进行测试。此外,由于接口自身的独特性,接口测试工具通常也不可移植复用。
[0004]因此,需要提供一种灵活高效的接口测试方案。

【发明内容】

[0005]如上所述,需要一种能够减轻或解决上述问题的接口测试方法和设备。
[0006]根据本发明的一个方案,提供了一种用于测试接口的方法,所述方法由在被测接口和与被测接口配合进行测试的调用接口之间连接的网络代理执行,所述方法包括:对从所述调用接口返回所述被测接口的返回数据进行处理以生成测试数据;向所述被测接口转发所生成的测试数据;以及观察和记录所述被测接口对所述测试数据的处理。
[0007]根据本发明的另一方案,提供了一种用于测试接口的网络代理,其中,所述网络代理连接在被测接口和与被测接口配合进行接口测试的调用接口之间,所述网络代理包括:协议体数据修改单元,用于对从所述调用接口返回所述被测接口的返回数据进行处理以生成测试数据;以及接口测试工具,用于向所述被测接口转发所生成的测试数据,并观察和记录所述被测接口对所述测试数据的处理。
[0008]根据本发明的另一方案,提供了一种用于测试接口的系统,包括:被测接口 ;与所述被测接口配合进行接口测试的调用接口 ;以及上述的网络代理
[0009]本发明实施例提出的上述基于代理方式对网络接口进行测试的方法,通过对数据包的截获、处理和转发,可灵活地配置代理功能,以满足不同接口的需求,提高通用性并使得测试变得高效。
【附图说明】
[0010]通过下面结合附图对发明进行的详细描述,将使本发明的上述特征和优点更加明显,其中:
[0011]图1是根据本发明的实施例的接口测试系统的示意图;
[0012]图2是示出根据本发明的实施例的用于测试接口的方法的示意流程图;
[0013]图3是示出根据本发明的实施例的协议解析的具体操作的示意流程图;以及
[0014]图4是示出根据本发明的实施例的自动回归测试方法的示意流程图。
【具体实施方式】
[0015]下面,参考附图详细说明本发明的优选实施方式。在附图中,虽然示于不同的附图中,但相同的附图标记用于表示相同的或相似的组件。为了清楚和简明,对已知功能和结构的详细描述将被省略,以避免使本发明的主题不清楚。
[0016]图1示出了根据本发明的实施例的接口测试系统的示意图。如图1中所示,该系统包括被测接口 110、与被测接口 110配合进行接口测试的调用接口 120以及下面将要详细描述的网络代理130。
[0017]在图1所示的实施例中,网络代理130连接在被测接口 110和调用接口 120之间,并包括接口测试工具132和协议体数据修改单元136。协议体数据修改单元136用于对从调用接口 120返回被测接口 110的返回数据进行处理以生成测试数据。接口测试工具132用于向被测接口 110转发所生成的测试数据,并观察和记录被测接口 110对测试数据的处理。
[0018]如图1中所示,在被测接口 110和调用接口 120之间可存在非测试用途的正常网络通信。该正常网络通信可以不经过本发明实施例中的网络代理。
[0019]然而在进行测试时,会从被测接口 110向调用接口 120发送用于测试的数据,调用接口 120接收到该数据时产生上述的返回数据。在一些实施例中,从被测接口 110向调用接口 120发送的数据会途径网络代理(具体地,例如网络代理中的接口测试工具132),但网络代理130(例如其中的接口测试工具132)不对该数据进行修改。而在另一些实施例中,由于无需修改,该数据发送也可不途径网络代理130。图1示出了后一种情况,为了使图示简洁并易于理解,图1中未示出该用于测试的数据从被测接口 110向调用接口 120的发送。
[0020]上述协议体数据修改单元136的处理包括对协议体数据进行修改,以数据驱动的方式进行接口测试,即通过向被测接口 110发送不同数据(例如,异常数据)并观察被测接口 110对这些不同数据的处理来测试被测接口 110的各项性能。在测试时,被测接口 110作为客户端可修改目标服务的IP地址和端口,以配置为测试工具132所监听的IP地址和端口。该修改可由被测接口所在设备执行,也可由接口测试工具执行,或者可由其他任何相关的设备执行,本发明不对此进行限制。此外在此,无需对调用接口 120做任何改变。
[0021]如本领域中所知的,通信协议(如http等)包括协议头和协议体两部分,前者通常保证通信正常进行,后者表示具体通信内容。因此本文中使用的协议体数据有时也被称为协议的数据部分。
[0022]在可实施本发明实施例的一些示例中,例如网站需要调用第三方提供的数据接口,且调用过程中采用json明文字符串的方式传输。在对网站接口进行测试时,需要对超出临界值的数据进行测试,而第三方接口无法人为构造这样的测试数据。此时可采用本实施例提供的方法截获明文数据包,并可将其直接修改为任意数值,再转发给被测接口,观察被测接口的处理流程。
[0023]上述示例采用json明文字符串的方式传输数据,然而在其他一些示例中,接口通信并不直接使用明文的TCP数据,而是可采用http协议、snmp协议、ssh协议等多种方式,或者将复杂结构序列化发送,构成私有协议体。鉴于此,如图1所示,网络代理130还包括接口协议解析单元134,用于在修改数据之前对被测接口 110与调用接口 120之间使用的协议进行解析。
[0024]由于一个网络接口通常采用一种固定协议进行通信,因此在测试前需要配置所使用的协议结构。具体地,对于公共协议,按照固有结构解析;对于私有协议,首先动态加载协议结构体,再对该协议结构体进行反序列化。协议结构体通常采用h”文件配置,在测试工具130运行时可根据用户所选协议来动态调用。
[0025]在本发明的其他一些实施例中,还可以实现测试场景的备份和接口的回归测试。在这些实施例中,如图1所示,网络代理130还可包括场景数据备份单元138,用于备份测试场景。在此情况下,接口测试工具132可利用所备份的测试场景来进行自动回归测试。
[0026]具体地,场景数据备份单元138可备份以下至少一项:
[0027].从调用接口 120接收到的返回数据(可作为用于自动匹配消息的key值)
[0028].被测接口 110和调用接口 120之间的通信所使用的协议
[0029]?通过协议体数据修改单元136修改返回数据而生成的测试数据(可能为多个值,可采用json字符串的方式存储)
[0030]在一些示例中,测试数据也可提前编辑。在此情况下,图1中所示的网络代理130可包括配置文件(未示出)。可将需要遍历的数值作为测试数据保存在配置文件中。当反复执行同一接口的通信时,接口测试工具130可以将调用接口 120返回的返回数据作为关键字在场景数据备份单元138备份的测试场景中选择对应的测试场景并应用所选择的测试场景,以及自动顺序地使用配置文件中保存的测试数值来作为向被测接口 110转发的测试数据,以实现接口遍历性测试和Fuzz测试。
[0031]通过使用上述的网络代理执行接口测试,测试人员可直接配置环境,执行数据驱动的测试。该方案无需多人联调构造接口数据,节约了人力并提升了效率。在使用接口协议解析单元134时,该方案还具有较强的通用性,可对传输层之上的标准协议和非标准协议进行解析并构造测试数据,以实现接口协议测试。而在使用场景数据备份单元138时,备份后的测试场景可重复执行,不必重新购造测试数据,节约人力,提高回归测试效率。
[0032]以上参考图1描述了根据本发明的实施例的接口测试系统及其中使用的网络代理的简要结构。需要注意的是,该简要结构仅是为了阐述本发明的方案而做出的示例性结构,本发明的方案不限于图1所示的结构。例如,该结构中还可以存在其他的组件和/或测试接口,如数据库系统、redis系统、zookeeper、其他websevice等。例如,该结构中的各个单元也可以通过更多或更少的组件来实现,如接口协议解析单元134和协议体数据修改单元136可在同一组件中实现等。或甚至在一些情况下,接口协议解析单元134、协议体数据修改单元136和场景数据备份单元138中的一个或多个可被并入接口测试工具132。此时接口测试工具132相当于上述实施例中的网络代理130。在一些示例中,接口协议解析单元134、协议体数据修改单元136和场景数据备份单元138中的一个或多个可以通过可拆卸模块的方式并入接口测试工具132。
[0033]下面将参考图2描述根据本发明的实施例的接口测试方法的流程图。图2示出了一种用于测试接口的方法的简要流程图。该方法由上述的网络代理130执行。
[0034]如图2所示,在步骤210中,例如由协议体数据修改单元136对从调用接口 120返回被测接口 110的返回数据进行处理以生成测试数据。
[0035]在步骤220中,例如由接口测试工具132向被测接口 110转发所生成的测试数据。
[0036]在步骤230中,例如由接口测试工具132观察和记录被测接口 110对测试数据的处理。
[0037]在一些示例中,处理返回数据包括对协议体数据进行修改,以数据驱动的方式进行接口测试。在测试时,被测接口 110作为客户端可修改目标服务的IP地
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1