一种基于Docker容器的多任务调度自动化测试方法及系统技术方案

技术编号:18732204 阅读:32 留言:0更新日期:2018-08-22 02:58
本发明专利技术涉及一种基于Docker容器的多任务调度自动化测试方法及系统。该方法包括:基于被测系统或测试工具构建Docker镜像,将生成的Docker镜像作为测试任务模板;基于测试任务模板对应的Docker镜像来创建测试任务,并配置Docker容器的启动参数和启动时序,不同的测试任务运行在不同的Docker容器内,Docker容器的启动时序对应测试任务的执行流程;根据配置的Docker容器的启动参数和启动时序,启动Docker容器以执行测试任务。采用本发明专利技术方法,测试过程、测试任务可灵活调度,能够方便、高效地对计算机应用程序进行自动化测试。

An automated test method and system for multitask scheduling based on Docker container

The invention relates to an automatic testing method and system for multi task scheduling based on Docker container. This method includes: constructing Docker image based on the system under test or testing tools, using the generated Docker image as the test task template; creating test tasks based on the Docker image corresponding to the test task template, and configuring the start-up parameters and start-up timing of the Docker container. Different test tasks run in different Docker containers. In the Docker container, the start-up sequence corresponds to the execution process of the test task; according to the start-up parameters and start-up sequence of the configured Docker container, the Docker container is started to perform the test task. By adopting the method of the invention, the test process and the test task can be flexibly scheduled, and the computer application program can be conveniently and efficiently tested automatically.

【技术实现步骤摘要】
一种基于Docker容器的多任务调度自动化测试方法及系统
本专利技术属于软件技术、自动化测试
,具体涉及一种基于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命令,容器的网络参数、宿主机的挂载目录等。通过创建测试任务定义要运行的各个测试任务容器,通过配置测试任务的执行时序定义测试任务的执行流程。用户配置接口包括根据测试任务本文档来自技高网...

【技术保护点】
1.一种基于Docker容器的多任务调度自动化测试方法,其特征在于,包括以下步骤:基于被测系统或测试工具构建Docker镜像,将生成的Docker镜像作为测试任务模板;基于测试任务模板对应的Docker镜像来创建测试任务,并配置Docker容器的启动参数和启动时序,不同的测试任务运行在不同的Docker容器内,Docker容器的启动时序对应测试任务的执行流程;根据配置的Docker容器的启动参数和启动时序,启动Docker容器以执行测试任务。

【技术特征摘要】
1.一种基于Docker容器的多任务调度自动化测试方法,其特征在于,包括以下步骤:基于被测系统或测试工具构建Docker镜像,将生成的Docker镜像作为测试任务模板;基于测试任务模板对应的Docker镜像来创建测试任务,并配置Docker容器的启动参数和启动时序,不同的测试任务运行在不同的Docker容器内,Docker容器的启动时序对应测试任务的执行流程;根据配置的Docker容器的启动参数和启动时序,启动Docker容器以执行测试任务。2.根据权利要求1所述的方法,其特征在于,还包括以下步骤中的至少一个:监控各个Docker容器的资源消耗和运行状态;管理测试任务中用户应用程序的数据文件和日志文件;在测试任务执行完成后对测试资源进行回收,以释放占用的资源;在测试全部结束后,将被测系统所在容器打包成一个镜像文件,提交到本地私有仓库,同时向版本控制系统提交被测系统部署所依赖的Dockerfile文件和Docker-compose.yml文件,其中Dockerfile文件是生成被测系统环境部署镜像的配置文件,Docker-compose.yml文件是启动被测系统所在容器的配置文件;分析文件管理模块备份的测试日志,对测试执行情况进行分析汇总,生成测试报告。3.根据权利要求1或2所述的方法,其特征在于,所述基于被测系统或测试工具构建Docker镜像,是从版本控制系统下载被测系统或测试工具源码、用于构建Docker镜像的Dockerfile,根据Dockerfile构建Docker镜像,并将生成的镜像提交到本地私有仓库。4.根据权利要求2所述的方法,其特征在于,所述各个Docker容器的资源消耗和运行状态,包括内存占用、可用内存大小、CPU利用率、容器占用的网络带宽。5.根据权利要求2所述的方法,其特征在于,所述管理测试任务中用户应用程序的数据文件和日志文件,是将容器内应用程序运行依赖的数据文件进行统一管理,并对执行日志进行定期备份。6.一种基于Docker容器的多任务调度自动化测试系统,其特征在于,...

【专利技术属性】
技术研发人员:王骞张海阔李真辉朱宁李欣
申请(专利权)人:中国互联网络信息中心
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1