一种API接口测试方法及装置与流程

文档序号:36313792发布日期:2023-12-07 19:37阅读:34来源:国知局
一种的制作方法

本技术涉及api接口测试,特别是涉及一种api接口测试方法及装置。


背景技术:

1、随着api(application programming interface,应用程序编程接口)接口技术的发展,系统之间或系统内不同子系统之间通常以api接口进行对接。api接口对接经常会涉及到敏感数据的交换,因此,为了保证数据安全,需要对api接口进行测试,以验证api接口的安全性是否符合预期。

2、传统技术中,api接口测试依据系统的api文档进行,仅对api文档中记录的api接口进行测试。然而api文档通常由人工编写,受限于人员的编写能力,经常出现系统的一些api接口未被记录在api文档中,导致这些未被记录在api文档的api接口不能被测试,从而造成系统的api接口测试不全面。


技术实现思路

1、有鉴于此,本技术提出了一种api接口测试方法及装置,主要目的在于提高api接口测试的全面性。

2、为了达到上述目的,本技术主要提供了如下技术方案:

3、第一方面,本技术提供了一种api接口测试方法,该api接口测试方法包括:

4、对待测试系统的系统代码进行静态代码分析;

5、基于静态代码分析得到的api接口,和所述待测试系统的api文档中的api接口,确定所述待测试系统的待测api接口;

6、对所述待测api接口进行测试。

7、在本技术一些实施例中,基于静态代码分析得到的api接口,和所述待测试系统的api文档中的api接口,确定所述待测试系统的待测api接口,包括:对静态代码分析得到的api接口和所述api文档中的api接口进行比对;若比对结果确定不存在不相同api接口,则将所述静态代码分析得到的api接口或所述api文档中的api接口确定为待测试系统的待测api接口;若比对结果确定存在不相同api接口,则基于所述不相同api接口以及比对结果确定为相同的api接口,确定待测api接口。

8、在本技术一些实施例中,所述api接口通过api描述信息进行表征,对所述静态代码分析得到的api接口和api文档中的api接口进行比对,包括:将静态代码分析得到的api描述信息和所述api文档中的api描述信息进行比对;若比对结果相同,则确定不存在不相同api接口;若比对结果不同,则确定存在不相同api接口。

9、在本技术一些实施例中,在基于所述不相同api接口以及比对结果确定为相同的api接口,确定待测api接口之前,该api接口测试方法还包括:若所述不相同api接口为所述静态代码分析结果中存在,且所述api文档中不存在的api接口,则判断是否保留所述不相同api接口;若保留,则将所述不相同api接口确定为候选待测api接口;若不保留,则删除所述静态代码分析结果对应的系统代码中的所述不相同api接口。

10、在本技术一些实施例中,在基于所述不相同api接口以及比对结果确定为相同的api接口,确定待测api接口之前,该api接口测试方法还包括:若所述不相同api接口为所述静态分析结果中不存在,且所述api文档中存在的api接口,则判断所述静态代码分析结果对应的系统代码是否需要添加所述不相同api接口;若不需要,则删除所述api文档中的所述不相同api接口;若需要,则将所述不相同api接口添加至所述静态代码分析结果对应的系统代码,并将所述不相同api接口确定为候选待测api接口。

11、在本技术一些实施例中,在基于所述不相同api接口以及比对结果确定为相同的api接口,确定待测api接口之前,该api接口测试方法还包括:若所述不相同api接口为所述静态分析结果和所述api文档中均存在,

12、且在所述静态分析结果和所述api文档中的api描述信息不同的api接口,则将所述不相同api接口在所述静态代码分析结果对应的系统代码和所述api文档中的api描述信息统一为相同的api描述信息,并将所述不相同api接口确定为候选待测api接口。

13、在本技术一些实施例中,基于所述不相同api接口以及比对结果确定为相同的api接口,确定待测api接口,包括:将所述候选待测api接口以及所述相同的api接口,确定为待测api接口。

14、在本技术一些实施例中,对所述待测api接口进行测试,包括:基于所述待测api接口的api描述信息,对所述待测api接口进行动态测试;基于所述动态测试,确定出存在安全漏洞的api接口。

