测试接口的方法、网络代理和系统技术方案

技术编号:12674132 阅读:68 留言:0更新日期:2016-01-07 18:38
为了解决接口测试不灵活和效率不高的问题,本发明专利技术提供了用于测试接口的方法。该方法由在被测接口和与被测接口配合进行测试的调用接口之间连接的网络代理执行,并包括对从所述调用接口返回所述被测接口的返回数据进行处理以生成测试数据;向所述被测接口转发所生成的测试数据;以及观察和记录所述被测接口对所述测试数据的处理。还提供了对应的网络代理和系统。该方法、网络代理和系统解决了现有技术接口测试不灵活和效率不高的问题。

【技术实现步骤摘要】

本专利技术涉及设备测试领域,并具体地涉及一种测试接口的方法、网络代理和系统
技术介绍
在网络产品中,通常包含多个组件,每个组件通常以服务模块的形式部署在系统后台。后台服务模块与前台存在接口,服务模块之间也存在接口,接口间的协议和调用方式是多种多样的。在产品测试阶段,需要对通信接口进行功能测试。—种通常采用的测试方法是打粧测试法,该方法对接口两端的服务分别做测试。由于分属不同的服务模块,测试工作可能由不同的产品测试团队进行。而在之后的联调测试阶段,在修改接口数据时需要双方配合进行调试,使得测试效率低下。对于接口的Fuzz测试,对端服务也很难构造出异常数据。特别是在调用第三方接口时,无法充分地对接口进行测试。此外,由于接口自身的独特性,接口测试工具通常也不可移植复用。因此,需要提供一种灵活高效的接口测试方案。
技术实现思路
如上所述,需要一种能够减轻或解决上述问题的接口测试方法和设备。根据本专利技术的一个方案,提供了一种用于测试接口的方法,所述方法由在被测接口和与被测接口配合进行测试的调用接口之间连接的网络代理执行,所述方法包括:对从所述调用接口返回所述被测接口的返回数据进行处理以生成测试数据;向所述被测接口转发所生成的测试数据;以及观察和记录所述被测接口对所述测试数据的处理。根据本专利技术的另一方案,提供了一种用于测试接口的网络代理,其中,所述网络代理连接在被测接口和与被测接口配合进行接口测试的调用接口之间,所述网络代理包括:协议体数据修改单元,用于对从所述调用接口返回所述被测接口的返回数据进行处理以生成测试数据;以及接口测试工具,用于向所述被测接口转发所生成的测试数据,并观察和记录所述被测接口对所述测试数据的处理。根据本专利技术的另一方案,提供了一种用于测试接口的系统,包括:被测接口 ;与所述被测接口配合进行接口测试的调用接口 ;以及上述的网络代理本专利技术实施例提出的上述基于代理方式对网络接口进行测试的方法,通过对数据包的截获、处理和转发,可灵活地配置代理功能,以满足不同接口的需求,提高通用性并使得测试变得高效。【附图说明】通过下面结合附图对专利技术进行的详细描述,将使本专利技术的上述特征和优点更加明显,其中:图1是根据本专利技术的实施例的接口测试系统的示意图;图2是示出根据本专利技术的实施例的用于测试接口的方法的示意流程图;图3是示出根据本专利技术的实施例的协议解析的具体操作的示意流程图;以及图4是示出根据本专利技术的实施例的自动回归测试方法的示意流程图。【具体实施方式】下面,参考附图详细说明本专利技术的优选实施方式。在附图中,虽然示于不同的附图中,但相同的附图标记用于表示相同的或相似的组件。为了清楚和简明,对已知功能和结构的详细描述将被省略,以避免使本专利技术的主题不清楚。图1示出了根据本专利技术的实施例的接口测试系统的示意图。如图1中所示,该系统包括被测接口 110、与被测接口 110配合进行接口测试的调用接口 120以及下面将要详细描述的网络代理130。在图1所示的实施例中,网络代理130连接在被测接口 110和调用接口 120之间,并包括接口测试工具132和协议体数据修改单元136。协议体数据修改单元136用于对从调用接口 120返回被测接口 110的返回数据进行处理以生成测试数据。接口测试工具132用于向被测接口 110转发所生成的测试数据,并观察和记录被测接口 110对测试数据的处理。如图1中所示,在被测接口 110和调用接口 120之间可存在非测试用途的正常网络通信。该正常网络通信可以不经过本专利技术实施例中的网络代理。然而在进行测试时,会从被测接口 110向调用接口 120发送用于测试的数据,调用接口 120接收到该数据时产生上述的返回数据。在一些实施例中,从被测接口 110向调用接口 120发送的数据会途径网络代理(具体地,例如网络代理中的接口测试工具132),但网络代理130(例如其中的接口测试工具132)不对该数据进行修改。而在另一些实施例中,由于无需修改,该数据发送也可不途径网络代理130。图1示出了后一种情况,为了使图示简洁并易于理解,图1中未示出该用于测试的数据从被测接口 110向调用接口 120的发送。上述协议体数据修改单元136的处理包括对协议体数据进行修改,以数据驱动的方式进行接口测试,即通过向被测接口 110发送不同数据(例如,异常数据)并观察被测接口 110对这些不同数据的处理来测试被测接口 110的各项性能。在测试时,被测接口 110作为客户端可修改目标服务的IP地址和端口,以配置为测试工具132所监听的IP地址和端口。该修改可由被测接口所在设备执行,也可由接口测试工具执行,或者可由其他任何相关的设备执行,本专利技术不对此进行限制。此外在此,无需对调用接口 120做任何改变。如本领域中所知的,通信协议(如http等)包括协议头和协议体两部分,前者通常保证通信正常进行,后者表示具体通信内容。因此本文中使用的协议体数据有时也被称为协议的数据部分。在可实施本专利技术实施例的一些示例中,例如网站需要调用第三方提供的数据接口,且调用过程中采用json明文字符串的方式传输。在对网站接口进行测试时,需要对超出临界值的数据进行测试,而第三方接口无法人为构造这样的测试数据。此时可采用本实施例提供的方法截获明文数据包,并可将其直接修改为任意数值,再转发给被测接口,观察被测接口的处理流程。上述示例采用json明文字符串的方式传输数据,然而在其他一些示例中,接口通信并不直接使用明文的TCP数据,而是可采用http协议、snmp协议、ssh协议等多种方式,或者将复杂结构序列化发送,构成私有协议体。鉴于此,如图1所示,网络代理130还包括接口协议解析单元134,用于在修改数据之前对被测接口 110与调用接口 120之间使用的协议进行解析。由于一个网络接口通常采用一种固定协议进行通信,因此在测试前需要配置所使用的协议结构。具体地,对于公共协议,按照固有结构解析;对于私有协议,首先动态加载协议结构体,再对该协议结构体进行反序列化。协议结构体通常采用h”文件配置,在测试工具130运行时可根据用户所选协议来动态调用。在本专利技术的其他一些实施例中,还可以实现测试场景的备份和接口的回归测试。在这些实施例中,如图1所示,网络代理130还可包括场景数据备份单元138,用于备份测试场景。在此情况下,接口测试工具132可利用所备份的测试场景来进行自动回归测试。具体地,场景数据备份单元138可备份以下至少一项:.从调用接口 120接收到的返回数据(可作为用于自动匹配消息的key值).被测接口 110和调用接口 120之间的通信所使用的协议?通过协议体数据修改单元136修改返回数据而生成的测试数据(可能为多个值,可采用json字符串的方式存储)在一些示例中,测试数据也可提前编辑。在此情况下,图1中所示的网络代理130可包括配置文件(未示出)。可将需要遍历的数值作为测试数据保存在配置文件中。当反复执行同一接口的通信时,接口测试工具130可以将调用接口 120返回的返回数据作为关键字在场景数据备份单元138备份的测试场景中选择对应的测试场景并应用所选择的测试场景,以及自动顺序地使用配置文件中保存的测试数值来作为向被测接口 110转发的测试数据,以实现接口遍本文档来自技高网...

【技术保护点】
一种用于测试接口的方法,所述方法由在被测接口和与被测接口配合进行测试的调用接口之间连接的网络代理执行,所述方法包括:对从所述调用接口返回所述被测接口的返回数据进行处理以生成测试数据;向所述被测接口转发所生成的测试数据;以及观察和记录所述被测接口对所述测试数据的处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:侯磊丁超马鑫
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1