CN112463588A - 一种自动化测试系统及方法、存储介质、计算设备 - Google Patents
一种自动化测试系统及方法、存储介质、计算设备 Download PDFInfo
- Publication number
- CN112463588A CN112463588A CN202011205895.4A CN202011205895A CN112463588A CN 112463588 A CN112463588 A CN 112463588A CN 202011205895 A CN202011205895 A CN 202011205895A CN 112463588 A CN112463588 A CN 112463588A
- Authority
- CN
- China
- Prior art keywords
- test
- interface
- target
- case
- task
- 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
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/3664—Environments for testing or debugging software
-
- 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/3676—Test management for coverage analysis
-
- 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/3688—Test management for test execution, e.g. scheduling of test suites
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
技术领域
本发明涉及测试技术领域,尤其是一种自动化测试系统及方法、存储介质、计算设备。
背景技术
目前,进行系统自动化测试时,传统的测试工具多采用功能单一的单接口测试用例,无法满足业务线上复杂业务场景测试的需求。并且对于已编写的测试用例,不清楚所测试到开发代码的情况,测试用例是否测试全面。一般情况下,进行测试时,会使用python编写自动化脚本测试或者使用Jmeter进行测试,但是使用这两种测试方式不能保存到公用的系统中,后来测试人员不能快速的了解之前的测试情况,要从0开始编写自己的测试用例。
另外,Jmeter需要将一系列测试配置信息的集合,保存为一个脚本文件(后缀.jmx),一个测试计划需要包括线程组、控制器、sampler、配置元素、定时器、监听器等组件形成。可以设置数据库操作、全局变量配置等参数的管理,Jmeter执行时将按照脚本配置的一些参数、接口用例等顺序执行,并生成最终的测试报告。但是,该测试工具大多数是在本地使用,并且编写的测试用例不能多人快捷维护,不能自动化执行。
发明内容
本发明实施例所要解决的一个技术问题是如何提供一种自动化测试系统,克服单一接口测试用例的功能缺陷。
根据本发明的一个方面,提供了一种自动化测试系统,包括:
接口管理模块,用于管理多个接口;
用例管理模块,用于管理多组接口测试用例;所述接口测试用例包括进行单个接口测试的单接口测试用例和多个单接口测试用例串联的场景化测试用例;
任务管理模块,用于管理多个测试任务,并在任一所述测试任务执行时,基于所述用例管理模块获取并执行所述测试任务对应的至少一个接口测试用例。
可选地,所述用例管理模块,包括:
单用例管理单元,用于管理多个单接口测试用例,各所述单接口测试用例用于对单个接口进行不同测试参数的接口测试;
场景化用例管理单元,用于管理对应于不同业务场景的多组场景化测试用例;其中,每组所述场景化测试用例包括多个单接口测试用例,所述属于同一场景化测试用例的多个单接口测试用例串联形成测试链路。
可选地,所述测试任务包括场景化测试任务;
所述用例管理模块,还用于执行任一所述场景化测试任务时,基于所述用例管理模块获取所述场景化测试任务对应的至少一个目标场景化测试用例;其中,所述目标场景化测试用例包括多个目标接口测试用例以及目标测试链路;
依据所述目标测试链路执行各所述目标接口测试用例。
可选地,所述用例管理模块,还用于执行任一所述目标接口测试用例时,缓存所述目标接口测试用例的执行结果;
当执行所述目标测试链路中与所述目标接口测试用例存在依赖关系的其他目标接口测试用例时,基于所述目标接口测试用例的执行结果设定所述其他目标接口测试用例的测试参数。
可选地,所述用例管理模块中预置有多种注解,
各所述注解可被一个或多个所述接口测试用例调用,以获取所述接口测试用例执行时所需的测试参数。
可选地,所述系统还包括:
记录管理模块,用于记录所述测试任务的执行记录和/或各组所述接口测试用例的执行记录;
项目管理模块,用于管理多个业务项目,并为各所述项目进行信息配置。
可选地,所述系统还包括覆盖率测试工具;
所述任务管理模块,还用于获取目标测试任务,并确定所述目标测试任务对应的目标测试项目以及至少一个目标接口测试用例;
所述覆盖率测试工具,用于在目标容器中创建所述目标测试项目的镜像测试环境,并在所述镜像测试环境中部署测试工具包;
启动所述目标测试任务后,基于所述目标容器处理所述目标接口测试用例中的接口请求,并在所述目标测试任务执行完成后,生成所述目标测试项目的代码覆盖率文件。
可选地,所述任务管理模块,还用于启动所述目标测试任务后,通过服务网格将所述目标接口测试用例中的接口请求转发至所述目标容器,由所述目标容器处理所述接口请求;
其中,所述接口请求中携带有预设标签。
根据本发明的另一个方面,还提供了一种自动化测试方法,包括:
接收任一自动化测试任务;所述测试任务包括单接口测试任务和/或场景化测试任务;
获取所述自动化测试任务对应的至少一个接口测试用例;所述接口测试用例包括进行单个接口测试的单接口测试用例和多个单接口测试用例串联的场景化测试用例;
执行所述接口测试用例,以完成所述自动化测试任务。
可选地,当所述自动化测试任务为场景化测试任务时,所述获取所述自动化测试任务对应的至少一个接口测试用例包括:
获取所述场景化测试任务对应的至少一个目标场景化测试用例;其中,所述目标场景化测试用例包括多个目标接口测试用例以及目标测试链路;
所述执行所述接口测试用例,包括:
依据所述目标测试链路执行各所述目标接口测试用例。
可选地,所述依据所述目标测试链路执行各所述目标接口测试用例,包括:
执行任一所述目标接口测试用例时,缓存所述目标接口测试用例的执行结果;
若执行所述目标测试链路中与所述目标接口测试用例存在依赖关系的其他目标接口测试用例,基于所述目标接口测试用例的执行结果设定所述其他目标接口测试用例的测试参数。
可选地,所述执行所述接口测试用例,包括:
调用至少一个预置的注解,基于所述注解获取执行所述接口测试用例时所需的目标参数;
根据所述目标参数设置所述接口测试用例的执行参数,执行所述接口测试用例。
可选地,所述接收任一自动化测试任务之后,还包括:
确定所述测试任务对应的测试项目;
在所述目标容器中创建所述测试项目的镜像测试环境,并在所述镜像测试环境中部署测试工具包。
可选地,所述执行所述接口测试用例,包括:
启动所述测试任务后,基于所述目标容器处理所述接口测试用例中的接口请求;
在所述目标测试任务执行完成后,生成所述测试项目的代码覆盖率文件。
可选地,所述启动所述测试任务后,基于所述目标容器处理所述接口测试用例中的接口请求,包括:
启动所述测试任务后,通过服务网格将所述接口测试用例中的接口请求转发至所述目标容器,由所述目标容器处理所述接口请求;
其中,所述接口请求中携带有预设标签。
可选地,所述接收任一自动化测试任务之后,还包括:
将所述测试项目的数据包复制到所述目标容器的指定挂载目录中;
所述在所述目标测试任务执行完成后,生成所述测试项目的代码覆盖率文件之后,还包括:
向所述目标容器请求获取所述代码覆盖率文件,同时解压所述测试项目的数据包并拉取所述测试项目的项目代码;
基于所述代码覆盖率文件和所述项目代码分析所述测试项目的代码覆盖率测试结果。
根据本发明的又一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述任一项所述的自动化测试方法。
根据本发明的又一个方面,还提供了一种计算设备,所述计算设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述任一项所述的自动化测试方法。
本发明提供了一种自动化测试系统及方法、存储介质、计算设备,该自动化测试系统可以包括接口管理模块、用例管理模块以及任务管理模块,分别用于管理接口、接口测试用例以及测试任务。其中,接口测试用例包括进行单个接口测试的单接口测试用例和多个单接口测试用例串联的场景化测试用例。基于本发明提供的自动化测试系统,不仅可以实现单接口的测试用例的功能,还提供了场景化的测试功能,在场景化测试用例中,可以将多个单接口测试用例串联的场景化测试用例,形成上下依赖关系,从而满足业务线上复杂业务场景测试的需求。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1示出了根据本发明一实施例的自动化测试系统结构示意图;
图2示出了根据本发明另一实施例的自动化测试系统结构示意图;
图3示出了根据本发明一实施例的自动化测试方法流程示意图;
图4示出了根据本发明实施例的录入测试用例示意图;
图5示出了根据本发明实施例的录入测试用例示意图;
图6示出了根据本发明实施例的提出按执行参数的测试用例执行结果示意图;
图7示出了根据本发明另一实施例的自动化测试方法流程示意图;
图8示出了根据本发明实施例的代码覆盖率测试流程示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
图1示出了根据本发明实施例的自动化测试系统结构示意图,参见图1可知,本发明实施例提供的自动化测试系统可以包括:接口管理模块110、用例管理模块120以及任务管理模块130。
其中,接口管理模块110,用于管理多个接口,该多个接口可以对应于不同的业务系统。如对应于不同业务项目的项目内接口,供项目内部进行调用;外部依赖接口以及自测接口等等。其中业务项目可以在程序应用中对应于不同功能模块的功能项目,具体可以根据不同的程序以及功能模块进行设置。该接口管理模块110可管理后端系统整体的HTTP接口,所有的接口可以通过swagger进行管理,录入接口时,可以直接通过各个业务系统的swagger进行同步即可实现接口的统一管理,从而简化了接口录入工作,同时保证了接口的准确性。
用例管理模块120,用于管理多组接口测试用例。接口测试用例包括进行单个接口测试的单接口测试用例和多个单接口测试用例串联的场景化测试用例。
在本发明可选实施例中,如图2所示,用例管理模块120可以包括单用例管理单元121和场景化用例管理单元122。其中,单用例管理单元121,用于管理多个单接口测试用例,各单接口测试用例用于对单个接口进行不同测试参数的接口测试。也就是说,单接口测试用例是指针对单一接口的,根据不同维度的考量,针对单一接口进行不同参数的接口测试,以全方位的对一个接口进行测试。
场景化用例管理单元122,用于管理对应于不同业务场景的多组场景化测试用例;其中,每组场景化测试用例包括多个单接口测试用例,属于同一场景化测试用例的多个单接口测试用例串联形成测试链路。也就是说,场景化用例是由多个接口组合形成的,由多个系统接口组合而成的一个流程,以测试一个业务链路上的相关情况。其中单个流程可能有多个分支,实际应用中,可以以父子场景来形成这种流程分支的选择,当执行到选择子场景时,可通过判断执行条件是否符合选择要执行的子场景的预设条件等。对于场景化测试用例来讲,整个测试流程的数据是变化的但是系统流程是固定的,通过完善各系统的场景可以覆盖整体的业务场景。
任务管理模块130,用于管理多个测试任务,并在任一测试任务执行时,基于用例管理模块120获取并执行测试任务对应的至少一个接口测试用例。其中,测试任务可以是由不同业务项目的维护人员进行创建,如自动化测试任务、各测试任务对应的测试参数以及涉及的测试任务可根据不同的需求进行设置,除上述介绍的自动化测试任务之外,任务管理模块130所管理的任务还可以包括初始化token任务、项目抓取任务等,具体可根据不同的需求进行设置,本发明对此不做限定。其中,任务管理可以基于esJob实现的任务的调度和管理。
上述实施例提及,接口测试用例可以包括场景化测试用例,相对应地,测试任务可以包括场景化测试任务,而用例管理模块120,还可以用于执行任一场景化测试任务时,基于用例管理模块120获取场景化测试任务对应的至少一个目标场景化测试用例;其中,目标场景化测试用例包括多个目标接口测试用例以及目标测试链路;依据目标测试链路执行各目标接口测试用例。
用例管理模块120,还用于执行任一目标接口测试用例时,缓存目标接口测试用例的执行结果;当执行目标测试链路中与目标接口测试用例存在依赖关系的其他目标接口测试用例时,基于目标接口测试用例的执行结果设定其他目标接口测试用例的测试参数。
也就是说,在执行场景测试任务时,还可以通过用例管理模块120将每个接口测试用例的返回数据进行缓存,如果后面接口依赖到该接口测试用例的返回数据,从缓存中查找到该返回数据的json,并解析获取相关参数后进行替换,然后再进行后续的接口调用。
在本发明可选实施例中,还可以在用例管理模块120中预置有多种注解,各注解可被一个或多个接口测试用例调用,以获取接口测试用例执行时所需的测试参数。
本发明实施例提供的自动化测试系统,在用例管理模块120中预置多种规则注解,可以让各接口测试用例方便获取到想要的值。举例来讲,若需要获取后端的token,可以使用@Authorizationv2来获取已加载缓存好的用户token,这样就避免了QA人员通过执行登录接口获取token的操作,同时也避免了token过期无法进行测试的问题。
再例如,获取随机的身份标识信息可使用@IdCard来生成一个有效的身份标识,可以指定年龄、性别、生日等信息,这样可以使接口测试用例的参数不唯一,生成或者使用的数据更全面,操作更方便,等等还有其他一些辅助性规则注解,具体可以根据不同的需求进行设置,本发明对此不做限定。
在本发明另一可选实施例中,除上述所介绍的模块之外,自动化测试系统还可以包括记录管理模块140,用于记录测试任务的执行记录和/或各组接口测试用例的执行记录;如自动化测试记录、手动执行记录、单接口测试用例执行记录、场景化测试用例执行记录等等。
项目管理模块150,用于管理多个业务项目,并为各项目进行信息配置。如Git配置、信息群组配置、定时时间配置、事件配置等等。
可选地,本发明实施例提供的自动化测试管理系统中还可以设置有覆盖率测试工具,如jacoco。jacoco,是一个开源的覆盖率工具。Jacoco可以嵌入到Ant、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序。很多第三方的工具提供了对Jacoco的集成,如sonar、Jenkins等。Jacoco包含了多种尺度的覆盖率计数器,包含指令级覆盖(Instructions,C0coverage),分支(Branches,C1coverage)、圈复杂度(Cyclomatic Complexity)、行覆盖(Lines)、方法覆盖(non-abstract methods)、类覆盖(classes)。
在任务管理模块130获取目标测试任务,并确定目标测试任务对应的目标测试项目以及至少一个目标接口测试用例后,可以通过覆盖率测试工具在目标容器中创建目标测试项目的镜像测试环境,并在镜像测试环境中部署测试工具包;启动目标测试任务后,基于目标容器处理目标接口测试用例中的接口请求,并在目标测试任务执行完成后,生成目标测试项目的代码覆盖率文件。
具体地,任务管理模块130可以在启动目标测试任务后,通过服务网格将目标接口测试用例中的接口请求转发至目标容器,由目标容器处理接口请求;其中,接口请求中携带有预设标签。服务网格istio在识别到携带有预设标签的接口请求后,就可以将其直接转发至目标容器(pod),由该目标容器处理接口请求。
本实施例提供的代码覆盖率测试工具,主要是使用了字节码解析插桩技术,检查代码的行、方法、类等覆盖情况。代码覆盖率测试使用到了jacocoagent工具包作为测试工具包添加至测试任务所对应的测试项目的镜像测试环境中,通过目标容器(pod)启动并执行测试任务,当测试完成之后,获取分析jacoco生成的测试覆盖率文件,以分析目标测试项目的测试代码覆盖率。最后,可以通过socket请求该pod获取测试过程检测的代码覆盖率文件(project.exec文件)并进行解析project.exec文件后,分析出该目标测试项目的代码测试覆盖率情况,并将数据入库,生成查看详情的html文件提供出查看详情入口。在完成所有流程无任何问题则将目标容器pod进行销毁。
本发明实施例提供的自动化测试系统,不仅可以实现单接口的测试用例的功能,还提供了场景化的测试功能,将单个接口测试用例串联起来,形成上下依赖关系,下面接口使用参数依赖之前接口的返回值,将所执行过的接口的返回结果缓存起来,当后面接口使用时从缓存中获取数据进行替换后执行测试用例。通过测试过程中接口状态、数据的保留,实现了各接口之间数据的共享,实现了简单的API编程,可以通过顺序、分支、循环等方式构造复杂场景的测试用例,从而满足业务线上复杂业务场景测试的需求;并且,通过增设覆盖率测试工具可以有效了解各测试项目的代码的覆盖率情况,进而使得后期增加测试用例更加便捷。
基于同一发明构思,本发明实施例还提供了自动化测试方法,参见图3所示,本发明实施例提供的自动化测试方法可以包括以下步骤S302~S306。
步骤S302,接收任一自动化测试任务。
在本发明实施例中,测试任务可以包括单接口测试任务和/或场景化测试任务。其中,单接口测试任务是针对单个接口所执行的测试任务,场景化测试任务是针对具体的业务场景的测试任务。
步骤304,获取自动化测试任务对应的至少一个接口测试用例;接口测试用例包括进行单个接口测试的单接口测试用例和多个单接口测试用例串联的场景化测试用例。
各单接口测试用例用于对单个接口进行不同测试参数的接口测试。也就是说,单接口测试用例是指针对单一接口的,根据不同维度的考量,针对单一接口进行不同参数的接口测试,以全方位的对一个接口进行测试。
每组场景化用例包括多个单接口测试用例,属于同一场景化测试用例的多个接口测试用例形成测试链路。也就是说,场景化用例是由多个接口组合形成的,由多个系统接口组合而成的一个流程,以测试一个业务链路上的相关情况。其中单个流程可能有多个分支,实际应用中,可以以父子场景来形成这种流程分支的选择,当执行到选择子场景时,可通过判断执行条件是否符合选择要执行的子场景的预设条件等。对于场景化测试农光里来讲,整个测试流程的数据是变化的但是系统流程是固定的,通过完善各系统的场景可以覆盖整体的业务场景。
步骤S306,执行接口测试用例,以完成自动化测试任务。
在确定测试任务的接口测试用例之后,就可以执行该接口测试用例以完成该自动化测试任务。
上文提及,自动化测试任务可以包括单接口测试任务和/或场景化测试任务,当自动化测试任务为场景化测试任务时,上述步骤S304获取自动化测试任务对应的至少一个接口测试用例可以包括:获取场景化测试任务对应的至少一个目标场景化测试用例;其中,目标场景化测试用例包括多个目标接口测试用例以及目标测试链路;进一步地,上述步骤S306执行接口测试用例时,可以包括:依据目标测试链路执行各目标接口测试用例。
可选地,依据目标测试链路执行各目标接口测试用例可以包括:执行任一目标接口测试用例时,缓存目标接口测试用例的执行结果;若执行目标测试链路中与目标接口测试用例存在依赖关系的其他目标接口测试用例,基于目标接口测试用例的执行结果设定其他目标接口测试用例的测试参数。
也就是说,在执行场景测试任务时,还可以通过用例管理模块将每个接口测试用例的返回数据进行缓存,如果后面接口依赖到该接口测试用例的返回数据,从缓存中查找到该返回数据的json,并解析获取相关参数后进行替换,然后再进行后续的接口调用。
在本发明一可选实施例中,还可以在用例管理模块中预置有多种注解,执行接口测试用例时,可以调用至少一个预置的注解,基于注解获取执行接口测试用例时所需的目标参数;根据目标参数设置接口测试用例的执行参数,执行接口测试用例。
举例来讲,若需要获取后端的token,可以使用@Authorizationv2来获取已加载缓存好的用户token,这样就避免了QA人员通过执行登录接口获取token的操作,同时也避免了token过期无法进行测试的问题。
以相关联的两个接口测试用例4257和4258为例,图4、图5分别展示了测试用例4257和接口测试用例4258的录入示意图,其中,接口测试用例4258的输入参数name是依赖上一个用例4257的返回值data的name参数,idCard使用自定义函数@IdCard生成身份标识。执行后查看执行结果,如图6所示。
图7示出了根据本发明另一实施例的自动化测试方法流程示意图,参见图7可知,本发明实施例提供的自动化测试方法可以包括:
步骤S702,接收场景化测试任务;
步骤S704,获取场景化测试任务对应的多个接口测试用例以及测试链路;
步骤S706,选取目标接口测试用例,判断第一接口测试用例是否依赖上一接口测试用例的测试结果;若是,则执行步骤S708;若否,则执行步骤S710;
步骤S708,获取上一接口测试用例的执行结果,更新目标接口测试用例的执行参数;
步骤S710,执行目标接口测试用例,获取并存储目标接口测试用例的执行结果;
步骤S712,判断目标接口测试用例的执行结果是否符合预期结果;若是,则执行步骤S714;若否,则执行步骤S716;
步骤S714,判断是否具有下一个接口测试用例需要执行;若是,则执行步骤S706;若否,则执行步骤S716;具体可以根据测试链路判断是否具有下一个接口测试用例需要执行;
步骤S716,结束场景化测试任务。
本发明实施例提供的自动化测试方法,通过将单个接口测试用例串联起来,形成上下依赖关系,下面接口使用参数依赖之前接口的返回值,将所执行过的接口的返回结果缓存起来,当后面接口使用时从缓存中获取数据进行替换后执行测试用例。通过测试过程中接口状态、数据的保留,实现了各接口之间数据的共享,实现了简单的API编程,可以通过顺序、分支、循环等方式构造复杂场景的测试用例,从而满足业务线上复杂业务场景测试的需求;
在本发明一可选实施例中,还可以对各测试用例对应的测试项目的代码覆盖率进行测试。具体可以通过覆盖率测试工具,如jacoco。jacoco,是一个开源的覆盖率工具。Jacoco可以嵌入到Ant、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序。
可选地,在上述步骤S302之后,还可以包括:
S1-1,确定测试任务对应的测试项目;测试项目,即需要测试用例测试的业务项目。
S1-2,在目标容器中创建测试项目的镜像测试环境,并在镜像测试环境中部署测试工具包。该测试工具包可以为jacocoagent。
进一步地,执行接口测试用例时,具体可以包括:
S2-1,启动测试任务后,基于目标容器处理接口测试用例中的接口请求。启动测试任务后,通过服务网格将接口测试用例中的接口请求转发至目标容器,由目标容器处理接口请求;其中,接口请求中携带有预设标签。服务网格istio在识别到携带有预设标签的接口请求后,就可以将其直接转发至目标容器(pod),由该目标容器处理所接收到的接口请求。
S2-2,在目标测试任务执行完成后,生成测试项目的代码覆盖率文件。代码覆盖率文件(project.exec文件)可以是基于jacoco的jacocoagent工具包在测试用例执行过程中所获取到的。
除上述步骤之外,还需要将测试项目的数据包复制到目标容器的指定挂载目录中;进一步地,上述步骤S2-2生成测试项目的代码覆盖率文件之后,还可以向目标容器请求获取代码覆盖率文件,同时解压测试项目的数据包并拉取测试项目的项目代码;基于代码覆盖率文件和项目代码分析测试项目的代码覆盖率测试结果。
结合图8可知,可以通过覆盖率测试工具的测试系统发布带有jacocoagent、项目project、agent环境(即镜像环境)到部署系统,由部署系统将jacocoagent工具包部署到pod(目标容器)中,同时将测试项目的jar包部署到指定挂载目录中。启动自动化测试并在测试完成后,生成project.exec文件,并从挂载目录中获取并解压jar包或项目代码。
可选地,获取代码覆盖率文件时,可以通过socket(覆盖率测试工具自带功能)请求该目标容器进行获取,获取到project.exec文件后可对其进行解析,与此同时,将部署jar包解压并拉取该测试项目的项目代码,完成操作后,可基于测试项目的项目代码、exec文件以及jacoco生成的class文件等分析出该测试项目的代码测试覆盖率情况,并将数据入库,生成查看详情的html文件并提供出查看详情入口。进一步地,在完成所有流程且中间无任何问题后,将测试目标容器pod进行销毁。
基于本发明实施例提供的方法,通过覆盖率测试工具可以有效了解各测试项目的代码的覆盖率情况,进而使得后期增加测试用例更加便捷。
本发明一可选实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行上述任一实施例的自动化测试方法。
本发明一可选实施例还提供了一种计算设备,计算设备包括处理器以及存储器:
存储器用于存储程序代码,并将程序代码传输给处理器;
处理器用于根据程序代码中的指令执行上述任一实施例的自动化测试方法。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
本发明实施例还包括在下列编号条款中规定的这些和其他方面:
1、一种自动化测试系统,包括:
接口管理模块,用于管理多个接口;
用例管理模块,用于管理多组接口测试用例;所述接口测试用例包括进行单个接口测试的单接口测试用例和多个单接口测试用例串联的场景化测试用例;
任务管理模块,用于管理多个测试任务,并在任一所述测试任务执行时,基于所述用例管理模块获取并执行所述测试任务对应的至少一个接口测试用例。
2、根据条款1所述的系统,所述用例管理模块,包括:
单用例管理单元,用于管理多个单接口测试用例,各所述单接口测试用例用于对单个接口进行不同测试参数的接口测试;
场景化用例管理单元,用于管理对应于不同业务场景的多组场景化测试用例;其中,每组所述场景化测试用例包括多个单接口测试用例,所述属于同一场景化测试用例的多个单接口测试用例串联形成测试链路。
3、根据条款2所述的系统,所述测试任务包括场景化测试任务;
所述用例管理模块,还用于执行任一所述场景化测试任务时,基于所述用例管理模块获取所述场景化测试任务对应的至少一个目标场景化测试用例;其中,所述目标场景化测试用例包括多个目标接口测试用例以及目标测试链路;
依据所述目标测试链路执行各所述目标接口测试用例。
4、根据条款3所述的系统,
所述用例管理模块,还用于执行任一所述目标接口测试用例时,缓存所述目标接口测试用例的执行结果;
当执行所述目标测试链路中与所述目标接口测试用例存在依赖关系的其他目标接口测试用例时,基于所述目标接口测试用例的执行结果设定所述其他目标接口测试用例的测试参数。
5、根据条款1-4任一项所述的系统,所述用例管理模块中预置有多种注解,
各所述注解可被一个或多个所述接口测试用例调用,以获取所述接口测试用例执行时所需的测试参数。
6、根据条款1-4任一项所述的系统,所述系统还包括:
记录管理模块,用于记录所述测试任务的执行记录和/或各组所述接口测试用例的执行记录;
项目管理模块,用于管理多个业务项目,并为各所述项目进行信息配置。
7、根据条款1-4任一项所述的系统,所述系统还包括覆盖率测试工具;
所述任务管理模块,还用于获取目标测试任务,并确定所述目标测试任务对应的目标测试项目以及至少一个目标接口测试用例;
所述覆盖率测试工具,用于在目标容器中创建所述目标测试项目的镜像测试环境,并在所述镜像测试环境中部署测试工具包;
启动所述目标测试任务后,基于所述目标容器处理所述目标接口测试用例中的接口请求,并在所述目标测试任务执行完成后,生成所述目标测试项目的代码覆盖率文件。
8、根据条款7所述的系统,
所述任务管理模块,还用于启动所述目标测试任务后,通过服务网格将所述目标接口测试用例中的接口请求转发至所述目标容器,由所述目标容器处理所述接口请求;
其中,所述接口请求中携带有预设标签。
9、一种自动化测试方法,包括:
接收任一自动化测试任务;所述测试任务包括单接口测试任务和/或场景化测试任务;
获取所述自动化测试任务对应的至少一个接口测试用例;所述接口测试用例包括进行单个接口测试的单接口测试用例和多个单接口测试用例串联的场景化测试用例;
执行所述接口测试用例,以完成所述自动化测试任务。
10、根据条款9所述的方法,当所述自动化测试任务为场景化测试任务时,所述获取所述自动化测试任务对应的至少一个接口测试用例包括:
获取所述场景化测试任务对应的至少一个目标场景化测试用例;其中,所述目标场景化测试用例包括多个目标接口测试用例以及目标测试链路;
所述执行所述接口测试用例,包括:
依据所述目标测试链路执行各所述目标接口测试用例。
11、根据条款10所述的方法,所述依据所述目标测试链路执行各所述目标接口测试用例,包括:
执行任一所述目标接口测试用例时,缓存所述目标接口测试用例的执行结果;
若执行所述目标测试链路中与所述目标接口测试用例存在依赖关系的其他目标接口测试用例,基于所述目标接口测试用例的执行结果设定所述其他目标接口测试用例的测试参数。
12、根据条款9所述的方法,所述执行所述接口测试用例,包括:
调用至少一个预置的注解,基于所述注解获取执行所述接口测试用例时所需的目标参数;
根据所述目标参数设置所述接口测试用例的执行参数,执行所述接口测试用例。
13、根据条款9所述的方法,所述接收任一自动化测试任务之后,还包括:
确定所述测试任务对应的测试项目;
在所述目标容器中创建所述测试项目的镜像测试环境,并在所述镜像测试环境中部署测试工具包。
14、根据条款13所述的方法,所述执行所述接口测试用例,包括:
启动所述测试任务后,基于所述目标容器处理所述接口测试用例中的接口请求;
在所述目标测试任务执行完成后,生成所述测试项目的代码覆盖率文件。
15、根据条款14所述的方法,所述启动所述测试任务后,基于所述目标容器处理所述接口测试用例中的接口请求,包括:
启动所述测试任务后,通过服务网格将所述接口测试用例中的接口请求转发至所述目标容器,由所述目标容器处理所述接口请求;
其中,所述接口请求中携带有预设标签。
16、根据条款14所述的方法,所述接收任一自动化测试任务之后,还包括:
将所述测试项目的数据包复制到所述目标容器的指定挂载目录中;
所述在所述目标测试任务执行完成后,生成所述测试项目的代码覆盖率文件之后,还包括:
向所述目标容器请求获取所述代码覆盖率文件,同时解压所述测试项目的数据包并拉取所述测试项目的项目代码;
基于所述代码覆盖率文件和所述项目代码分析所述测试项目的代码覆盖率测试结果。
17、一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行条款9-16任一项所述的自动化测试方法。
18、一种计算设备,所述计算设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行条款9-16任一项所述的自动化测试方法。
Claims (10)
1.一种自动化测试系统,其特征在于,包括:
接口管理模块,用于管理多个接口;
用例管理模块,用于管理多组接口测试用例;所述接口测试用例包括进行单个接口测试的单接口测试用例和多个单接口测试用例串联的场景化测试用例;
任务管理模块,用于管理多个测试任务,并在任一所述测试任务执行时,基于所述用例管理模块获取并执行所述测试任务对应的至少一个接口测试用例。
2.根据权利要求1所述的系统,其特征在于,所述用例管理模块,包括:
单用例管理单元,用于管理多个单接口测试用例,各所述单接口测试用例用于对单个接口进行不同测试参数的接口测试;
场景化用例管理单元,用于管理对应于不同业务场景的多组场景化测试用例;其中,每组所述场景化测试用例包括多个单接口测试用例,所述属于同一场景化测试用例的多个单接口测试用例串联形成测试链路。
3.根据权利要求2所述的系统,其特征在于,所述测试任务包括场景化测试任务;
所述用例管理模块,还用于执行任一所述场景化测试任务时,基于所述用例管理模块获取所述场景化测试任务对应的至少一个目标场景化测试用例;其中,所述目标场景化测试用例包括多个目标接口测试用例以及目标测试链路;
依据所述目标测试链路执行各所述目标接口测试用例。
4.根据权利要求3所述的系统,其特征在于,
所述用例管理模块,还用于执行任一所述目标接口测试用例时,缓存所述目标接口测试用例的执行结果;
当执行所述目标测试链路中与所述目标接口测试用例存在依赖关系的其他目标接口测试用例时,基于所述目标接口测试用例的执行结果设定所述其他目标接口测试用例的测试参数。
5.根据权利要求1-4任一项所述的系统,其特征在于,所述用例管理模块中预置有多种注解,
各所述注解可被一个或多个所述接口测试用例调用,以获取所述接口测试用例执行时所需的测试参数。
6.根据权利要求1-4任一项所述的系统,其特征在于,所述系统还包括:
记录管理模块,用于记录所述测试任务的执行记录和/或各组所述接口测试用例的执行记录;
项目管理模块,用于管理多个业务项目,并为各所述项目进行信息配置。
7.根据权利要求1-4任一项所述的系统,其特征在于,所述系统还包括覆盖率测试工具;
所述任务管理模块,还用于获取目标测试任务,并确定所述目标测试任务对应的目标测试项目以及至少一个目标接口测试用例;
所述覆盖率测试工具,用于在目标容器中创建所述目标测试项目的镜像测试环境,并在所述镜像测试环境中部署测试工具包;
启动所述目标测试任务后,基于所述目标容器处理所述目标接口测试用例中的接口请求,并在所述目标测试任务执行完成后,生成所述目标测试项目的代码覆盖率文件。
8.一种自动化测试方法,其特征在于,包括:
接收任一自动化测试任务;所述测试任务包括单接口测试任务和/或场景化测试任务;
获取所述自动化测试任务对应的至少一个接口测试用例;所述接口测试用例包括进行单个接口测试的单接口测试用例和多个单接口测试用例串联的场景化测试用例;
执行所述接口测试用例,以完成所述自动化测试任务。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求8所述的自动化测试方法。
10.一种计算设备,其特征在于,所述计算设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求8所述的自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011205895.4A CN112463588A (zh) | 2020-11-02 | 2020-11-02 | 一种自动化测试系统及方法、存储介质、计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011205895.4A CN112463588A (zh) | 2020-11-02 | 2020-11-02 | 一种自动化测试系统及方法、存储介质、计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463588A true CN112463588A (zh) | 2021-03-09 |
Family
ID=74835256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011205895.4A Pending CN112463588A (zh) | 2020-11-02 | 2020-11-02 | 一种自动化测试系统及方法、存储介质、计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463588A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312256A (zh) * | 2021-05-21 | 2021-08-27 | 上海振华重工(集团)股份有限公司 | 一种自动化码头系统接口自动化测试系统和方法 |
CN113392002A (zh) * | 2021-06-15 | 2021-09-14 | 北京京东振世信息技术有限公司 | 一种测试系统构建方法、装置、设备及存储介质 |
CN113688025A (zh) * | 2021-09-07 | 2021-11-23 | 中国联合网络通信集团有限公司 | 接口测试方法、装置、设备和存储介质 |
CN113709448A (zh) * | 2021-08-05 | 2021-11-26 | 贵阳朗玛视讯科技有限公司 | 一种基于iptv系统的测试装置和方法 |
WO2023123943A1 (zh) * | 2021-12-27 | 2023-07-06 | 深圳前海微众银行股份有限公司 | 接口自动化测试方法、装置、介质、设备及程序 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407971A (zh) * | 2014-11-18 | 2015-03-11 | 中国电子科技集团公司第十研究所 | 自动化测试嵌入式软件的方法 |
CN105373469A (zh) * | 2014-08-25 | 2016-03-02 | 广东金赋信息科技有限公司 | 一种基于接口的软件自动化测试方法 |
CN107329861A (zh) * | 2017-06-12 | 2017-11-07 | 北京奇安信科技有限公司 | 一种多接口测试方法及装置 |
CN109614341A (zh) * | 2018-12-29 | 2019-04-12 | 微梦创科网络科技(中国)有限公司 | 一种代码覆盖率的测试方法及系统 |
CN111221743A (zh) * | 2020-03-18 | 2020-06-02 | 时时同云科技(成都)有限责任公司 | 自动化测试方法及系统 |
CN111538659A (zh) * | 2020-04-21 | 2020-08-14 | 上海携程商务有限公司 | 业务场景的接口测试方法、系统、电子设备和存储介质 |
CN111831563A (zh) * | 2020-07-09 | 2020-10-27 | 平安国际智慧城市科技股份有限公司 | 接口自动测试方法、装置及存储介质 |
-
2020
- 2020-11-02 CN CN202011205895.4A patent/CN112463588A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105373469A (zh) * | 2014-08-25 | 2016-03-02 | 广东金赋信息科技有限公司 | 一种基于接口的软件自动化测试方法 |
CN104407971A (zh) * | 2014-11-18 | 2015-03-11 | 中国电子科技集团公司第十研究所 | 自动化测试嵌入式软件的方法 |
CN107329861A (zh) * | 2017-06-12 | 2017-11-07 | 北京奇安信科技有限公司 | 一种多接口测试方法及装置 |
CN109614341A (zh) * | 2018-12-29 | 2019-04-12 | 微梦创科网络科技(中国)有限公司 | 一种代码覆盖率的测试方法及系统 |
CN111221743A (zh) * | 2020-03-18 | 2020-06-02 | 时时同云科技(成都)有限责任公司 | 自动化测试方法及系统 |
CN111538659A (zh) * | 2020-04-21 | 2020-08-14 | 上海携程商务有限公司 | 业务场景的接口测试方法、系统、电子设备和存储介质 |
CN111831563A (zh) * | 2020-07-09 | 2020-10-27 | 平安国际智慧城市科技股份有限公司 | 接口自动测试方法、装置及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312256A (zh) * | 2021-05-21 | 2021-08-27 | 上海振华重工(集团)股份有限公司 | 一种自动化码头系统接口自动化测试系统和方法 |
CN113312256B (zh) * | 2021-05-21 | 2024-06-25 | 上海振华重工(集团)股份有限公司 | 一种自动化码头系统接口自动化测试系统和方法 |
CN113392002A (zh) * | 2021-06-15 | 2021-09-14 | 北京京东振世信息技术有限公司 | 一种测试系统构建方法、装置、设备及存储介质 |
CN113392002B (zh) * | 2021-06-15 | 2024-04-12 | 北京京东振世信息技术有限公司 | 一种测试系统构建方法、装置、设备及存储介质 |
CN113709448A (zh) * | 2021-08-05 | 2021-11-26 | 贵阳朗玛视讯科技有限公司 | 一种基于iptv系统的测试装置和方法 |
CN113688025A (zh) * | 2021-09-07 | 2021-11-23 | 中国联合网络通信集团有限公司 | 接口测试方法、装置、设备和存储介质 |
WO2023123943A1 (zh) * | 2021-12-27 | 2023-07-06 | 深圳前海微众银行股份有限公司 | 接口自动化测试方法、装置、介质、设备及程序 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
CN107908541B (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN112463588A (zh) | 一种自动化测试系统及方法、存储介质、计算设备 | |
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US10372600B2 (en) | Systems and methods for automated web performance testing for cloud apps in use-case scenarios | |
CN107688530B (zh) | 软件测试方法及装置 | |
US11068382B2 (en) | Software testing and verification | |
CN111159049B (zh) | 接口自动化测试方法及系统 | |
CN102693183B (zh) | 一种实现软件自动化测试的方法及系统 | |
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
CN109408375B (zh) | 接口文档的生成方法和装置 | |
US10606586B2 (en) | Application architecture generation | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN107832207A (zh) | 接口性能测试方法、装置、存储介质和计算机设备 | |
CN109165170A (zh) | 一种自动化请求测试的方法及系统 | |
CN110647471A (zh) | 接口测试用例生成方法、电子装置及存储介质 | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN117370203B (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN111654495B (zh) | 用于确定流量产生来源的方法、装置、设备及存储介质 | |
CN109783284A (zh) | 信息获取方法、系统及服务器、计算机可读存储介质 | |
US10310962B2 (en) | Infrastructure rule generation | |
CN106598836A (zh) | 一种客户端软件的测试方法及系统 | |
CN109274533B (zh) | 一种基于规则引擎的Web服务故障的定位装置和方法 | |
CN109656825A (zh) | 美术资源处理的方法及装置、电子设备、存储介质 | |
CN113094266B (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 | ||
CB02 | Change of applicant information |
Address after: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant after: Beijing Shuidi Technology Group Co.,Ltd. Address before: 100102 201, 2 / F, block C, No.2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant before: Beijing Health Home Technology Co.,Ltd. |
|
CB02 | Change of applicant information |