15、在本技术一些实施例中,对所述待测api接口进行动态测试,包括:对于每个所述待测api接口:组合所述待测api接口的api描述信息和相应的用例数据形成api测试请求;将所述api测试请求发送至运行中的系统代码,以供运行的系统代码执行所述api测试请求;响应于接收到所述系统代码反馈的响应数据,判断所述待测api接口是否存在安全漏洞。

16、在本技术一些实施例中,对所述待测api接口进行测试,包括:对所述待测api接口对应的系统代码进行静态漏洞分析;基于所述静态漏洞分析,确定出存在安全漏洞的api接口。

17、在本技术一些实施例中,该api接口测试方法还包括:若动态测试和静态漏洞分析均确定出存在安全漏洞的api接口,则关联分析存在安全漏洞的api接口;若关联分析出所述待测试系统存在第一api接口,则确定所述第一api接口为可疑误报漏洞接口;其中,所述第一api接口为被静态漏洞分析出存在安全漏洞,且未被动态测试出存在安全漏洞的api接口;若关联分析出所述待测试系统存在第二api接口,则将与所述第二api接口相关的系统代码确定为待修复代码;其中,所述第二api接口为被静态漏洞分析出存在安全漏洞,且被动态测试确定出存在安全漏洞的api接口。

18、在本技术一些实施例中,该api接口测试方法还包括:若关联分析出所述待测试系统存在第二api接口,则判断所述第二api接口的相关系统代码中的api调用相关信息和所述第二api接口动态测试中使用的api调用相关信息是否相同;若相同,则执行将与所述第二api接口相关的系统代码确定为待修复代码的步骤。

19、在本技术一些实施例中,该api接口测试方法还包括:确定所述存在安全漏洞的api接口相关的代码在所述系统代码中的位置,并发出安全漏洞修复提示,所述安全漏洞修复提示中携带有所述位置的相关信息。

20、在本技术一些实施例中,对待测试系统的系统代码进行静态代码分析,包括:确定所述系统代码的代码类型;调用与所述代码类型匹配的静态代码分析器分析所述系统代码,获得所述待测试系统的系统代码中的api接口。

21、在本技术一些实施例中,确定所述系统代码的代码类型,包括:确定所述系统代码所在代码文件的后缀名和文件头信息;其中,所述文件头信息用于指示所述系统代码的编写格式;基于所述后缀名和所述编写格式,确定所述系统代码的代码类型。

22、在本技术一些实施例中,所述系统代码为所述待测试系统的源代码或二进制代码。

23、第二方面,本技术提供了一种api接口测试装置,该api接口测试装置包括:

24、分析模块,用于对待测试系统的系统代码进行静态代码分析;

25、确定模块,用于基于静态代码分析得到的api接口,和所述待测试系统的api文档中的api接口,确定所述待测试系统的待测api接口;

26、测试模块,用于对所述待测api接口进行测试。

27、第三方面,本技术提供了一种计算机可读存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面的api接口测试方法。

28、第四方面,本技术提供了一种电子设备,所述电子设备包括:存储器,用于存储程序;处理器,耦合至所述存储器,用于运行所述程序以执行第一方面的api接口测试方法。

29、本技术提供的api接口测试方法及装置,在需要对待测试系统进行api接口测试时,对待测试系统的系统代码进行静态代码分析,获得待测试系统的系统代码中的api接口。基于静态代码分析得到的api接口,和待测试系统的api文档中的api接口,确定待测试系统的待测api接口,并对待测api接口进行测试。可见,本技术实施例进行测试的待测api接口,基于静态代码分析得到的api接口和待测试系统的api文档中的api接口确定。即使待测试系统的系统代码和待测试系统的api文档中的api接口存在不相同,也可基于静态代码分析得到的api接口和待测试系统的api文档中的api接口全面确定出待测试系统的待测api接口。因此对确定出待测api接口进行测试,能够减少出现待测试系统的api接口被遗漏测试的情况,从而能够提高系统的api接口测试的全面性。

30、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。

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