一种基于Docker容器的多任务调度自动化测试方法及系统与流程

文档序号:15207927发布日期:2018-08-21 12:20阅读:591来源:国知局

本发明属于软件技术、自动化测试技术领域,具体涉及一种基于docker容器的多任务调度的自动化测试方法及系统。



背景技术:

自动化测试技术是指对计算机应用程序进行自动化的测试,作为提高测试效率的重要手段,目前已得到了越来越广泛的应用。传统的自动化测试框架目标在于取代手工测试用例的执行,主要应用于功能测试,它们通常具有如下缺点:

a、不支持对测试环境的自动搭建和有效管理,不能对测试环境进行可靠、精准、全面的描述和有效监管,无法保证开发、测试环境的一致性。

b、测试过程不能灵活控制,只能顺序执行某个测试过程,不支持多个测试过程并发。

c、若被测对象与别的系统有依赖关系,无法同时调度多个系统进行联调测试。

d、扩展难度大,如果对测试工具进行扩展一般需要二次开发,测试工具维护成本高。



技术实现要素:

本发明针对上述问题,提供一种基于docker容器的多任务调度自动化测试方法及系统,能够方便、高效地对计算机应用程序进行自动化测试。

本发明采用的技术方案如下:

一种基于docker容器的多任务调度自动化测试方法,包括以下步骤:

基于被测系统或测试工具构建docker镜像,将生成的docker镜像作为测试任务模板;

基于测试任务模板对应的docker镜像来创建测试任务,并配置docker容器的启动参数和启动时序,不同的测试任务运行在不同的docker容器内,docker容器的启动时序对应测试任务的执行流程;

根据配置的docker容器的启动参数和启动时序,启动docker容器以执行测试任务。

进一步地,还包括以下步骤中的至少一个:

监控各个docker容器的资源消耗和运行状态;

管理测试任务中用户应用程序的数据文件和日志文件;

在测试任务执行完成后对测试资源进行回收,以释放占用的资源;

在测试全部结束后,将被测系统所在容器打包成一个镜像文件,提交到本地私有仓库,同时向版本控制系统提交被测系统部署所依赖的dockerfile文件和docker-compose.yml文件,其中dockerfile文件是生成被测系统环境部署镜像的配置文件,docker-compose.yml文件是启动被测系统所在容器的配置文件;

分析文件管理模块备份的测试日志,对测试执行情况进行分析汇总,生成测试报告。

进一步地,所述基于被测系统或测试工具构建docker镜像,是从版本控制系统下载被测系统或测试工具源码、用于构建docker镜像的dockerfile,根据dockerfile构建docker镜像,并将生成的镜像提交到本地私有仓库。

进一步地,所述各个docker容器的资源消耗和运行状态,包括内存占用、可用内存大小、cpu利用率、容器占用的网络带宽。

进一步地,所述管理测试任务中用户应用程序的数据文件和日志文件,是将容器内应用程序运行依赖的数据文件进行统一管理,并对执行日志进行定期备份。

一种基于docker的多任务调度自动化测试系统,其包括:

测试任务模板生成模块,负责基于被测系统或测试工具构建docker镜像,将生成的docker镜像作为测试任务模板;

用户配置模块,负责提供用户配置接口,基于测试任务模板对应的docker镜像来创建测试任务,并配置docker容器的启动参数和启动时序,不同的测试任务运行在不同的docker容器内,docker容器的启动时序对应测试任务的执行流程;

测试任务管理调度模块,负责读取用户的配置,根据配置的docker容器的启动参数和启动时序,启动docker容器以执行测试任务。

进一步地,还包括以下模块中的至少一个:

测试任务监控模块,负责监控各个docker容器的资源消耗和运行状态;

文件管理模块,负责管理测试任务中用户应用程序的数据文件和日志文件;

资源回收模块,负责在测试任务执行完成后对测试资源进行回收,释放占用的资源;

版本发布模块,负责在测试全部结束后,将被测系统所在容器打包成一个镜像文件,提交到本地私有仓库,同时向版本控制系统提交被测系统部署所依赖的dockerfile文件和docker-compose.yml文件,其中dockerfile文件是生成被测系统环境部署镜像的配置文件,docker-compose.yml文件是启动被测系统所在容器的配置文件;

结果汇总模块,负责分析文件管理模块备份的测试日志,对测试执行情况进行分析汇总,生成测试报告。

进一步地,所述测试任务模板生成模块从版本控制系统下载被测系统或测试工具源码、用于构建docker镜像的dockerfile,根据dockerfile构建docker镜像,并将生成的镜像提交到本地私有仓库。

进一步地,所述用户配置接口包括根据测试任务模板创建测试任务,对测试任务进行编辑和删除操作,测试任务执行顺序的创建和编辑操作。

进一步地,所述文件管理模块将容器内应用程序运行依赖的数据文件进行统一管理,并对执行日志进行定期备份。

与现有技术相比,本发明的有益效果如下:

1)测试工具及被测系统分别部署和运行在不同的容器里,运行环境彼此隔离,可保证环境的稳定性,易于分析管理;并且可集成各种类型的自动化测试工具,易扩展。

2)测试过程、测试任务可灵活调度,支持测试场景模块化,各场景可自由组合测试,支持复杂测试场景的构建。测试人员能够自定义测试过程,安排多个测试任务的执行时序,系统能支持顺序、并行、循环等多种测试任务运行模式。

