CN110795356B - 基于Ansible实现软件一键式部署与自动化测试的系统及其方法 - Google Patents

基于Ansible实现软件一键式部署与自动化测试的系统及其方法 Download PDF

Info

Publication number
CN110795356B
CN110795356B CN201911059579.8A CN201911059579A CN110795356B CN 110795356 B CN110795356 B CN 110795356B CN 201911059579 A CN201911059579 A CN 201911059579A CN 110795356 B CN110795356 B CN 110795356B
Authority
CN
China
Prior art keywords
deployment
virtual machine
test
environment
module
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.)
Active
Application number
CN201911059579.8A
Other languages
English (en)
Other versions
CN110795356A (zh
Inventor
周勤
王晓朋
顾伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Primeton Information Technology Co ltd
Original Assignee
Primeton Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Primeton Information Technology Co ltd filed Critical Primeton Information Technology Co ltd
Priority to CN201911059579.8A priority Critical patent/CN110795356B/zh
Publication of CN110795356A publication Critical patent/CN110795356A/zh
Application granted granted Critical
Publication of CN110795356B publication Critical patent/CN110795356B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种基于Ansible实现软件一键式部署与自动化测试的系统,包括测试环境设计模块,用于根据环境设计进行应用的参数配置;虚拟机模板准备模块用于安装测试依赖服务以及制作虚拟机快照;部署设计模块,用于选择合适的虚拟机模板和快照设计部署参数;环境部署模块,用于通过恢复快照的方式进行依赖服务安装和环境清理,或通过自动部署进行实现依赖;资源回收模块用于对分配的测试虚拟机进行定期回收。本发明还涉及一种基于Ansible实现软件一键式部署与自动化测试控制的方法。采用了本发明的基于Ansible实现软件一键式部署与自动化测试的系统及其方法,提高了软件部署正确率、提高了软件自动化测试效率,提高了软件产品质量,降低了软件运维成本。

Description

基于Ansible实现软件一键式部署与自动化测试的系统及其方法
技术领域
本发明涉及计算机软件领域,尤其涉及虚拟机技术和自动化测试领域,具体是指一种基于Ansible实现软件一键式部署与自动化测试的系统及其方法。
背景技术
在如火如荼的云计算、大数据时代背景下,建立卓越的IT生产线已成为产品研发的重要竞争力。随着业务创新化、技术革新化的飞跃发展,各类IT应用系统变得日趋复杂,测试消耗的成本越来越高,花费的时间也越来越长。而成本与时间是有限的,为了在有限的成本与时间范围内,测试人员被要求在尽量短的时间内对软件进行足够的测试,进而较好的控制发布的软件质量。
随着网络架构的不断升级、业务的复杂化和保证产品的扩展性,产品支持的数据库、应用服务器、中间件、操作系统越来越多,为了保证产品的质量产品研发过程中测试环境的组合来越多,这也导致了测试环境的部署难度不断增加。目前测试环境部署流程如下:
1、根据前期测试环境规划创建一定CPU、内存、磁盘配置的虚拟机,并在虚拟机上安装操作系统(如CentOS、Windows),并配置网络;
2、测试人员在已创建好的虚拟机环境上部署被测产品依赖项(如应用服务器、数据库、JDK、Python等);
3、根据测试环境设计组合,自动化或手工定期部署配置被测产品;
执行手工或自动化测试用例。
现在测试环境部署过程中主要面临如下问题:
1、需要人工去创建、配置和维护虚拟机,人力运维成本高;
2、测试过程中虚拟机数量种类多,产品手工、自动化测试重复使用相同虚拟机,因定位排查问题,不可避免的修改测试环境配置,修改过程成难以记录相应修改,导致无法保证测试环境的一致性和状态的可控性,后续问题排查难度大;
3、被测产品依赖项如应用服务器等类型、版本多,维护难度大,出错率高;
同一产品或服务在多个虚拟机上冗余部署,资源回收率低,最终导致服务器整个利用率低。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种满足出错率低、操作简便、适用范围较为广泛的基于Ansible实现软件一键式部署与自动化测试的系统及其方法。
为了实现上述目的,本发明的基于Ansible实现软件一键式部署与自动化测试的系统及其方法如下:
该基于Ansible实现软件一键式部署与自动化测试的系统,其主要特点是,所述的系统包括:
测试环境设计模块,用于根据测试环境的操作系统类型、被测应用的依赖项、被测应用的部署方式和配置,确定测试环境的依赖组合和部署顺序,并根据环境设计进行应用的参数配置;
虚拟机模板准备模块,与所述的测试环境设计模块相连接,用于创建虚拟机,安装测试依赖服务以及制作虚拟机快照;
部署设计模块,与所述的虚拟机模板准备模块相连接,用于选择合适的虚拟机模板和快照设计部署参数;
环境部署模块,与所述的部署设计模块相连接,用于通过恢复快照的方式进行依赖服务安装和环境清理,或通过自动部署进行实现依赖;
资源回收模块,与所述的环境部署模块相连接,用于对分配的测试虚拟机进行定期回收。
较佳地,所述的虚拟机模板准备模块包括:
创建虚拟机单元,与所述的测试环境设计模块相连接,用于通过虚拟机虚拟化客户端创建虚拟机,指定虚拟机的数据中心和服务器,并根据需求进行配置以及安装操作系统;
测试依赖服务安装单元,与所述的创建虚拟机单元相连接,用于安装依赖服务并确保正常可用;
虚拟机快照制作单元,与所述的测试依赖服务安装单元相连接,用于保存虚拟机当前的状态信息,并提供恢复快照操作;
虚拟机模板配置单元,与所述的虚拟机快照制作单元相连接,用于将快照的虚拟机信息作为模板录入系统。
较佳地,所述的测试依赖服务安装单元安装的依赖服务包括服务正常启动依赖服务和通过外部地址正常访问依赖服务。
较佳地,所述的虚拟机模板配置单元的虚拟机信息包括模板的系统类型、磁盘内存大小和网络配置。
较佳地,所述的部署设计模块包括环境清理、预置环境准备和产品部署。
较佳地,所述的部署设计模块的部署参数包括JDK版本、数据库信息和被测应用组件部署顺序。
该利用上述系统基于Ansible实现软件一键式部署与自动化测试控制的方法,其主要特点是,所述的方法包括以下步骤:
(1)所述的测试环境设计模块确定测试环境的依赖组合和部署顺序,根据环境设计进行应用的参数配置;
(2)所述的虚拟机模板准备模块制作虚拟机模板;
(3)所述的部署设计模块选择合适的虚拟机模板和快照设计部署参数;
(4)所述的环境部署模块通过恢复快照的方式或每次自动部署进行依赖服务安装和环境清理;
(5)所述的资源回收模块对分配的测试虚拟机进行定期回收。
较佳地,所述的步骤(2)具体包括以下步骤:
(2.1)创建虚拟机单元创建指定操作系统的虚拟机;
(2.2)安装被测产品的依赖服务;
(2.3)制作虚拟机快照;
(2.4)配置虚拟机模板。
采用了本发明的基于Ansible实现软件一键式部署与自动化测试的系统及其方法,实现了服务器上基于模板创建不同操作系统的虚拟机的一键式创建,并基于快照实现虚拟机磁盘和内存状态的备份、恢复和虚拟机自助上/下电操作、自动回收,提高了软件部署正确率、提高了软件自动化测试效率,提高了软件产品质量,降低了软件运维成本。
附图说明
图1为本发明的基于Ansible实现软件一键式部署与自动化测试的系统的结构示意图。
图2为本发明的基于Ansible实现软件一键式部署与自动化测试的系统的虚拟机模板准备模块示意图。
图3为本发明的基于Ansible实现软件一键式部署与自动化测试控制的方法的实施例的流程图。
图4为本发明的基于Ansible实现软件一键式部署与自动化测试控制的方法的实施例的部署被测应用的流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
本发明的该基于Ansible实现软件一键式部署与自动化测试的系统,其中包括:
测试环境设计模块,用于根据测试环境的操作系统类型、被测应用的依赖项、被测应用的部署方式和配置,确定测试环境的依赖组合和部署顺序,并根据环境设计进行应用的参数配置;
虚拟机模板准备模块,与所述的测试环境设计模块相连接,用于创建虚拟机,安装测试依赖服务以及制作虚拟机快照;
部署设计模块,与所述的虚拟机模板准备模块相连接,用于选择合适的虚拟机模板和快照设计部署参数;
环境部署模块,与所述的部署设计模块相连接,用于通过恢复快照的方式进行依赖服务安装和环境清理,或通过自动部署进行实现依赖;
资源回收模块,与所述的环境部署模块相连接,用于对分配的测试虚拟机进行定期回收。
作为本发明的优选实施方式,所述的虚拟机模板准备模块包括:
创建虚拟机单元,与所述的测试环境设计模块相连接,用于通过虚拟机虚拟化客户端创建虚拟机,指定虚拟机的数据中心和服务器,并根据需求进行配置以及安装操作系统;
测试依赖服务安装单元,与所述的创建虚拟机单元相连接,用于安装依赖服务并确保正常可用;
虚拟机快照制作单元,与所述的测试依赖服务安装单元相连接,用于保存虚拟机当前的状态信息,并提供恢复快照操作;
虚拟机模板配置单元,与所述的虚拟机快照制作单元相连接,用于将快照的虚拟机信息作为模板录入系统。
作为本发明的优选实施方式,所述的测试依赖服务安装单元安装的依赖服务包括服务正常启动依赖服务和通过外部地址正常访问依赖服务。
作为本发明的优选实施方式,所述的虚拟机模板配置单元的虚拟机信息包括模板的系统类型、磁盘内存大小和网络配置。
作为本发明的优选实施方式,所述的部署设计模块包括环境清理、预置环境准备和产品部署。
作为本发明的优选实施方式,所述的部署设计模块的部署参数包括JDK版本、数据库信息和被测应用组件部署顺序。
本发明的该利用上述系统基于Ansible实现软件一键式部署与自动化测试控制的方法,其中包括以下步骤:
(1)所述的测试环境设计模块确定测试环境的依赖组合和部署顺序,根据环境设计进行应用的参数配置;
(2)所述的虚拟机模板准备模块制作虚拟机模板;
(2.1)创建虚拟机单元创建指定操作系统的虚拟机;
(2.2)安装被测产品的依赖服务;
(2.3)制作虚拟机快照;
(2.4)配置虚拟机模板;
(3)所述的部署设计模块选择合适的虚拟机模板和快照设计部署参数;
(4)所述的环境部署模块通过恢复快照的方式或每次自动部署进行依赖服务安装和环境清理;
(5)所述的资源回收模块对分配的测试虚拟机进行定期回收。
本发明的具体实施方式中,本发明的该系统基于Ansible的软件一键式部署与自动化测试系统,该系统主要包括测试环境设计模块、准备虚拟机模板模块、部署设计模块、环境部署模块和资源回收模块五部分。测试环境设计模块主要是根据产品需求和适用范围,设计测试环境;虚拟机模板准备模块主要由基于虚拟化技术创建指定操作系统的虚拟机;部署设计模块是根据测试环境设计模块,选择合适的虚拟机模板和快照,设计部署参数;环境部署模块是指部署被测产品的过程;资源回收模块主要是对分配的测试虚拟机等资源进行回收。
该系统通过界面参数配置实现服务器上基于模板创建不同操作系统的虚拟机,同时基于SNAPSHOT实现虚拟机磁盘和内存状态的备份、恢复和虚拟机自助上/下电操作、自动回收的自助系统,从而实现各种不同类型组合环境的虚拟机自助创建/回收、软件及测试用例自动化部署及运行,进而提高软件部署正确率、提高软件自动化测试效率,提高软件产品质量,降低软件运维成本。
Ansible是一个配置管理和应用部署工具,功能类似于目前软件行业所使用的配置管理工具Chef、Puppet、Saltstack。Ansible是通过Python语言开发。Ansible平台由Michael DeHaan创建,Ansible的第一个版本发布于2012年2月。
为了解决测试环境部署模块越来越复杂、周期不断加长的问题,本发明提出了基于Ansible的软件一键式部署与自动化测试方法与系统,在产品测试环境部署模块过程中通过虚拟机快照、虚拟机模板等技术,结合Ansible工具的快速的部署能力,通过页面统一参数配置、底层调用Ansible脚本实现产品生命周期内测试环境快速部署和有效管理。基于模板创建不同操作系统的虚拟机,同时基于SNAPSHOT实现虚拟机磁盘和内存状态的备份、恢复和虚拟机自助上/下电操作、自动回收的自助系统,从而实现各种不同类型组合环境的虚拟机自助创建/回收、被测软件及测试用例自动化部署及运行,进而提高软件部署正确率、提高软件自动化测试效率,提高软件产品质量,降低软件运维成本。
本系统旨在通过简单的页面配置,实现复杂测试环境的自动化部署。主要分为测试环境设计模块、虚拟机模板准备模块、部署设计模块、环境部署模块和资源回收模块五部分,如图1所示。
测试环境设计模块主要是根据产品需求和适用范围,设计测试环境,即根据测试环境的操作系统类型、被测应用的依赖项、被测应用的部署方式和配置,确定测试环境的依赖组合和部署顺序,后续根据环境设计进行应用的参数配置。
虚拟机模板准备模块主要由以图2所示部分组成,虚拟机模板准备模块主要由基于虚拟化技术创建指定操作系统的虚拟机、安装被测产品的依赖服务、制作虚拟机快照和配置虚拟机模板四部分。
创建指定操作系统的虚拟机主要通过虚拟机虚拟化客户端创建虚拟机,指定虚拟机的数据中心、服务器,并根据需求配置虚拟机名称,CPU、内存、存储、显卡、网络等信息,并安装操作系统。
安装依赖服务,是在创建好的虚拟机上安装应用服务器等依赖,并保证安装完成后依赖服务在该虚拟机上正常可用,包括服务正常启动和可通过外部地址正常访问。
制作虚拟机快照主要为保存虚拟机当前的内存、磁盘等状态信息,在后续部署中可通过恢复快照,可以使虚拟机处于一个满足产品部署的可知状态,这样既可以减少被测产品部署的复杂度和时间,也可以保证产品部署过程中的环境状态的可控性。如被测产品需部署到WebLogic服务器,则将WebLogic服务器作为被测产品的依赖项。部署过程中如果每次复用已存在的应用服务器,为了保证上次的部署配置和文件不会影响这次的部署,则需要在部署前清理之前部署生成的文件和修改的配置。而像WebLogic类型的依赖每次部署前清理环境比较困难,不仅需要删除被测产品相关的文件,还需清理部署过程中对WebLogic服务器配置的修改和测试过程中生成的临时文件等。对于配置修改的还原不当可能引起服务器异常,生成的临时文件可能基于时间等,这样会极大增加环境清理的难度,并使环境处于一个未知的状态。而如果在产品部署过程中每次都重新安装WebLogic服务器则增加了产品部署的复杂度,不稳定行和耗时,并且有些依赖无法需要UI界面完成安装,也不支持使用脚本进行静默安装,这将导致自动部署无法实现。所以选择的方案为提前在虚拟机上安装好这些依赖服并制作虚拟机快照,在每次部署前通过恢复虚拟机快照的方法,使测试环境处于符合产品部署的状态,并且虚拟机在该状态下所有的配置是明确的。如制作基于WebLogic的快照时,在WebLogic安装完成后,需保证WebLogic的状态是正常可用的,即WebLogic服务器后各项配置正确,并正确创建了用于被测产品部署的domain,应用服务器可以正确启动并通过外部地址正常访问。需要制作快照的依赖服务主要为测试过程中必需且不变的依赖项,而对数据库配置、JDK配置等需要测试不同版本,在测试过程中经常发生变化的,不需要制作在快照里,可同被测应用一起部署。
虚拟机模板准备模块即将制作了快照的虚拟机信息作为模板录入系统,包括模板的系统类型、磁盘内存大小和网络配置。后续被测环境均通过系统由模板创建得到,为了尽可能减少模板对服务器资源的占用,每种操作系统的虚拟机制作一个模板,同一个操作系统上依赖服务的差异,通过快照去实现。如需要有WebLogic服务器、Redis的不同Linux操作系统模板时,可以在同一个系统上安装完不同类型的依赖时均制作快照,后续创建虚拟机时以该模板和快照为基础进行创建,不但可以减少模板的维护工作,也可以极大的节省模板占用的服务器资源。
部署设计模块是根据测试环境设计模块,选择合适的虚拟机模板和快照,设计部署参数,如JDK版本、数据库信息、被测应用组件部署顺序等。
部署被测产品为被测产品的实际部署过程,虚拟机基础运行环境和依赖服务准备好后,进行被测试产品的部署,分为环境清理、预置环境准备和产品部署。环境清理主要为了保证被测产品部署需要的资源的未被占用,包括部署文件目录下无其他无关文件,应用监听的端口未被占用等;预置环境准备中主要进行产品部署前的准备,如安装JDK,启动应用服务器等;产品部署进行产品介质的下载、产品部署和配置的修改。
资源回收模块主要为对分配的测试虚拟机等进行回收;测试过程中为了问题复现或bug验证,有些环境需要保留,所以为了满足测试过程环境需求和保证服务器资源的有效利用,通过配置实现虚拟机资源的定期回收和人工回收。
下面以某种java war包部署环境为例说明,实际测试过程中测试环境组合会有很多,下面以两种典型环境部署为例说明具体实施过程。具体环境组合如下所示:
CentOS7.2+JDK1.8+Weblogic12c+War包
CentOS7.2+JDK1.6+Tomcat7.0.94+War包
第一种测试环境依赖WebLogic应用服务器,WebLogic服务器每次都自动部署难度大、时间长、部署稳定性低,所以选择提前手动安装好并制作快照,后续部署采用恢复快照的方式实现依赖安装和环境清理;第二种所有依赖都可通过每次自动部署实现。环境具体实施过程和步骤流程如图3所示。
一、安装虚拟机
虚拟机信息为:CentOS7.2+4Core+50GB+4G
通过虚拟机客户端创建4核CPU、硬盘50G、内存4G的虚拟机,并安装Centos操作系统,配置好网络、防火墙、yum源,并创建基础快照,快照名称为basicSnapshot。
二、制作虚拟机基础模板
将步骤一中创建好的虚拟机作为后续Centos系统虚拟机的基础模板,用于创建不同测试需求的虚拟机环境。将步骤一中创建的虚拟机作为模板信息录入系统,后续部署时可通过页面选择模板,生成脚本创建虚拟机。模板录入主要信息如下所示:
参数名称 参数值 参数描述
templateName basicCentos 模板名称
guestId rhel7_64Guest 模板操作系统类型
diskSize 50G 模板磁盘大小
memorySize 4098m 模板内存大小
cpuNum 4 模板CPU核数
三、部署webLogic环境
1、创建虚拟机并安装WebLogic环境
页面选择步骤二中创建的模板,并配置新创建虚拟机的名称,磁盘、内存、CPU、网络信息,页面配置参数如下所示:
Figure BDA0002257520910000081
Figure BDA0002257520910000091
具体调用ansible脚本主要内容如下:
Figure BDA0002257520910000092
按上述步骤创建虚拟机完成后,远程登陆虚拟机并安装WebLogic服务器,配置服务器domain等信息,验证WebLogic启动正常,并可以其他机器浏览器访问。
2、创建WebLogic快照
上述步骤1完成后,通过页面配置创建快照,便于后续可基于快照快速完成WebLogic应用服务器环境准备,也可通过系统直观展示指定虚拟机的快照状态,方便管理和复用。
创建快照配置如下所示:
Figure BDA0002257520910000093
Figure BDA0002257520910000101
创建基础模板快照脚本如下:
Figure BDA0002257520910000102
WebLogic虚拟机快照完成后,将该虚拟机作为模板录入系统,方便后续有同样服务依赖的测试环境时,可复用改模板进行部署,具体录入信息参照步骤二。
3、部署被测应用
虚拟机快照创建好后,基于该快照进行后续产品部署,ansible中将不同组件的部署可作为一个role服用,具体部署role和顺序如图4所示:
具体执行脚本如下所示:
Figure BDA0002257520910000103
revertsnapshot操作主要为恢复虚拟机快照,快照恢复后虚拟机状态相对于被测应用部署来说是已知的;cleanEnv主要为了保证文件目录、监听端口等符合不要要求;preDeploy主要进行像JDK等依赖项的配置;deployApp主要是进行war包下载和将war包部署到应用服务器;configApp主要为修改被测应用相关的配置,如服务监听端口,数据库连接信息等;startApp主要完成应用服务器的启动,从而加载被测应用,并检测应用是否正常启动并可通过外部方式访问(如http访问应用);mail为将部署的访问信息、应用在服务器的位置信息等发送测试相关人员,便于进行测试和问题排查。
四、部署tomcat环境
tomcat环境依赖服务都通过自动部署实现,具体部署脚本如下所示:
Figure BDA0002257520910000104
Figure BDA0002257520910000111
createVM为基于基础模板创建虚拟机,保证每次都是全新的环境进行部署;其他相关部署操作同webLogic服务器部署。
五、资源回收
为了保证服务器资源的有效利用,需要对创建的冗余资源进行回收,可通过页面配置进行定期回收和手工的方式回收已创建的资源。
回收资源具体脚本如下所示:
Figure BDA0002257520910000112
采用了本发明的基于Ansible实现软件一键式部署与自动化测试的系统及其方法,实现了服务器上基于模板创建不同操作系统的虚拟机的一键式创建,并基于快照实现虚拟机磁盘和内存状态的备份、恢复和虚拟机自助上/下电操作、自动回收,提高了软件部署正确率、提高了软件自动化测试效率,提高了软件产品质量,降低了软件运维成本。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (8)

1.一种基于Ansible实现软件一键式部署与自动化测试的系统,其特征在于,所述的系统包括:
测试环境设计模块,用于根据测试环境的操作系统类型、被测应用的依赖项、被测应用的部署方式和配置,确定测试环境的依赖组合和部署顺序,并根据环境设计进行应用的参数配置;
虚拟机模板准备模块,与所述的测试环境设计模块相连接,用于创建虚拟机,安装测试依赖服务以及制作虚拟机快照;
部署设计模块,与所述的虚拟机模板准备模块相连接,用于选择合适的虚拟机模板和快照设计部署参数;
环境部署模块,与所述的部署设计模块相连接,用于通过恢复快照的方式进行依赖服务安装和环境清理,或通过自动部署进行实现依赖;
资源回收模块,与所述的环境部署模块相连接,用于对分配的测试虚拟机进行定期回收。
2.根据权利要求1所述的基于Ansible实现软件一键式部署与自动化测试的系统,其特征在于,所述的虚拟机模板准备模块包括:
创建虚拟机单元,与所述的测试环境设计模块相连接,用于通过虚拟机虚拟化客户端创建虚拟机,指定虚拟机的数据中心和服务器,并根据需求进行配置以及安装操作系统;
测试依赖服务安装单元,与所述的创建虚拟机单元相连接,用于安装依赖服务并确保正常可用;
虚拟机快照制作单元,与所述的测试依赖服务安装单元相连接,用于保存虚拟机当前的状态信息,并提供恢复快照操作;
虚拟机模板配置单元,与所述的虚拟机快照制作单元相连接,用于将快照的虚拟机信息作为模板录入系统。
3.根据权利要求2所述的基于Ansible实现软件一键式部署与自动化测试的系统,其特征在于,所述的测试依赖服务安装单元安装的依赖服务包括服务正常启动依赖服务和通过外部地址正常访问依赖服务。
4.根据权利要求2所述的基于Ansible实现软件一键式部署与自动化测试的系统,其特征在于,所述的虚拟机模板配置单元的虚拟机信息包括模板的系统类型、磁盘内存大小和网络配置。
5.根据权利要求1所述的基于Ansible实现软件一键式部署与自动化测试的系统,其特征在于,所述的部署设计模块包括环境清理、预置环境准备和产品部署。
6.根据权利要求1所述的基于Ansible实现软件一键式部署与自动化测试的系统,其特征在于,所述的部署设计模块的部署参数包括JDK版本、数据库信息和被测应用组件部署顺序。
7.一种利用权利要求1所述的系统基于Ansible实现软件一键式部署与自动化测试控制的方法,其特征在于,所述的方法包括以下步骤:
(1)所述的测试环境设计模块确定测试环境的依赖组合和部署顺序,根据环境设计进行应用的参数配置;
(2)所述的虚拟机模板准备模块制作虚拟机模板;
(3)所述的部署设计模块选择合适的虚拟机模板和快照设计部署参数;
(4)所述的环境部署模块通过恢复快照的方式或每次自动部署进行依赖服务安装和环境清理;
(5)所述的资源回收模块对分配的测试虚拟机进行定期回收。
8.根据权利要求6所述的基于Ansible实现软件一键式部署与自动化测试控制的方法,其特征在于,所述的步骤(2)具体包括以下步骤:
(2.1)创建虚拟机单元创建指定操作系统的虚拟机;
(2.2)安装被测产品的依赖服务;
(2.3)制作虚拟机快照;
(2.4)配置虚拟机模板。
CN201911059579.8A 2019-11-01 2019-11-01 基于Ansible实现软件一键式部署与自动化测试的系统及其方法 Active CN110795356B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911059579.8A CN110795356B (zh) 2019-11-01 2019-11-01 基于Ansible实现软件一键式部署与自动化测试的系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911059579.8A CN110795356B (zh) 2019-11-01 2019-11-01 基于Ansible实现软件一键式部署与自动化测试的系统及其方法

Publications (2)

Publication Number Publication Date
CN110795356A CN110795356A (zh) 2020-02-14
CN110795356B true CN110795356B (zh) 2023-05-12

Family

ID=69440746

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911059579.8A Active CN110795356B (zh) 2019-11-01 2019-11-01 基于Ansible实现软件一键式部署与自动化测试的系统及其方法

Country Status (1)

Country Link
CN (1) CN110795356B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112162920A (zh) * 2020-09-15 2021-01-01 北京影谱科技股份有限公司 一种基于Kubernetes的自动化模型测试方法及系统
CN112506770A (zh) * 2020-12-02 2021-03-16 国网重庆市电力公司电力科学研究院 一种基于虚拟化架构的自动化系统功能验证方法
CN114257497B (zh) * 2021-12-22 2023-04-28 上海中通吉网络技术有限公司 动态替换Dubbo微服务的方法
CN118277282B (zh) * 2024-06-03 2024-09-10 天津南大通用数据技术股份有限公司 数据库的数据测试方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117346A (zh) * 2015-09-24 2015-12-02 上海爱数软件有限公司 虚拟化平台的分布式系统自动化测试方法及系统
JP2016218714A (ja) * 2015-05-20 2016-12-22 日本電気株式会社 テスト管理システム、テスト方法、及び、コンピュータ・プログラム
CN107943690A (zh) * 2017-11-16 2018-04-20 郑州云海信息技术有限公司 一种部署兼容性测试环境的平台及方法
CN108829409A (zh) * 2018-06-20 2018-11-16 泰华智慧产业集团股份有限公司 一种分布式系统快速部署方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496527B2 (en) * 2017-07-25 2019-12-03 Belay Technologies, Inc. System and method for rapid and repeatable provisioning and regression testing plans

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218714A (ja) * 2015-05-20 2016-12-22 日本電気株式会社 テスト管理システム、テスト方法、及び、コンピュータ・プログラム
CN105117346A (zh) * 2015-09-24 2015-12-02 上海爱数软件有限公司 虚拟化平台的分布式系统自动化测试方法及系统
CN107943690A (zh) * 2017-11-16 2018-04-20 郑州云海信息技术有限公司 一种部署兼容性测试环境的平台及方法
CN108829409A (zh) * 2018-06-20 2018-11-16 泰华智慧产业集团股份有限公司 一种分布式系统快速部署方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王瑶茜 ; 马林虹 ; .浅析软件开发测试体系核心模块组成.电子制作.2012,(10),全文. *

Also Published As

Publication number Publication date
CN110795356A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
CN110795356B (zh) 基于Ansible实现软件一键式部署与自动化测试的系统及其方法
US10732960B2 (en) Systems and methods for implementing gold image as a service (GIaaS)
JP5535484B2 (ja) 自動ソフトウェアテストフレームワーク
US9710367B1 (en) Method and system for dynamic test case creation and documentation to the test repository through automation
CN110532189A (zh) 一种持续集成系统、方法及装置
US20130174124A1 (en) Version numbering in single development and test environment
US20130174117A1 (en) Single development test environment
CN107733985B (zh) 一种云计算系统功能组件部署方法及装置
CN106708740B (zh) 脚本测试方法及装置
CN106681956A (zh) 一种大规模计算机集群的操作方法及装置
CN109753430B (zh) 一种地面数据处理系统的接口测试方法
CN113434158B (zh) 一种大数据组件的自定义管理方法、装置、设备及介质
US9043781B2 (en) Algorithm for automated enterprise deployments
CN108170588B (zh) 一种测试环境搭建方法及装置
EP2503449A2 (en) Single development test environment
EP3230865B1 (en) Recovery execution system using programatic generation of actionable workflows
CN107168735A (zh) 一种自动部署windows系统的方法
CN118227264A (zh) 基于Kubernetes实现持续集成的容器编排系统
CN114281367A (zh) 一种面向信创环境的大数据平台部署方法及系统
Talwar et al. Comparison of approaches to service deployment
CN116627437A (zh) Airflow服务的部署方法及装置、存储介质、计算机设备
CN116401102A (zh) 一种基于镜像的数据库备份方法、装置、设备及介质
US11829259B2 (en) Automated creation of variable data storage environments for application testing
EP2503450A2 (en) Version numbering in single development and test environment
Headrick et al. Automated configuration of modern ATE

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
GR01 Patent grant
GR01 Patent grant