CN111538651A - 接口测试方法、装置、服务器及存储介质 - Google Patents
接口测试方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN111538651A CN111538651A CN202010234220.6A CN202010234220A CN111538651A CN 111538651 A CN111538651 A CN 111538651A CN 202010234220 A CN202010234220 A CN 202010234220A CN 111538651 A CN111538651 A CN 111538651A
- Authority
- CN
- China
- Prior art keywords
- interface
- information
- test case
- changed
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 255
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000006870 function Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 9
- 230000018109 developmental process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种接口测试方法、装置、服务器及存储介质,其中,该方法包括:获取目标代码,所述目标代码包括至少一个接口中每个接口的信息;从所述目标代码中获取所述每个接口的信息;将所述每个接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口;获得所述存在信息变更的接口的测试案例,所述测试案例用于对所述存在信息变更的接口的功能进行测试。采用本申请,可以提升开发效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种接口测试方法、装置、服务器及存储介质。
背景技术
每一个处于软件开发过程中的***服务都不是独立存在的,而是需要依赖或者被依赖于其它***,共同完成对用户的服务,而在***研发测试过程中,开发方在开发完代码之后,将代码发送给测试方进行测试。测试方在进行测试的时候,可以通过运行代码关联的接口的测试案例来调用代码关联的接口,以完成对代码的测试。测试事例可以由开发方编写并提供,也可以由测试方自己编写。
然而,随着业务需求的变更,经常会出现接口信息变更的情况,这也就意味着经常需要重新编写这些存在接口信息变更的接口的测试案例。在这种情况下,不管是开发方提供,还是测试方自己编写,都存在着一些问题。若由测试方自己编写测试案例,虽然可以减少开发方的任务量,不需要开发方的额外支持,但要求测试方具备编码能力,并且对代码的开发有较深入的了解,这就导致测试方的学习的跨度大,致使该方法在现实中很难实施。若由开发方提供测试案例,则会给开发方带来大量额外工作,增加开发方和测试方之间的沟通成本。可见,在这种情况下,无论是开发方还是测试方来做这件事情都会带来不必要的成本,太过依赖于人工,导致测试案例的生成效率低,进而降低了开发效率。
发明内容
本申请实施例提供了一种接口测试方法、装置、服务器及存储介质,可以提升开发效率。
第一方面,本申请实施例提供了一种接口测试方法,包括:
获取目标代码,所述目标代码包括至少一个接口中每个接口的信息;
从所述目标代码中获取所述每个接口的信息;
将所述每个接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口;
获得所述存在信息变更的接口的测试案例,所述测试案例用于对所述存在信息变更的接口的功能进行测试。
可选地,所述获取目标代码,包括:
当接收到代码托管设备发送的针对目标代码的代码更新消息时,从所述代码托管设备获取所述目标代码;或,
接收终端设备发送的所述目标代码。
可选地,所述从所述目标代码中获取所述每个接口的信息,包括:
通过预设脚本获取所述目标代码包括的对外头文件,所述对外头文件包括所述至少一个接口中每个接口的信息;
调用正则匹配算法从所述对外头文件中获取所述每个接口的信息。
可选地,所述方法还包括:
根据所述存在信息变更的接口的信息确定所述存在信息变更的接口的类型;
根据接口的类型与测试场景的对应关系,确定所述存在信息变更的接口的类型对应的目标测试场景;其中,所述目标测试场景包括以下至少一项:正常测试场景、异常测试场景、压力测试场景;
所述获得所述存在信息变更的接口的测试案例,包括:
获得所述存在信息变更的接口在所述目标测试场景下的测试案例。
可选地,所述获得所述存在信息变更的接口的测试案例之后,所述方法还包括:
将所述存在信息变更的接口的测试案例更新至第二数据库;所述第二数据库包括多个接口中每个接口的测试案例;
从第二数据库中确定出第一接口的测试案例;所述第一接口不在所述至少一个接口内;
删除所述第二数据库包括的所述第一接口的测试案例。
可选地,所述获得所述存在信息变更的接口的测试案例,包括:
当查询到所述第二数据库包括所述存在信息变更的接口的测试案例时,从所述第二数据库中获取所述存在信息变更的接口的测试案例;
当查询到所述第二数据库不包括所述存在信息变更的接口的测试案例时,生成所述存在信息变更的接口的空白测试案例,并根据所述空白测试案例获取所述存在信息变更的接口的测试案例。
可选地,从所述第二数据库中获取所述存在信息变更的接口的测试案例之后,所述方法还包括:
调用对象获取方法,获取所述存在信息变更的接口的测试案例包括的各接口的信息;
将所述存在信息变更的接口的信息与所述存在信息变更的接口的测试案例包括的各接口的信息进行匹配,并根据匹配结果对所述存在信息变更的接口的测试案例进行更新处理。
第二方面,本申请实施例提供了一种接口测试装置,包括:
获取模块,用于获取目标代码,所述目标代码包括至少一个接口中每个接口的信息;
所述获取模块,还用于从所述目标代码中获取所述每个接口的信息;
处理模块,用于将所述每个接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口;
所述获取模块,还用于获得所述存在信息变更的接口的测试案例,所述测试案例用于对所述存在信息变更的接口的功能进行测试。
第三方面,本申请实施例提供了一种服务器,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面所述的方法。
综上所述,服务器可以获取目标代码,该目标代码包括至少一个接口中每个接口的信息,并从该目标代码中获取该每个接口的信息;服务器可以将该每个接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口,以获得该存在信息变更的接口的测试案例,该测试案例用于对该存在信息变更的接口的功能进行测试,从而提升开发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种接口测试方法的流程示意图;
图2是本申请实施例提供的另一种接口测试方法的流程示意图;
图3是本申请实施例提供的一种接口测试装置的结构示意图;
图4是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为了解决现有技术的问题,本申请实施例提供了一种接口测试方案,可以获取目标代码,并基于目标代码分析出需要进行功能测试的接口,即确定出存在信息变更的接口,从而获得存在信息变更的接口的测试案例,以用于对该存在信息变更的接口的功能进行测试,本申请实施例采用增量的方式生成测试案例,可以提升测试案例的生成效率,进而有效提升开发效率。
请参阅图1,为本申请实施例提供的一种接口测试方法的流程示意图。该方法可以应用于服务器。该服务器可以一个服务器或服务器集群。具体地,该方法可以包括以下步骤:
S101、获取目标代码,所述目标代码包括至少一个接口中每个接口的信息。
其中,该接口可以由函数表示,该接口的信息可以包括函数名和参数。
在一个实施例中,服务器获取目标代码的方式可以为:服务器当接收到代码托管设备发送的针对目标代码的代码更新消息时,从该代码托管设备获取该目标代码。采用该方式,使得服务器能够在代码变更时,及时获取最新的代码,进而使得服务器能够及时获取最新的代码的测试案例以用于接口功能测试,提升接口功能测试效率。
在一个应用场景中,代码开发人员可以通过终端设备将目标代码托管在GitLab。其中,可以通过GitLab的Git Hooks功能向服务器发送针对目标代码的代码更新消息,服务器当接收到GitLab发送的针对目标代码的代码更新消息时,可以从该GitLab获取该目标代码。
在一个实施例中,除了通过代码托管设备获取目标代码外,终端是被也可以向服务器发送该目标代码,从而服务器还可以接收终端设备发送的该目标代码。采用该方式,可以提升服务器获取目标代码的速率。S102、从所述目标代码中获取所述每个接口的信息。
本申请实施例中,服务器可以在获取目标代码后,从该目标代码中获取该每个接口的信息。
在一个实施例中,该目标代码可以包括对外头文件。该对外头文件又可称为对外接口头文件、外部接口头文件,等等。该对外头文件可以包括该目标代码所使用的至少一个接口中每个接口的定义。服务器可以获取该目标代码包括的对外头文件,并从该对外头文件中获取该至少一个接口中每个接口的信息。
在一个实施例中,服务器获取该目标代码包括的对外头文件的方式可以为:服务器通过预设脚本获取该目标代码包括的对外头文件。在一个实施例中,服务器可以通过预设脚本获取该目标代码的指定目录,如公共Public目录下的对外头文件。
在一个实施例中,服务器从该对外头文件中获取该至少一个接口中每个接口的信息的方式可以为:服务器调用正则匹配算法从该对外头文件中获取该每个接口的信息。其中,该正则匹配算法又可以称为正则表达式算法、正则表达式匹配算法,等等。
S103、将所述每个接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口。
本申请实施例中,服务器可以将该每个接口的信息与第一数据库包括的接口的信息进行比较,得到比较结果,并可以根据比较结果确定出存在信息变更的接口。在一个实施例中,该第一数据库包括的接口的信息,可以是指该目标代码对应的上一版本代码包括的各接口的信息。其中,该存在信息变更的接口可以分为以下几类:新增的接口、删除的接口、修改的接口。
例如,该至少一个接口包括接口1、接口2、接口3,第一数据库包括接口2的信息、接口3的信息,服务器可以将该目标代码包括的接口1的信息、接口2的信息与第一数据库包括的接口2的信息、接口3的信息进行比较,并根据比较结果确定出新增的接口为接口1,并将接口1确定为存在信息变更的接口。
在一个实施例中,服务器将爱每个接口的信息与第一数据库包括的接口的信息进行比较可以为服务器将爱每个接口的信息与第一数据库包括的接口的信息进行遍历比较。通过遍历比较,可以快速确定存在信息变更的接口。
S104、获得所述存在信息变更的接口的测试案例,所述测试案例用于对所述存在信息变更的接口的功能进行测试。
在一个实施例中,服务器在获得该存在信息变更的接口的测试案例后,可以将该测试案例发送至测试人员对应的电子设备。该电子设备可以为终端或服务器。
在一个实施例中,服务器可以生成该存在信息变更的接口的空白测试案例,并根据该空白测试案例获取该存在信息变更的接口的测试案例。
在一个实施例中,服务器可以查询第二数据库是否包括该存在信息变更的接口的测试案例,并可以当查询到该第二数据库不包括该存在信息变更的接口的测试案例时,生成该存在信息变更的接口的空白测试案例,从而根据该空白测试案例获取该存在信息变更的接口的测试案例。其中,该第二数据库是指用于存储测试案例的数据库,该第二数据库可以包括多个接口中每个接口对应的测试案例。
在一个实施例中,服务器根据该空白测试案例获取该存在信息变更的接口的测试案例的方式可以为服务器生成空白测试案例的测试代码,将该测试代码添加至该空白测试案例中,并将添加了该测试代码的测试案例作为该存在信息变更的接口的测试案例。
在一个实施例中,服务器可以在运行空白测试案例时,自动生成空白测试案例的测试代码。例如,服务器可以按照预设的生成规则生成空白测试案例的测试代码。该生成规则制定了用于生成测试案例的代码规则,因此按照该生成规则可以自动生成空白测试案例的测试代码。
在一个实施例中,服务器可以根据存在信息变更的接口的信息确定该存在信息变更的接口的类型,并根据接口的类型与测试场景的对应关系,确定存在信息变更的接口的类型对应的目标测试场景;服务器获得该存在信息变更的接口在该目标测试场景下对应的测试案例,其中,该测试场景可以为以下至少一项:正常测试场景、异常测试场景、压力测试场景。在一个实施例中,服务器可以获取接口类型映射表,该接口类型映射表包括多个接口中每个接口的信息对应的类型。相应地,服务器可以根据接口类型关系表查询出该存在信息变更的接口的信息对应的类型作为该存在信息变更接口的类型。在一个实施例中,服务器还可以结合目标代码对应的业务场景,来确定该存在信息变更的接口的测试案例。在这种情况下,该接口的类型与测试场景的对应关系,具体可以为业务场景、接口的类型与测试场景的对应关系。相应地,服务器可以根据目标代码的业务场景、接口的类型与测试场景的对应关系,确定存在信息变更的接口的类型对应的目标测试场景。
在一个实施例中,服务器可以从至少一个接口中确定出满足预设条件的接口,并将该满足预设条件的接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出该满足预设条件的接口中存在信息变更的接口。例如,该满足预设条件可以为该至少信息变更次数大于或等于第一预设次数,或还可以为调用次数大于或等于第二预设次数的接口,或还可以是指优先级大于或等于预设优先级的接口,本申请对其不做限制。
在一个实施例中,服务器可以获取目标代码关联的接口变更记录表,该接口变更记录表包括在第一预设时间范围内记录的多个接口变更信息,该多个接口变更信息中每个接口变更信息可以包括信息变更前的接口的信息和信息变更后的接口的信息;服务器根据该每个接口的信息(指从目标代码中获取的每个接口的信息)以及接口变更记录表统计该每个接口的信息变更次数;服务器根据该至少一个接口中每个接口的信息变更次数,从该至少一个接口中确定出信息变更次数大于或等于第一预设次数的接口;服务器将该信息变更次数大于或第一预设次数的接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出该变更次数大于或等于第一预设次数的接口中存在信息变更的接口,从而获得该存在信息变更的接口的测试案例。采用该方式,可以通过信息变更频率高的接口来确定存在信息变更的接口,使得对信息变更的接口的确定过程更具针对性,该方式关注于在变更频率高的接口发生信息变更时的测试案例获得过程,说明对该变更频率高的接口的功能测试相对比较重要。
在一个实施例中,服务器可以获取目标代码关联的接口调用记录表,该接口调用记录表包括在第二预设时间范围内记录的接口调用数据。例如,该接口调用信息可以是指该目标代码对应的至少一个版本的代码(如该目标代码对应的上一版本的代码)的接口调用数据。服务器可以根据该接口调用记录表确定该至少一个接口中调用次数大于或等于第二预设次数的接口;服务器可以将该调用次数大于或等于第二预设次数的接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出该调用次数大于或存在信息变更的接口中存在信息变更的接口,从而获得该存在信息变更的接口的测试案例。
在一个实施例中,服务器可以判断该目标代码中是否存在信息变更标签,如果确定该目标代码存在该信息变更标签,则服务器可以从目标代码中获取该信息变更标签对应的接口的信息;服务器可以将该信息变更标签对应的接口确定为存在信息变更的接口,从而获得该存在信息变更的接口的测试案例。采用该方式,可以通过信息变更标签对应的接口的信息来确定存在信息变更的接口,使得对信息变更的接口的确定过程更具针对性,该方式关注于信息变更标签对应的接口的发生信息变更时的测试案例获得过程,说明对该信息变更标签对应的和接口的功能测试相对比较重要。
在一个实施例中,服务器可以将该信息变更标签对应的接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出该信息变更标签对应的接口中存在信息变更的接口,从而获得该存在信息变更的接口的测试案例。考虑到可能存在信息变更标签标记错误的情况,因此通过将该信息变更标签对应的接口的信息与第一数据库包括的接口的信息进行比较以确定出存在信息变更的接口的方式,能够保证确定出信息变更接口的准确性。在一个实施例中,如果确定该目标代码不存在该信息变更标签,则服务器可以执行将该每个接口的信息与第一数据库包括的接口的信息进行比较的步骤,或执行获取目标代码关联的接口变更记录表的步骤,或执行获取目标代码关联的接口调用记录表的步骤,本申请实施例对其不做限制。
在一个实施例中,服务器在获得该存在信息变更的接口的测试案例之后,可以对该第二数据库中多余的测试案例执行删除操作。
在一个实施例中,服务器可以将该存在信息变更的接口的测试案例更新至第二数据库。并且,服务器可以从第二数据库中确定出第一接口的测试案例;并删除该第二数据库包括的该第一接口的测试案例。其中,该第一接口不在该至少一个接口内。通过该方式可以删除与目标代码无关的测试案例,进而减小对第二数据库的存储资源的消耗。
在一个实施例中,服务器还可以从第二数据库中确定出第二接口的测试案例,并删除所述第二数据库包括的所述第二接口的测试案例。采用该方式删除存在引用关系的测试案例,可以减小第二数据的存储资源的消耗。
在一个实施例中,服务器可以当查询到该第二数据库包括该存在信息变更的接口的测试案例时,从该第二数据库中获取该存在信息变更的接口的测试案例。
可见,图1所示的实施例中,服务器可以获取目标代码,并从目标代码中获取接口的信息;服务器将该接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口,以获得该存在信息变更的接口的测试案例以用于对该存在信息变更的接口的功能进行测试,从而通过自动化生成相应接口的测试案例,提升开发效率。
请参阅图2,为本申请实施例提供的另一种接口测试方法的流程示意图。该方法可以应用于服务器。该服务器可以为一个服务器或服务器集群。具体地,该方法可以包括以下步骤:
S201、获取目标代码,所述目标代码包括至少一个接口中每个接口的信息。
S202、从所述目标代码中获取所述每个接口的信息。
S203、将所述每个接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口。
其中,步骤S201-S203可参见图1实施例中的步骤S101-S103,本申请实施例在此不做赘述。
S204、当查询到所述第二数据库包括所述存在信息变更的接口的测试案例时,从所述第二数据库中获取所述存在信息变更的接口的测试案例。
S205、调用对象获取方法,获取所述存在信息变更的接口的测试案例包括的各接口的信息。
在步骤S204-S205中,服务器可以当查询第二数据库是否包括该存在信息变更的接口的测试案例时,从该第二数据库中获取该存在信息变更的接口的测试案例。并且,服务器可以调用对象获取方法,获取该存在信息变更的接口的测试案例包括的各接口的信息,以执行步骤S206。
在一个实施例中,服务器调用对象获取方法,获取该存在信息变更的接口的测试案例包括的各接口的信息的方式可以为服务器通过Object-C的RunTime机制,运行该存在信息变更的接口的测试案例,以获取该存在信息变更的接口的测试案例包括的各接口的信息。其中,该过程运用的代码,可以包括:class_copyMethodList(Class,&methodCount)。
S206、将所述存在信息变更的接口的信息与所述存在信息变更的接口的测试案例包括的各接口的信息进行匹配,并根据匹配结果对所述存在信息变更的接口的测试案例进行更新处理。
由于从第二数据库获取的该存在信息变更的接口的测试案例,可能会存在以下问题:该存在信息变更的接口的测试案例中的部分信息与该存在信息变更的接口的信息不匹配。为了解决该问题,服务器可以将该存在信息变更的接口的信息与该存在信息变更的接口的测试案例包括的各接口的信息进行匹配,并根据匹配结果对该存在信息变更的测试案例进行更新处理,从而使得该存在信息变更的接口的测试案例与该存在信息变更的接口的信息匹配。
在一个实施例中,服务器将该存在信息变更的接口的信息与该存在信息变更的接口的测试案例包括的各接口的信息进行匹配,得到匹配结果的方式可以为服务器采用字符串匹配的方式,将该存在信息变更的接口的信息与该存在信息变更的接口的测试案例包括的各接口的信息进行匹配,得到匹配结果。
在一个实施例中,该匹配结果可以包括存在信息变更(如参数变更)的第三接口的信息,该第三接口的信息与该第三接口的测试案例包括的该第三接口的信息不一致。相应地,服务器可以利用该第三接口的信息对该存在信息变更的测试案例进行更新。
在一个实施例中,该匹配结果包括存在第一接口的信息,服务器可以从第二数据库中确定出第一接口的测试案例,并删除该第二数据库包括的该第一接口的测试案例。同样,服务器还可以采用图1实施例提及的方式删除第二接口的测试案例,本申请实施例在此不做赘述。
可见,图2所示的实施例中,服务器可以当查询到第二数据库包括该存在信息变更的接口的测试案例时,将该目标代码包括的该存在信息变更的接口的信息与该存在信息变更的测试案例包括的各接口的信息进行匹配,并根据匹配结果更新该存在信息变更的测试案例包括的各接口的信息,从而提升开发效率。
请参阅图3,为本申请实施例提供了一种接口测试装置的结构示意图。该装置可以应用前述提及的服务器。具体的,该装置可以包括:
获取模块301,用于获取目标代码,所述目标代码包括至少一个接口中每个接口的信息。
获取模块301,还用于从所述目标代码中获取所述每个接口的信息。
处理模块302,用于将所述每个接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口。
获取模块301,还用于获得所述存在信息变更的接口的测试案例,所述测试案例用于对所述存在信息变更的接口的功能进行测试。
在一种可选的实施方式中,获取模块301获取目标代码,具体为当接收到代码托管设备发送的针对目标代码的代码更新消息时,从所述代码托管设备获取所述目标代码;或,接收终端设备发送的所述目标代码。
在一种可选的实施方式中,获取模块301从所述目标代码中获取所述每个接口的信息,具体为通过预设脚本获取所述目标代码包括的对外头文件,所述对外头文件包括所述至少一个接口中每个接口的信息;调用正则匹配算法从所述对外头文件中获取所述每个接口的信息。
在一种可选的实施方式中,处理模块302,还用于根据所述存在信息变更的接口的信息确定所述存在信息变更的接口的类型;根据接口的类型与测试场景的对应关系,确定所述存在信息变更的接口的类型对应的目标测试场景;其中,所述目标测试场景包括以下至少一项:正常测试场景、异常测试场景、压力测试场景。
在一种可选的实施方式中,获取模块301获得所述存在信息变更的接口的测试案例,具体为获得所述存在信息变更的接口在所述目标测试场景下的测试案例。
在一种可选的实施方式中,处理模块302,还用于在获取模块301获得所述存在信息变更的接口的测试案例之后,将所述存在信息变更的接口的测试案例更新至第二数据库;所述第二数据库包括多个接口中每个接口的测试案例;从第二数据库中确定出第一接口的测试案例;所述第一接口不在所述至少一个接口内;删除所述第二数据库包括的所述第一接口的测试案例。
在一种可选的实施方式中,获取模块301获得所述存在信息变更的接口的测试案例,具体为当查询到所述第二数据库包括所述存在信息变更的接口的测试案例时,从所述第二数据库中获取所述存在信息变更的接口的测试案例;当查询到所述第二数据库不包括所述存在信息变更的接口的测试案例时,生成所述存在信息变更的接口的空白测试案例,并根据所述空白测试案例获取所述存在信息变更的接口的测试案例。
在一种可选的实施方式中,处理模块302,还用于在获取模块301从所述第二数据库中获取所述存在信息变更的接口的测试案例之后,调用对象获取方法,获取所述存在信息变更的接口的测试案例包括的各接口的信息;将所述存在信息变更的接口的信息与所述存在信息变更的接口的测试案例包括的各接口的信息进行匹配,并根据匹配结果对所述存在信息变更的接口的测试案例进行更新处理。
可见,图3所示的实施例中,服务器可以获取目标代码,并从目标代码中获取接口的信息;服务器将该接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口,以获得该存在信息变更的接口的测试案例以用于对该存在信息变更的接口的功能进行测试,从而通过自动化生成相应接口的测试案例,从而提升开发效率。
请参阅图4,为本申请实施例提供的一种服务器的结构示意图。其中,本实施例中所描述的服务器可以包括:处理器1000、输入设备2000、输出设备3000和存储器4000。处理器1000、输入设备2000、输出设备3000和存储器4000之间可以通过总线或其它方式连接。在一个实施例中,该输入设备2000、输出设备3000为可选的设备。输入设备2000和输出设备3000可以为标准的有线或无线通信接口。
处理器1000可以是中央处理模块(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器4000可以是高速RAM存储器,也可为非不稳定的存储器(non-volatilememory),例如磁盘存储器。存储器4000用于存储一组程序代码,处理器1000、输入设备2000和输出设备3000可以调用存储器4000中存储的程序代码。具体地:
处理器1000,用于获取目标代码,所述目标代码包括至少一个接口中每个接口的信息;从所述目标代码中获取所述每个接口的信息;将所述每个接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口;获得所述存在信息变更的接口的测试案例,所述测试案例用于对所述存在信息变更的接口的功能进行测试。
可选地,处理器1000获取目标代码,具体为当接收到代码托管设备发送的针对目标代码的代码更新消息时,从所述代码托管设备获取所述目标代码;或,通过输入设备2000接收终端设备发送的所述目标代码。
可选地,处理器1000从所述目标代码中获取所述每个接口的信息,具体为通过预设脚本获取所述目标代码包括的对外头文件,所述对外头文件包括所述至少一个接口中每个接口的信息;调用正则匹配算法从所述对外头文件中获取所述每个接口的信息。
可选地,处理器1000,还用于根据所述存在信息变更的接口的信息确定所述存在信息变更的接口的类型;根据接口的类型与测试场景的对应关系,确定所述存在信息变更的接口的类型对应的目标测试场景;其中,所述目标测试场景包括以下至少一项:正常测试场景、异常测试场景、压力测试场景。
可选地,处理器1000获得所述存在信息变更的接口的测试案例,具体为获得所述存在信息变更的接口在所述目标测试场景下的测试案例。
可选地,处理器1000,还用于在获得所述存在信息变更的接口的测试案例之后,将所述存在信息变更的接口的测试案例更新至第二数据库;所述第二数据库包括多个接口中每个接口的测试案例;从第二数据库中确定出第一接口的测试案例;所述第一接口不在所述至少一个接口内;删除所述第二数据库包括的所述第一接口的测试案例。
可选地,处理器1000获得所述存在信息变更的接口的测试案例,具体为当查询到所述第二数据库包括所述存在信息变更的接口的测试案例时,从所述第二数据库中获取所述存在信息变更的接口的测试案例;当查询到所述第二数据库不包括所述存在信息变更的接口的测试案例时,生成所述存在信息变更的接口的空白测试案例,并根据所述空白测试案例获取所述存在信息变更的接口的测试案例。
可选地,处理器1000,还用于在从所述第二数据库中获取所述存在信息变更的接口的测试案例之后,调用对象获取方法,获取所述存在信息变更的接口的测试案例包括的各接口的信息;将所述存在信息变更的接口的信息与所述存在信息变更的接口的测试案例包括的各接口的信息进行匹配,并根据匹配结果对所述存在信息变更的接口的测试案例进行更新处理。
具体实现中,本申请实施例中所描述的处理器1000、输入设备2000、输出设备3000可执行图1和图2实施例所描述的实现方式,也可执行本申请实施例所描述的实现方式,在此不再赘述。
在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采样硬件的形式实现,也可以采样软件功能单元的形式实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,该计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。
Claims (10)
1.一种接口测试方法,其特征在于,包括:
获取目标代码,所述目标代码包括至少一个接口中每个接口的信息;
从所述目标代码中获取所述每个接口的信息;
将所述每个接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口;
获得所述存在信息变更的接口的测试案例,所述测试案例用于对所述存在信息变更的接口的功能进行测试。
2.根据权利要求1所述的方法,其特征在于,所述获取目标代码,包括:
当接收到代码托管设备发送的针对目标代码的代码更新消息时,从所述代码托管设备获取所述目标代码;或,
接收终端设备发送的所述目标代码。
3.根据权利要求1或2所述的方法,其特征在于,所述从所述目标代码中获取所述每个接口的信息,包括:
通过预设脚本获取所述目标代码包括的对外头文件,所述对外头文件包括所述至少一个接口中每个接口的信息;
调用正则匹配算法从所述对外头文件中获取所述每个接口的信息。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述存在信息变更的接口的信息确定所述存在信息变更的接口的类型;
根据接口的类型与测试场景的对应关系,确定所述存在信息变更的接口的类型对应的目标测试场景;其中,所述目标测试场景包括以下至少一项:正常测试场景、异常测试场景、压力测试场景;
所述获得所述存在信息变更的接口的测试案例,包括:
获得所述存在信息变更的接口在所述目标测试场景下的测试案例。
5.根据权利要求1所述的方法,其特征在于,所述获得所述存在信息变更的接口的测试案例之后,所述方法还包括:
将所述存在信息变更的接口的测试案例更新至第二数据库;所述第二数据库包括多个接口中每个接口的测试案例;
从第二数据库中确定出第一接口的测试案例;所述第一接口不在所述至少一个接口内;
删除所述第二数据库包括的所述第一接口的测试案例。
6.根据权利要求1所述的方法,其特征在于,所述获得所述存在信息变更的接口的测试案例,包括:
当查询到所述第二数据库包括所述存在信息变更的接口的测试案例时,从所述第二数据库中获取所述存在信息变更的接口的测试案例;
当查询到所述第二数据库不包括所述存在信息变更的接口的测试案例时,生成所述存在信息变更的接口的空白测试案例,并根据所述空白测试案例获取所述存在信息变更的接口的测试案例。
7.根据权利要求6所述的方法,其特征在于,从所述第二数据库中获取所述存在信息变更的接口的测试案例之后,所述方法还包括:
调用对象获取方法,获取所述存在信息变更的接口的测试案例包括的各接口的信息;
将所述存在信息变更的接口的信息与所述存在信息变更的接口的测试案例包括的各接口的信息进行匹配,并根据匹配结果对所述存在信息变更的接口的测试案例进行更新处理。
8.一种接口测试装置,其特征在于,包括:
获取模块,用于获取目标代码,所述目标代码包括至少一个接口中每个接口的信息;
所述获取模块,还用于从所述目标代码中获取所述每个接口的信息;
处理模块,用于将所述每个接口的信息与第一数据库包括的接口的信息进行比较,并根据比较结果确定出存在信息变更的接口;
所述获取模块,还用于获得所述存在信息变更的接口的测试案例,所述测试案例用于对所述存在信息变更的接口的功能进行测试。
9.一种服务器,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010234220.6A CN111538651A (zh) | 2020-03-30 | 2020-03-30 | 接口测试方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010234220.6A CN111538651A (zh) | 2020-03-30 | 2020-03-30 | 接口测试方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111538651A true CN111538651A (zh) | 2020-08-14 |
Family
ID=71952183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010234220.6A Pending CN111538651A (zh) | 2020-03-30 | 2020-03-30 | 接口测试方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538651A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721970A (zh) * | 2022-06-08 | 2022-07-08 | 广州易方信息科技股份有限公司 | 建设接口自动化测试及精准测试的方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302710A (zh) * | 2014-07-03 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 一种确定需要回归测试的测试用例的方法和装置 |
CN106909510A (zh) * | 2017-03-02 | 2017-06-30 | 腾讯科技(深圳)有限公司 | 一种获取测试用例的方法以及服务器 |
CN107273281A (zh) * | 2016-04-06 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 基于代码变更的服务化接口测试方法、*** |
US20190042399A1 (en) * | 2017-08-03 | 2019-02-07 | Fujitsu Limited | Test run control method and apparatus |
CN109947646A (zh) * | 2019-03-13 | 2019-06-28 | 平安信托有限责任公司 | 接口测试方法、装置、计算机设备和存储介质 |
CN110147317A (zh) * | 2019-04-19 | 2019-08-20 | 平安普惠企业管理有限公司 | 代码测试方法及装置、电子设备和存储介质 |
CN110609785A (zh) * | 2018-06-15 | 2019-12-24 | 中移(杭州)信息技术有限公司 | 软件接口的测试方法及装置 |
-
2020
- 2020-03-30 CN CN202010234220.6A patent/CN111538651A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302710A (zh) * | 2014-07-03 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 一种确定需要回归测试的测试用例的方法和装置 |
CN107273281A (zh) * | 2016-04-06 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 基于代码变更的服务化接口测试方法、*** |
CN106909510A (zh) * | 2017-03-02 | 2017-06-30 | 腾讯科技(深圳)有限公司 | 一种获取测试用例的方法以及服务器 |
US20190042399A1 (en) * | 2017-08-03 | 2019-02-07 | Fujitsu Limited | Test run control method and apparatus |
CN110609785A (zh) * | 2018-06-15 | 2019-12-24 | 中移(杭州)信息技术有限公司 | 软件接口的测试方法及装置 |
CN109947646A (zh) * | 2019-03-13 | 2019-06-28 | 平安信托有限责任公司 | 接口测试方法、装置、计算机设备和存储介质 |
CN110147317A (zh) * | 2019-04-19 | 2019-08-20 | 平安普惠企业管理有限公司 | 代码测试方法及装置、电子设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721970A (zh) * | 2022-06-08 | 2022-07-08 | 广州易方信息科技股份有限公司 | 建设接口自动化测试及精准测试的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN110209652B (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
CN110489421B (zh) | 数据存储方法、装置、计算机可读存储介质和计算机设备 | |
CN109361628B (zh) | 报文组装方法、装置、计算机设备和存储介质 | |
CN111061678B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN112256318B (zh) | 一种用于依赖产品的构建方法及设备 | |
CN108460271B (zh) | 终端识别方法及装置 | |
CN111897846A (zh) | 缓存数据校验方法、装置、设备及存储介质 | |
CN111324441A (zh) | 运行环境的切换方法、装置、计算机设备和存储介质 | |
CN106843947B (zh) | 代码缺陷的处理方法和装置 | |
CN110032505B (zh) | 软件质量确定装置和方法以及非暂态计算机可读介质 | |
CN108415998B (zh) | 应用依赖关系更新方法、终端、设备及存储介质 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN110688305B (zh) | 测试环境同步方法、装置、介质、电子设备 | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
CN111369237B (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN110990346A (zh) | 基于区块链的文件数据处理方法、装置、设备及存储介质 | |
CN112181830B (zh) | 内存泄露的检测方法、装置、终端及介质 | |
CN111538651A (zh) | 接口测试方法、装置、服务器及存储介质 | |
CN111046393B (zh) | 漏洞信息上传方法、装置、终端设备及存储介质 | |
CN107506474B (zh) | 基于对象映射的数据库操作方法及装置 | |
CN112783866B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN114021133A (zh) | 代码处理方法、装置、电子设备和存储介质 | |
CN114338846B (zh) | 一种报文测试的方法及装置 | |
CN109634636B (zh) | 应用处理方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |