1.本发明涉及测试领域,特别是涉及接口测试覆盖统计方法、装置、计算机设备和存储介质。
背景技术:2.自动化测试是测试人员对应用进行验证的重要方法,在自动化测试中,对接口的覆盖程度如何进行有效的衡量,对于测试人员来说,是非常重要的指标。
3.目前,业内常用的自动化测试系统一种是swagger系统,是restful接口文档生成的开源项目,可以很方便的生成restful接口文档,并且还可以通过swagger-ui测试restful接口功能,但存在2个缺点:一是只支持restful接口,二是无法做到自动化执行和覆盖程度的统计。另一种常用的是metersphere系统,可以手动维护dubbo接口,且在平台上编写dubbo接口的测试用例,并做一些数据统计,但流程上比较繁琐,使用不方便。
技术实现要素:4.基于此,有必要针对接口测试覆盖统计不方便的问题,提供一种接口测试覆盖统计方法、装置、计算机设备和存储介质。
5.基于第一方面所述的一种接口测试覆盖统计方法,所述方法包括:获取被测应用的测试脚本和测试用例;将每个测试用例与被测应用提供的接口进行关联,并统计每个接口的用例数量;通过调用所述测试脚本以执行各个测试用例,并在执行测试用例期间,记录接口调用信息和测试用例的执行结果,并统计接口调用次数;在执行完成后,根据所述接口调用信息统计接口覆盖数,并根据所述执行结果统计用例通过数和用例通过率。
6.在其中一个实施例中,所述方法还包括:获取被测应用提供的服务所包含的接口信息;根据所述接口信息统计被测应用提供的接口总数。
7.在其中一个实施例中,获取被测应用的测试脚本和测试用例,包括:从预设代码库中获取测试脚本;解析所述测试脚本中的注解信息,以获取测试用例的用例信息,所述用例信息包括用例描述、被测应用名称、被测接口名称、优先级、角色、是否可执行信息、编写作者中的至少一种。
8.在其中一个实施例中,在获取测试用例的用例信息之后,所述方法还包括:根据所述用例信息统计为所述被测应用编写的用例总数和最高优先级用例数。
9.在其中一个实施例中,记录接口调用信息和测试用例的执行结果,并统计接口调用次数,包括:对被测应用提供的接口进行监测;每监测到接口被调用一次,记录被调用接口的接口调用信息,并将被调用接口的接口调用次数加1;所述接口调用信息包括接口名称、服务名称、接口入参。
10.在其中一个实施例中,根据所述接口调用信息统计接口覆盖数,包括:获取所述被测应用提供的接口的接口名称;基于所述接口调用信息和所述接口名称确定接口覆盖数。
11.在其中一个实施例中,基于所述接口调用信息和所述接口名称确定接口覆盖数,
包括:
12.将每个所述接口名称与所述接口调用信息进行匹配;将匹配成功的接口名称标记为已覆盖;确定被标记为已覆盖的接口名称的数量作为所述接口覆盖数。
13.基于第二方面所述的一种接口测试覆盖统计装置,所述装置包括:获取单元,用于获取被测应用的测试脚本和测试用例,所述测试脚本为按照预设测试框架编写获得;第一统计单元,用于将每个测试用例与被测应用提供的接口进行关联,并统计每个接口的用例数量;第二统计单元,用于通过调用所述测试脚本以执行各个测试用例,并在执行测试用例期间,记录接口调用信息和测试用例的执行结果,并统计接口调用次数;第三统计单元,用于在执行完成后,根据所述接口调用信息统计接口覆盖数,并根据所述执行结果统计用例通过数和用例通过率。
14.在其中一个实施例中,所述装置还包括:第四统计单元,用于获取被测应用提供的服务所包含的接口信息;根据所述接口信息统计被测应用提供的接口总数。
15.在其中一个实施例中,所述获取单元,具体用于从预设代码库中获取测试脚本;解析所述测试脚本中的注解信息,以获取测试用例的用例信息,所述用例信息包括用例描述、被测应用名称、被测接口名称、优先级、角色、是否可执行信息、编写作者中的至少一种;
16.所述装置还包括:
17.第五统计单元,用于在获取测试用例的用例信息之后,根据所述用例信息统计为所述被测应用编写的用例总数和最高优先级用例数。
18.在其中一个实施例中,所述第二统计单元包括:监测模块,用于对被测应用提供的接口进行监测;记录模块,用于每监测到接口被调用一次,记录被调用接口的接口调用信息,并将被调用接口的接口调用次数加1;所述接口调用信息包括接口名称、服务名称、接口入参;
19.以及,所述第三统计单元包括:获取模块,用于获取被测应用提供的接口的接口名称;确定模块,用于基于所述接口调用信息和所述接口名称确定接口覆盖数。
20.在其中一个实施例中,所述确定模块,具体用于将每个所述接口名称与所述接口调用信息进行匹配;将匹配成功的接口名称标记为已覆盖;确定被标记为已覆盖的接口名称的数量作为所述接口覆盖数。
21.基于第三方面所述的一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述接口测试覆盖统计方法的步骤。
22.基于第四方面所述的一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述接口测试覆盖统计方法的步骤。
23.上述接口测试覆盖统计方法、装置、计算机设备和存储介质,通过获取按照预设测试框架为被测应用编写的测试脚本和测试用例,将测试用例与被测应用的接口进行关联后,可以统计出每个接口的用例数量,在测试过程中,自动统计接口调用次数,并在测试完成后,根据测试过程中记录下来的接口调用信息和执行结果,可以自动统计接口覆盖数和用例通过数及通过率。由此可见,测试人员编写自动化用例后,只需要按照测试框架编写测试脚本,便可按应用维度实现接口的用例数量、接口调用次数、接口覆盖数、用例通过数和
用例通过率的自动统计,简单且方便,并且测试负责人根据这些统计结果可查看被测应用的接口覆盖率广度,有效判断接口测试是否充分,知晓哪些接口未被用例覆盖。
24.进一步地,按照预设测试框架进行测试脚本编写,可以使得测试代码规范化,代码风格一致性,提升了代码的可阅读性,能够有效降低接口自动化代码维护成本。
附图说明
25.图1为一个实施例中提供的接口测试覆盖统计方法的实施环境图;
26.图2为一个实施例中计算机设备的内部结构框图;
27.图3a为一个实施例中接口测试覆盖统计方法的流程图;
28.图3b为一个实施例中测试脚本和测试用例的获取流程图;
29.图3c为一个实施例中接口调用次数统计流程图;
30.图3d为一个实施例中接口覆盖数统计流程图;
31.图4为一个实施例中接口测试覆盖统计装置的结构框图;
32.图5为一个实施例中接口测试覆盖统计装置的结构框图;
33.图6为一个实施例中获取单元的结构框图;
34.图7为一个实施例中接口测试覆盖统计装置的结构框图;
35.图8为一个实施例中第二统计单元的结构框图;
36.图9为一个实施例中第三统计单元的结构框图。
具体实施方式
37.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
38.可以理解,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本技术的范围的情况下,可以将第一接口测试覆盖统计脚本称为第二接口测试覆盖统计脚本,且类似地,可将第二接口测试覆盖统计脚本称为第二接口测试覆盖统计脚本。
39.图1为一个实施例中提供的接口测试覆盖统计方法的实施环境图,如图1所示,在该实施环境中,包括计算机设备110以及终端120。
40.计算机设备110为测试设备,例如为测试人员使用的电脑等计算机设备,计算机设备110上安装有自动化测试工具,例如可以为zookper系统。终端120上安装有需要进行接口测试覆盖统计的被测应用,当需要测试时,测试人员可以编写好测试用例,将被测应用注册到自动化测试工具,并按照预先引入的测试框架编写测试脚本。然后利用自动化测试工具执行该测试脚本,对终端120上的被测应用进行测试,并获取被测应用对应的接口测试覆盖统计结果。
41.需要说明的是,终端120以及计算机设备110可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。计算机设备110以及终端110可以通过蓝牙、usb(universal serial bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不
做限制。
42.图2为一个实施例中计算机设备的内部结构示意图。如图2所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种接口测试覆盖统计方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种接口测试覆盖统计方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
43.如图3a所示,在一个实施例中,提出了一种接口测试覆盖统计方法,该接口测试覆盖统计方法可以应用于上述的计算机设备110中,具体可以包括以下步骤:
44.步骤301,获取被测应用的测试脚本和测试用例,所述测试脚本为按照预设测试框架编写获得。
45.在执行步骤301之前,可以通过自动化测试工具(例如zookper系统)的接口,获取到注册在自动化测试工具上的被测应用的应用名称、服务名称、接口信息,从而可以根据接口信息统计被测应用提供的接口总数。
46.可选的,接口信息可以包括接口名称、接口入参、接口出参等信息。
47.在本技术实施例中,被测应用通常提供至少一种服务,且每种服务包含有多个接口,因此每个服务名称下包含多个接口名称。
48.值得注意的是,由于测试脚本代码为按照预设测试框架编写获得,因此在执行步骤301之前,还需要编写测试框架并存储,从而测试人员在编写测试脚本代码时,通过引入测试框架编写自动化代码并上传git库(代码库),供测试时从代码库读取测试脚本代码。
49.在一具体实例中,测试框架的编写过程包括:一、引入java的annotation注解,取名为autotest,其中包含属性:description(用例描述)、author(接口编写作者)、appname(被测应用名称)、interface(被测接口名称)、priority(优先级:p1-p10)、role(角色:测试或开发)、enabled(是否可执行);二、引入testng的testlisteneradapter方法,重写onfinish方法,将测试用例执行结果通过itestcontext获取到执行结果,并且将执行结果回调给统计系统。然后将测试框架打成jar包存储下来。
50.进一步地,测试脚本代码编写过程包括:测试人员通过eclipse等工具,使用maven+testng,且引入上述编写的测试框架。即首先在maven的pom文件中,引入测试框架的listener监听;然后在测试框架的config.properties文件中配置appname(被测应用名称);最后引入注解autotest,将测试用例的description、author、appname、interface、priority,role等注解信息,编写在java文件中。
51.基于此,参见图3b所示,针对测试脚本和测试用例的获取过程,包括如下步骤:
52.步骤3011:通过从预设的代码库中获取测试脚本;
53.步骤3012:解析测试脚本中的注解信息,以获取测试用例的用例信息。
54.具体地,通过解析config.properties文件,获取到被测应用名称,并解析每个
java文件中的autotest注解,以获得注解中的注解信息,得到用例信息。
55.在本技术实施例中,测试用例的用例信息包括上述所述的用例描述(description)、被测应用名称(appname)、被测接口名称(interface)、优先级(priority)、角色(role)、是否可执行信息(enabled)、编写作者(author)中的至少一种。
56.需要说明的是,在获取测试用例的用例信息之后,可以根据用例信息统计为被测应用编写的用例总数和最高优先级用例数。
57.其中,测试用例的优先级表示了在测试被测应用的接口时该测试用例的执行结果起的作用有多大。
58.例如,优先级p1-p10中p1为最高优先级,因此可以统计p1优先级(priority:p1)用例数作为最高优先级用例数。
59.进一步地,根据用例信息还可以分别统计由开发人员(role:开发)编写的用例数和测试人员(role:测试)编写的用例数。
60.步骤302,将每个测试用例与被测应用提供的接口进行关联,并统计每个接口的用例数量。
61.基于上述步骤301所述内容,由于被测应用提供有被访问接口,而测试用例用于测试接口功能,也即用例信息中的被测接口名称所指示的接口,因此可以将测试用例与被测应用提供的接口关联起来,便于统计出每个接口的用例数量。
62.其中,接口的用例数量指的是为该接口编写的用例数,利用这些用例测试该接口的功能。
63.步骤303,通过调用所述测试脚本以执行各个测试用例,并在执行测试用例期间,记录接口调用信息和测试用例的执行结果,并统计接口调用次数。
64.参见图3c所示,在一种可能的实现方式中,针对接口调用次数的统计过程,包括如下步骤:
65.步骤3031:在执行测试期间,对被测应用提供的接口进行监测;
66.步骤3032:每监测到接口被调用一次,记录被调用接口的接口调用信息,并将被调用接口的接口调用次数加1。
67.其中,所述接口调用信息包括接口名称、服务名称、接口入参。
68.在一个具体实例中,以被测应用的接口为dubbo接口为例,通过调用测试脚本以对被测应用的所有dubbo接口进行功能测试,具体在调用dubbo接口时,使用使用java的invocationhandler实现动态代理,即在invoke方法中,将该次调用执行的classname(服务名称),methodname(接口名称),params(接口入参)作为接口调用信息存储在缓存中。每个dubbo接口每被调用一次,将该dubbo接口的接口调用次数加1,从而实现实时的接口调用次数统计。
69.进一步地,在dubbo接口调用完成后,通过testing的onfinsh方法,获取到测试用例的执行结果itestcontext存储在缓存中,以便于后续进行用例执行结果的统计。
70.步骤304,在执行完成后,根据所述接口调用信息统计接口覆盖数,并根据所述执行结果统计用例通过数和用例通过率。
71.其中,接口覆盖数指的是在测试过程中被测试用例访问到的被测接口的数量。
72.参见图3d所示,在一种可能的实现方式中,针对根据所述接口调用信息统计接口
覆盖数的过程包括如下步骤:
73.步骤3041:获取被测应用提供的接口的接口名称;
74.步骤3042:基于所述接口调用信息和获取的接口名称确定接口覆盖数。
75.具体地,通过获取被测应用下的所有接口的接口名称,并与缓存中记录的接口调用信息进行匹配,将匹配成功的接口名称标记为已覆盖,通过统计被标记为已覆盖的接口名称的数量作为接口覆盖数。
76.在一个具体实例中,针对统计用例通过数和用例通过率过程中,进入testng的onfinish方法,首先获取被测应用的应用名,然后解析testng的执行结果itestcontext,以获取测试用例的classname(用例类名),description(用例描述),methodname(用例名称),arguments(参数),执行结果。
77.其中,测试用例的执行结果包括通过、失败、跳过,因此除了可以统计用例通过数和用例通过率之外,还可以统计用例失败数量和用例跳过数量。
78.针对上述步骤301至步骤304的过程,针对每个被测应用,可以分析统计得到应用的接口数、接口的覆盖数、接口调用次数、测试用例数量、用例通过数、用例通过率、最高优先级用例数、开发人员编写的用例数和测试人员编写的用例数等各个能够反映测试质量的数据。
[0079][0080]
表1
[0081]
参见上述表1所示的统计报表,测试负责人可以查看到每个应用的接口覆盖率深度情况,可以有效的判断接口测试是否充分,知晓哪些接口未被测试用例覆盖,进而补充对应的接口测试用例,以此提升被测系统的测试质量。
[0082]
至此,完成上述图3a所示的接口测试覆盖统计流程,通过获取按照预设测试框架为被测应用编写的测试脚本和测试用例,将测试用例与被测应用的接口进行关联后,可以统计出每个接口的用例数量,在测试过程中,自动统计接口调用次数,并在测试完成后,根据测试过程中记录下来的接口调用信息和执行结果,可以自动统计接口覆盖数和用例通过数及通过率。由此可见,测试人员编写自动化用例后,只需要按照测试框架编写测试脚本,便可按应用维度实现接口的用例数量、接口调用次数、接口覆盖数、用例通过数和用例通过率的自动统计,简单且方便,并且测试负责人根据这些统计结果可查看被测应用的接口覆盖率广度,有效判断接口测试是否充分,知晓哪些接口未被用例覆盖。
[0083]
进一步地,按照预设测试框架进行测试脚本编写,可以使得测试代码规范化,代码
风格一致性,提升了代码的可阅读性,能够有效降低接口自动化代码维护成本。
[0084]
与前述接口测试覆盖统计方法的实施例相对应,本发明还提供了接口测试覆盖统计装置的实施例。
[0085]
如图4所示,在一个实施例中,提供了一种接口测试覆盖统计装置,该接口测试覆盖统计装置可以集成于上述的计算机设备110中,该装置用于执行上述任一实施例提供的接口测试覆盖统计方法,具体可以包括获取单元410、第一统计单元420、第二统计单元430以及第三统计单元440。
[0086]
获取单元410,用于获取被测应用的测试脚本和测试用例,所述测试脚本为按照预设测试框架编写获得;
[0087]
第一统计单元420,用于将每个测试用例与被测应用提供的接口进行关联,并统计每个接口的用例数量;
[0088]
第二统计单元430,用于通过调用所述测试脚本以执行各个测试用例,并在执行测试用例期间,记录接口调用信息和测试用例的执行结果,并统计接口调用次数;
[0089]
第三统计单元440,用于在执行完成后,根据所述接口调用信息统计接口覆盖数,并根据所述执行结果统计用例通过数和用例通过率。
[0090]
如图5所示,在一个实施例中,所述装置还包括第四统计单元450;
[0091]
所述第四统计单元450,用于获取被测应用提供的服务所包含的接口信息;根据所述接口信息统计被测应用提供的接口总数。
[0092]
如图6所示,在一个实施例中,所述获取单元410包括:读取模块410a、解析模块410b;
[0093]
所述读取模块410a,用于从预设代码库中获取测试脚本;
[0094]
所述解析模块410b,用于解析所述测试脚本中的注解信息,以获取测试用例的用例信息,所述用例信息包括用例描述、被测应用名称、被测接口名称、优先级、角色、是否可执行信息、编写作者中的至少一种;
[0095]
如图7所示,在一个实施例中,所述装置还包括第五统计单元460;
[0096]
所述第五统计单元460,用于在获取测试用例的用例信息之后,根据所述用例信息统计为所述被测应用编写的用例总数和最高优先级用例数。
[0097]
如图8所示,在一个实施例中,所述第二统计单元430包括监测模块430a、记录模块430b;
[0098]
所述监测模块430a,用于对被测应用提供的接口进行监测;
[0099]
所述记录模块430b,用于每监测到接口被调用一次,记录被调用接口的接口调用信息,并将被调用接口的接口调用次数加1;所述接口调用信息包括接口名称、服务名称、接口入参;
[0100]
如图9所示,在一个实施例中,所述第三统计单元440包括获取模块440a、确定模块440b;
[0101]
所述获取模块440a,用于获取被测应用提供的接口的接口名称;
[0102]
所述确定模块440b,用于基于所述接口调用信息和所述接口名称确定接口覆盖数。
[0103]
在一个实施例中,所述确定模块440b,具体用于将每个所述接口名称与所述接口
调用信息进行匹配;将匹配成功的接口名称标记为已覆盖;确定被标记为已覆盖的接口名称的数量作为所述接口覆盖数。
[0104]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0105]
本发明实施方式还提供一种与前述实施方式所提供的接口测试覆盖统计方法对应的计算机设备,以执行上述测试用例执行方法,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取被测应用的测试脚本和测试用例;将每个测试用例与被测应用提供的接口进行关联,并统计每个接口的用例数量;通过调用所述测试脚本以执行各个测试用例,并在执行测试用例期间,记录接口调用信息和测试用例的执行结果,并统计接口调用次数;在执行完成后,根据所述接口调用信息统计接口覆盖数,并根据所述执行结果统计用例通过数和用例通过率。
[0106]
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:获取被测应用提供的服务所包含的接口信息;根据所述接口信息统计被测应用提供的接口总数。
[0107]
在一个实施例中,所述处理器所执行的获取被测应用的测试脚本和测试用例的步骤包括:从预设代码库中获取测试脚本;解析所述测试脚本中的注解信息,以获取测试用例的用例信息,所述用例信息包括用例描述、被测应用名称、被测接口名称、优先级、角色、是否可执行信息、编写作者中的至少一种;处理器执行计算机可读指令时还执行以下步骤:在获取测试用例的用例信息之后,所述方法还包括:根据所述用例信息统计为被测应用编写的用例总数和最高优先级用例数。
[0108]
在一个实施例中,所述处理器所执行的记录接口调用信息和测试用例的执行结果,并统计接口调用次数的步骤包括:对被测应用提供的接口进行监测;每监测到接口被调用一次,记录被调用接口的接口调用信息,并将被调用接口的接口调用次数加1;所述接口调用信息包括接口名称、服务名称、接口入参。
[0109]
在一个实施例中,所述处理器所执行的根据所述接口调用信息统计接口覆盖数的步骤包括:获取被测应用提供的接口的接口名称;基于所述接口调用信息和所述接口名称确定接口覆盖数。
[0110]
在一个实施例中,所述处理器所执行的基于所述接口调用信息和所述接口名称确定接口覆盖数的步骤包括:将每个所述接口名称与所述接口调用信息进行匹配;将匹配成功的接口名称标记为已覆盖;确定被标记为已覆盖的接口名称的数量作为所述接口覆盖数。
[0111]
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:获取被测应用的测试脚本和测试用例;将每个测试用例与被测应用提供的接口进行关联,并统计每个接口的用例数量;通过调用所述测试脚本以执行各个测试用例,并在执行测试用例期间,记录接口调用信息和测试用例的执行结果,并统计接口调用次数;在执行完成后,根据所述接口调用信息统计接口覆盖数,并根据所述执行结果统计用例通过数和用例通过率。
[0112]
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:获取被测应用提供的服务所包含的接口信息;根据所述接口信息统计被测应用提供的接口总数。
[0113]
在一个实施例中,所述处理器所执行的获取被测应用的测试脚本和测试用例的步骤包括:从预设代码库中获取测试脚本;解析所述测试脚本中的注解信息,以获取测试用例的用例信息,所述用例信息包括用例描述、被测应用名称、被测接口名称、优先级、角色、是否可执行信息、编写作者中的至少一种;处理器执行计算机可读指令时还执行以下步骤:在获取测试用例的用例信息之后,所述方法还包括:根据所述用例信息统计为被测应用编写的用例总数和最高优先级用例数。
[0114]
在一个实施例中,所述处理器所执行的记录接口调用信息和测试用例的执行结果,并统计接口调用次数的步骤包括:对被测应用提供的接口进行监测;每监测到接口被调用一次,记录被调用接口的接口调用信息,并将被调用接口的接口调用次数加1;所述接口调用信息包括接口名称、服务名称、接口入参。
[0115]
在一个实施例中,所述处理器所执行的根据所述接口调用信息统计接口覆盖数的步骤包括:获取被测应用提供的接口的接口名称;基于所述接口调用信息和所述接口名称确定接口覆盖数。
[0116]
在一个实施例中,所述处理器所执行的基于所述接口调用信息和所述接口名称确定接口覆盖数的步骤包括:将每个所述接口名称与所述接口调用信息进行匹配;将匹配成功的接口名称标记为已覆盖;确定被标记为已覆盖的接口名称的数量作为所述接口覆盖数。
[0117]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
[0118]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0119]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
技术特征:1.一种接口测试覆盖统计方法,其特征在于,所述方法包括:获取被测应用的测试脚本和测试用例,所述测试脚本为按照预设测试框架编写获得;将每个所述测试用例与所述被测应用提供的接口进行关联,并统计每个所述接口的用例数量;通过调用所述测试脚本以执行各个所述测试用例,并在执行所述测试用例期间,记录接口调用信息和所述测试用例的执行结果,并统计接口调用次数;在执行完成后,根据所述接口调用信息统计接口覆盖数,并根据所述执行结果统计用例通过数和用例通过率。2.如权利要求1所述的接口测试覆盖统计方法,其特征在于,所述方法还包括:获取所述被测应用提供的服务所包含的接口信息;根据所述接口信息统计所述被测应用提供的接口总数。3.如权利要求1所述的接口测试覆盖统计方法,其特征在于,获取被测应用的测试脚本和测试用例,包括:从预设代码库中获取测试脚本;解析所述测试脚本中的注解信息,以获取测试用例的用例信息,所述用例信息包括用例描述、被测应用名称、被测接口名称、优先级、角色、是否可执行信息、编写作者中的至少一种。4.如权利要求3所述的接口测试覆盖统计方法,其特征在于,在获取测试用例的用例信息之后,所述方法还包括:根据所述用例信息统计为所述被测应用编写的用例总数和最高优先级用例数。5.如权利要求1所述的接口测试覆盖统计方法,其特征在于,记录接口调用信息和所述测试用例的执行结果,并统计接口调用次数,包括:对所述被测应用提供的接口进行监测;每监测到接口被调用一次,记录被调用接口的接口调用信息,并将所述被调用接口的接口调用次数加1;所述接口调用信息包括接口名称、服务名称、接口入参。6.如权利要求1所述的接口测试覆盖统计方法,其特征在于,根据所述接口调用信息统计接口覆盖数,包括:获取所述被测应用提供的接口的接口名称;基于所述接口调用信息和所述接口名称确定接口覆盖数。7.如权利要求6所述的接口测试覆盖统计方法,其特征在于,基于所述接口调用信息和所述接口名称确定接口覆盖数,包括:将每个所述接口名称与所述接口调用信息进行匹配;将匹配成功的接口名称标记为已覆盖;确定被标记为已覆盖的接口名称的数量作为所述接口覆盖数。8.一种接口测试覆盖统计装置,其特征在于,所述装置包括:获取单元,用于获取被测应用的测试脚本和测试用例,所述测试脚本为按照预设测试框架编写获得;第一统计单元,用于将每个所述测试用例与所述被测应用提供的接口进行关联,并统计每个所述接口的用例数量;
第二统计单元,用于通过调用所述测试脚本以执行各个所述测试用例,并在执行所述测试用例期间,记录接口调用信息和所述测试用例的执行结果,并统计接口调用次数;第三统计单元,用于在执行完成后,根据所述接口调用信息统计接口覆盖数,并根据所述执行结果统计用例通过数和用例通过率。9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述接口测试覆盖统计方法的步骤。10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述接口测试覆盖统计方法的步骤。
技术总结本发明涉及一种接口测试覆盖统计方法、装置、计算机设备和存储介质,所述方法包括:获取被测应用的测试脚本和测试用例;将每个测试用例与被测应用提供的接口进行关联,并统计每个接口的用例数量;通过调用所述测试脚本以执行各个测试用例,并在执行测试用例期间,记录接口调用信息和测试用例的执行结果,并统计接口调用次数;在执行完成后,根据所述接口调用信息统计接口覆盖数,并根据所述执行结果统计用例通过数和用例通过率。上述方法测试人员只需要按照测试框架编写测试脚本,便可实现接口的用例数量、接口调用次数、接口覆盖数、用例通过数和用例通过率的自动统计,简单且方便,并且负责人根据这些统计结果可有效判断接口测试是否充分。是否充分。是否充分。
技术研发人员:熊群 徐佐
受保护的技术使用者:康键信息技术(深圳)有限公司
技术研发日:2022.07.22
技术公布日:2022/11/1