3)通过可选择性地部署测试任务监控模块、文件管理模块、版本发布模块、结果汇总模块等模块,能够实时统计各个测试任务的执行状态和执行结果,可以自动进行测试结果检查,并生成测试报告;可以支持测试环境的自动搭建和管理,保证测试环境的稳定性和独立性;并且测试环境实现了快速自动部署,测试人员只需要编辑环境部署所需配置文件就可实现对环境的更改,测试环境更新更简单,成本降低。

附图说明

图1是实施例中分模块调度的自动化测试系统的模块组成示意图。

图2是实施例中分模块调度的自动化测试流程图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。

本发明将要执行的各个测试任务(job)以容器的形式运行,每个测试任务基于测试任务模板创建。测试任务模板是一个基于被测系统或者测试工具创建的docker镜像(docker是一个开源的应用容器引擎)。测试任务定义了依据docker镜像启动容器的命令,启动一个测试任务即启动了一个docker容器,不同的测试任务独立运行在不同的容器内。

图1为本发明一个实施例的自动化测试系统的模块组成示意图。该系统包括以下模块或子系统:

1)测试任务模板生成模块。负责从版本控制系统(svn或git)下载被测系统或测试工具源码、用于构建docker镜像的dockerfile,根据dockerfile构建docker镜像,并将生成的镜像作为测试任务模板,提交到本地私有仓库。

2)用户配置模块。负责通过web页面提供用户配置接口,基于测试任务模板对应的docker镜像来配置容器的启动参数和启动时序。所述启动参数包括容器启动时要执行的linux命令,容器的网络参数、宿主机的挂载目录等。通过创建测试任务定义要运行的各个测试任务容器,通过配置测试任务的执行时序定义测试任务的执行流程。用户配置接口包括根据测试任务模板创建测试任务,对测试任务进行编辑和删除操作,测试任务执行顺序的创建和编辑操作。

3)测试任务管理调度模块。负责读取用户的配置,执行用户创建的测试任务中定义的容器启动命令来启动容器,启动容器的次序依据用户定义的测试任务执行流程。

4)测试任务监控模块。负责监控各个docker容器的资源消耗和运行状态,包括内存占用、可用内存大小、cpu利用率、容器占用的网络带宽。

5)文件管理模块。负责管理测试任务中用户应用程序的数据文件和日志文件,将容器内应用程序运行依赖的数据文件进行统一管理,并对执行日志进行定期备份。

6)资源回收模块。负责在测试任务执行完成后对测试资源进行回收,销毁运行的所有容器,释放占用的资源。

7)版本发布模块。负责在测试全部结束后,将被测系统所在容器打包成一个镜像文件,提交到本地私有仓库,同时向版本控制系统(git或svn)提交被测系统部署所依赖的dockerfile文件和docker-compose.yml文件,其中dockerfile文件是生成被测系统环境部署镜像的配置文件,docker-compose.yml文件是启动被测系统所在容器的配置文件。

8)结果汇总模块。负责分析文件管理模块备份的测试日志,对测试执行情况进行分析汇总,生成测试报告。

以上模块中,测试任务模板生成模块、用户配置模块、测试任务管理调度模块为必须具有的模块,能够保证实现基本的自动化测试过程;其它模块为可选的模块,能够提供进一步的优化功能。

本发明的上述方案的关键点是:

1)将测试任务模块化,将每一个测试场景以测试任务为单位分开独立构建,不同测试工具构建的自动化测试任务分别运行在不同的容器里,可灵活调度,测试任务模块可自由组合构建更复杂的测试场景。

2)采用docker引擎将运行环境与应用程序打包成镜像。使用dockerfile文件构建镜像。将被测系统和测试工具分别集成到不同的镜像内,运行在各自独立的容器中。dockerfile文件对运行环境的可靠描述,能保证开发环境与测试环境的一致性。容器运行机制可以支持测试环境的快速复制、迭代和测试资源回收。

3)测试数据与测试工具分开管理,测试人员只需要准备测试数据,配置测试任务流程就可实施测试了,无需搭建测试环境和启动测试服务及测试工具,操作简单,管理方便。

4)对测试任务的运行状态可以实时监控,自动统计各项性能指标,测试结果自动分析,生成测试报告,可随时对被测系统进行性能和功能方面的评估,有助于快速发现系统问题,提高测试效率。

图2是本发明一个本实施例的自动化测试流程,其步骤描述如下:

1)配置被测系统的版本控制系统(svn或者git)地址,该地址包括被测系统源码和dockerfile文件。

2)根据dockerfile文件和系统源码,生成包含被测系统的镜像,并将镜像提交到本地docker私有库。

3)根据不同的测试任务准备相应的测试数据。测试数据是指执行测试任务过程所需要的输入信息,包括数据文件、配置文件等。

4)读取docker私有库中所有的镜像文件,包括刚提交的包含被测系统的镜像文件及包含测试工具的镜像文件,配置容器启动参数及测试数据路径,编写docker容器的配置文件docker-compose.yml,从而完成测试任务创建过程。

5)组织各个测试任务的执行流程,可以指定执行次数和执行顺序,系统支持多个测试任务并行。

6)启动整个测试过程,按照测试任务的执行流程依次启动各个测试任务,测试任务启动后被测系统和测试程序分别运行在各自独立的容器内。被测系统和测试程序的执行日志定期备份到本地服务器,同时对各个容器进行实时监控。

7)测试结束后,系统分析测试结果,生成测试报告,将启动的所有容器销毁,并把最后一个被测系统的容器版本生成镜像,提交到本地docker私有库,同时把被测系统构建镜像的dockfile文件及docker容器的docker-compose.yml文件上传到版本控制系统(svn或git)。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

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