CN113110992A - 一种管理测试环境的方法 - Google Patents

一种管理测试环境的方法 Download PDF

Info

Publication number
CN113110992A
CN113110992A CN202110368259.1A CN202110368259A CN113110992A CN 113110992 A CN113110992 A CN 113110992A CN 202110368259 A CN202110368259 A CN 202110368259A CN 113110992 A CN113110992 A CN 113110992A
Authority
CN
China
Prior art keywords
warehouse
code
branch
database
test environment
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.)
Granted
Application number
CN202110368259.1A
Other languages
English (en)
Other versions
CN113110992B (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.)
Sichuan XW Bank Co Ltd
Original Assignee
Sichuan XW Bank 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 Sichuan XW Bank Co Ltd filed Critical Sichuan XW Bank Co Ltd
Priority to CN202110368259.1A priority Critical patent/CN113110992B/zh
Publication of CN113110992A publication Critical patent/CN113110992A/zh
Application granted granted Critical
Publication of CN113110992B publication Critical patent/CN113110992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3684Test management for test design, e.g. generating new test cases
    • 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
    • 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)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及软件开发和软件测试领域,尤其是一种管理测试环境的方法,包括:步骤1:对系统代码仓库的分支进行命名规范及新建规则设定;步骤2:对代码目录结构进行规范;步骤3:获取上线窗口有代码改动的仓库;步骤4:基于步骤3获得的仓库对测试环境进行自动化部署。本发明的有益效果如下:本发明通过技术手段获得系统的改动仓库及配置信息改动并依据获得的信息自动化部署测试环境。本发明通过制定仓库命名及文件夹命名标准并实施后,通过程序自动分析与识别有代码变更及有数据库及配置变更仓库,然后通过自动调用对应的仓库部署任务,实现了测试环境的自动化部署与维护,解决了通过人工收集有变动的仓库存在的低效与易错的问题。

Description

一种管理测试环境的方法
技术领域
本发明涉及件开发和软件测试领域,尤其是一种管理测试环境的方法。
背景技术
在进行多系统全链路测试前,需要对测试环境进行系统版本部署和对系统新增/变动配置项进行配置,并数对据库/消息队列等各种中间件及数据库进行更新。若长链路的系统非常多,上线窗口的功能比较多,很多系统有代码改动的时候,通过人工收集每个系统有哪些代码仓库有代码改动及收集是否有数据库及各种配置的改动会非常耗时,然后汇总后再进行版本部署与配置更新,也比较耗时。如果人工漏收集了特定系统的改动,测试环境进行对应的部署,会造成长链路调通测试不能通过的情况,然后再花费人力进行问题定位,会耗费很大的人力。
综上所述,现有技术耗时耗力,还容易出错,因此本发明提出了一种管理测试环境的方法解决此问题。
发明内容
针对上述现有技术中存在的不足,本发明的目的在于提供一种管理测试环境的方法解决现有技术耗时耗力,还容易出错的问题。
为解决上述问题,本发明公开了一种管理测试环境的方法,包括:
步骤1:对系统代码仓库的分支进行命名规范及新建规则设定;
步骤2:对代码目录结构进行规范;
步骤3:获取上线窗口有代码改动的仓库;
步骤4:基于步骤3获得的仓库对测试环境进行自动化部署。
作为优选:步骤1具体包括下述方法:
1.1对系统代码仓库的命名进行统一规范,仓库命名规范为:分支用途+ 上线窗口;分支用途主要分为feature分支,sprint分支,release分支, hotfix分支;上线窗口为根据版本上线时间规划设定;
1.2对新建代码仓库的命名进行规则设定,只有符合步骤1.1命名规范的代码仓库才能够被新建。
作为优选:步骤2具体包括下述方法:
2.1在代码根目录创建src及script目录,src放置代码相关文件, script目录放置配置及数据库相关文件;script目录下新建文件夹,包括 dbscript,configscrit和mqscript,用于保存新增、修改和删除的数据库文件及配置项文件;
2.2如果在某个上线窗口,有需要新增的数据库或者配置项,则在 dbscript,configscrit和mqscript文件夹下新建以上线窗口时间为名字的文件夹,并将数据库或配置项文件放在对应的文件夹。
作为优选:步骤3具体包括下述方法:
3.1获取所有系统的代码的git仓库;
3.2通过git clone下载所有仓库代码;
3.3递归所有仓库代码主目录,运行git branch-a>branch_list.txt,获得每个仓库的所有分支名,并保存到txt文件;
3.4递归所有仓库代码主目录,并解析步骤3.3生成的包含所有分支名的branch_list.txt文件;如果版本到有满足步骤1.1规则的分支名,将该分支名进行步解析,获得上线窗口时间,并将仓库地址,仓库名,仓库分支和仓库上线日期保存到数据库作为一条记录;
3.5通过在数据库搜索上线窗口日期,就可以查询在上线窗口日期有新建分支的数据记录,通过查询到如上的数据记录,进而获得所有的仓库名清单,这些仓库名清单就代表在指定的上线窗口有代码改动的代码仓库;
3.6获得上线窗口有数据库或配置文件变更的仓库,标识并保持到数据库,依据步骤3.5获得的有代码改动的仓库名清单,进入对应的仓库代码主目录,遍历主目录下的script的目录下的dbscript,configscrit和mqscript 文件夹,然后判断是否有以特定上线窗口时间命名的文件夹,如果有就表示该仓库有数据库或者配置有变更,并将是否有变动的信息保存到数据库。
作为优选:步骤4具体包括下述方法:
4.1基于步骤3.5获得有代码变动的仓库清单,通过触发对应的仓库自动部署任务,部署上线窗口的分支;
4.2基于步骤3.5获得有代码变动的仓库清单,然后进一步查询步骤3.6 保存的数据记录,确定是否有数据库或者配置文件更新;
4.3依据步骤4.2获得的有数据库或者配置更新的仓库清单,调用对应仓库的自动部署数据库或者配置文件的任务,完成数据库和配置项的部署,最终完成测试环境的完成自动化部署与维护。
由于采用上述技术方案,本发明有着如下有益效果:本发明通过技术手段获得系统的改动仓库及配置信息改动并依据获得的信息自动化部署测试环境。本发明通过制定仓库命名及文件夹命名标准并实施后,通过程序自动分析与识别有代码变更及有数据库及配置变更仓库,然后通过自动调用对应的仓库部署任务,实现了测试环境的自动化部署与维护,解决了通过人工收集有变动的仓库存在的低效与易错的问题。
具体实施方式
以下对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。
为解决上述问题,本发明公开了一种管理测试环境的方法,包括:
步骤1:对系统代码仓库的分支进行命名规范及新建规则设定;
1.1对所有代码仓库的命名进行统一规范,仓库命名规范为:分支用途+ 上线窗口;分支用途主要分为feature分支,sprint分支,release分支和 hotfix分支;上线窗口为根据版本上线时间规划设定,如以 20200912,20210121等基于时间标识的命名。最后的分支命名为: sprint20200121,release20200121;
1.2对新建代码仓库的命名进行规则设定,只有符合步骤1.1命名规范的代码仓库才能够被新建,其它仓库新建将会被拒绝。
步骤2:对代码目录结构进行规范;
2.1在代码根目录创建src及script目录.src放置代码相关文件, script目录放置配置及数据库相关文件;script目录下新建 dbscript,configscrit和mqscript等文件夹,用于保存新增、修改、删除的数据库文件及配置项文件;
2.2如果在某个上线窗口,有需要新增的数据库或者配置项,则在 dbscript,configscrit,mqscript等文件夹下新建以上线窗口时间为名字的文件夹,并将数据库或配置项文件放在对应的文件夹。举例,如果上线窗口 20200121有数据库的新增,则在dbscript目录下新建20200121目录,然后将对应的数据库新增文件db.sql放到20200121目录,最后形成的目录树如:dbscript/20200121/db.sql。
步骤3:获取上线窗口有代码改动的仓库
3.1获取所有系统的代码的git仓库;
3.2通过git clone下载所有仓库代码;
3.3递归所有仓库代码主目录,运行git branch-a>branch_list.txt,获得每个仓库的所有分支名,并保存到txt文件;
3.4递归所有仓库代码主目录,并解析步骤3.3生成的包含所有分支名的branch_list.txt文件;如果版本到有满足步骤1.1规则的分支名,如 sprint20200121,将该分支名进行步解析,获得上线窗口时间,如20200121,并将仓库地址,仓库名,仓库分支,仓库上线日期保存到数据库作为一条记录。形成如下数据库数据记录,如
https://github.com/alibaba/jvm-sandbox.git| jvm-sandbox|sprint20200121|20200121
https://github.com/xwbank/xw-testline.git| /xw-testline|sprint20200121|20200121
https://github.com/xwbank/xw-testline.git| /xw-testline|sprint20190121|20190121;
3.5通过在数据库搜索上线窗口日期如20200121,就可以查询在上线窗口20200121有新建分支的数据记录,如
https://github.com/alibaba/jvm-sandbox.git| jvm-sandbox|sprint20200121|20200121
https://github.com/xwbank/xw-testline.git| /xw-testline|sprint20200121|20200121
通过查询到如上的数据记录,进而获得所有的仓库名清单,这些仓库名清单就代表在指定的上线窗口有代码改动的代码仓库。
3.6获得上线窗口有数据库或配置文件变更的仓库,标识并保持到数据库,依据步骤3.5获得的有代码改动的仓库名清单,进入对应的仓库代码主目录,遍历主目录下的script的目录下的dbscript,configscrit,mqscript 等文件夹,然后判断是否有以特定上线窗口时间命名的文件夹,如果有就表示该仓库有数据库或者配置有变更,将是否有变动的信息保存到数据库。
步骤4:基于步骤3获得的仓库对测试环境进行自动化部署;
4.1基于步骤3.5获得有代码变动的仓库清单,通过触发对应的仓库自动部署任务,部署上线窗口的分支;
4.2基于步骤3.5获得有代码变动的仓库清单,然后进一步查询步骤3.6 保存的数据记录,确定是否有数据库或者配置文件更新;
4.3依据步骤4.2获得的有数据库或者配置更新的仓库清单,调用对应仓库的自动部署数据库或者配置文件的任务,完成数据库和配置项的部署,最终完成测试环境的完成自动化部署与维护。
本发明通过制定仓库的分支命名规则及控制新建仓库权限,使仓库的命名只能按照特定的规则新建,从而统一规范了代码仓库名。通过将配置文件及数据库文件放置到固定文件夹,且根据上线窗口日期新建文件夹并保持对应窗口的数据库文件及配置文件,实现了配置及数据库文件的保存的标准化。
本发明通过获得每个仓库所有分支名,并按照特定的规则进行解析,获得上线窗口有代码变动的仓库名,并在获得变动的仓库的文件目录下,通过判断特定文件夹(dbsrcipt)的特定目录(dbscript、confscript、mqscript) 下是否有日期命名的文件夹(20200121,20211121)来判断是否有数据库及配置更新并标识。
本发明通过获得到的上线窗口有代码变动的仓库及有变动的数据库及配置,并通过调用对应的自动部署任务,实现测试环境的自动化部署与维护。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。

Claims (5)

1.一种管理测试环境的方法,其特征在于,包括以下步骤:
步骤1:对系统代码仓库的分支进行命名规范及新建规则设定;
步骤2:对代码目录结构进行规范;
步骤3:获取上线窗口有代码改动的仓库;
步骤4:基于步骤3获得的仓库对测试环境进行自动化部署。
2.根据权利要求1所述的一种管理测试环境的方法,其特征在于:步骤1具体包括下述方法:
1.1对系统代码仓库的命名进行统一规范,仓库命名规范为:分支用途+上线窗口;分支用途主要分为feature分支,sprint分支,release分支,hotfix分支;上线窗口为根据版本上线时间规划设定;
1.2对新建代码仓库的命名进行规则设定,只有符合步骤1.1命名规范的代码仓库才能够被新建。
3.根据权利要求2所述的一种管理测试环境的方法,其特征在于:步骤2具体包括下述方法:
2.1在代码根目录创建src及script目录,src放置代码相关文件,script目录放置配置及数据库相关文件;script目录下新建文件夹,包括dbscript,configscrit和mqscript,用于保存新增、修改和删除的数据库文件及配置项文件;
2.2如果在某个上线窗口,有需要新增的数据库或者配置项,则在dbscript,configscrit和mqscript文件夹下新建以上线窗口时间为名字的文件夹,并将数据库或配置项文件放在对应的文件夹。
4.根据权利要求3所述的一种管理测试环境的方法,其特征在于:步骤3具体包括下述方法:
3.1获取所有系统的代码的git仓库;
3.2通过git clone下载所有仓库代码;
3.3递归所有仓库代码主目录,运行git branch-a>branch_list.txt,获得每个仓库的所有分支名,并保存到txt文件;
3.4递归所有仓库代码主目录,并解析步骤3.3生成的包含所有分支名的branch_list.txt文件;如果版本到有满足步骤1.1规则的分支名,将该分支名进行步解析,获得上线窗口时间,并将仓库地址,仓库名,仓库分支和仓库上线日期保存到数据库作为一条记录;
3.5通过在数据库搜索上线窗口日期,就可以查询在上线窗口日期有新建分支的数据记录,通过查询到如上的数据记录,进而获得所有的仓库名清单,这些仓库名清单就代表在指定的上线窗口有代码改动的代码仓库;
3.6获得上线窗口有数据库或配置文件变更的仓库,标识并保持到数据库,依据步骤3.5获得的有代码改动的仓库名清单,进入对应的仓库代码主目录,遍历主目录下的script的目录下的dbscript,configscrit和mqscript文件夹,然后判断是否有以特定上线窗口时间命名的文件夹,如果有就表示该仓库有数据库或者配置有变更,并将是否有变动的信息保存到数据库。
5.根据权利要求4所述的一种管理测试环境的方法,其特征在于:步骤4具体包括下述方法:
4.1基于步骤3.5获得有代码变动的仓库清单,通过触发对应的仓库自动部署任务,部署上线窗口的分支;
4.2基于步骤3.5获得有代码变动的仓库清单,然后进一步查询步骤3.6保存的数据记录,确定是否有数据库或者配置文件更新;
4.3依据步骤4.2获得的有数据库或者配置更新的仓库清单,调用对应仓库的自动部署数据库或者配置文件的任务,完成数据库和配置项的部署,最终完成测试环境的完成自动化部署与维护。
CN202110368259.1A 2021-04-06 2021-04-06 一种管理测试环境的方法 Active CN113110992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110368259.1A CN113110992B (zh) 2021-04-06 2021-04-06 一种管理测试环境的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110368259.1A CN113110992B (zh) 2021-04-06 2021-04-06 一种管理测试环境的方法

Publications (2)

Publication Number Publication Date
CN113110992A true CN113110992A (zh) 2021-07-13
CN113110992B CN113110992B (zh) 2023-06-06

Family

ID=76714069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110368259.1A Active CN113110992B (zh) 2021-04-06 2021-04-06 一种管理测试环境的方法

Country Status (1)

Country Link
CN (1) CN113110992B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254356A (zh) * 2021-07-16 2021-08-13 浩鲸云计算科技股份有限公司 一种基于Knative的测试环境管理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829399A (zh) * 2018-04-13 2018-11-16 杭州朗和科技有限公司 一种应用的测试方法、测试装置、介质和计算设备
CN109725911A (zh) * 2017-10-31 2019-05-07 北京国双科技有限公司 一种多环境项目部署方法、装置、存储介质及处理器
CN109840194A (zh) * 2017-11-28 2019-06-04 网宿科技股份有限公司 一种配置文件的检测方法及系统
US20200019411A1 (en) * 2018-07-12 2020-01-16 Bank Of America Corporation Resource configuration migration and implementation utilizing multiple branches
CN111444080A (zh) * 2019-01-17 2020-07-24 北京京东尚科信息技术有限公司 持续测试方法和装置
CN111679965A (zh) * 2020-04-23 2020-09-18 平安国际智慧城市科技股份有限公司 自动化测试方法、装置、计算机设备和存储介质
CN112506525A (zh) * 2020-12-03 2021-03-16 中国人寿保险股份有限公司 持续集成和持续交付方法、装置、电子设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725911A (zh) * 2017-10-31 2019-05-07 北京国双科技有限公司 一种多环境项目部署方法、装置、存储介质及处理器
CN109840194A (zh) * 2017-11-28 2019-06-04 网宿科技股份有限公司 一种配置文件的检测方法及系统
CN108829399A (zh) * 2018-04-13 2018-11-16 杭州朗和科技有限公司 一种应用的测试方法、测试装置、介质和计算设备
US20200019411A1 (en) * 2018-07-12 2020-01-16 Bank Of America Corporation Resource configuration migration and implementation utilizing multiple branches
CN111444080A (zh) * 2019-01-17 2020-07-24 北京京东尚科信息技术有限公司 持续测试方法和装置
CN111679965A (zh) * 2020-04-23 2020-09-18 平安国际智慧城市科技股份有限公司 自动化测试方法、装置、计算机设备和存储介质
CN112506525A (zh) * 2020-12-03 2021-03-16 中国人寿保险股份有限公司 持续集成和持续交付方法、装置、电子设备及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
FABIAN TRAUTSCH等: "Are unit and integration test definitions still valid for modern Java projects? An empirical study on open-source projects" *
LIANG YU等: "Utilising CI environment for efficient and effective testing of NFRs" *
桂婷婷: "基于持续集成的自动化测试系统构建" *
黎存金: "SVN与协作平台的集成研究" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254356A (zh) * 2021-07-16 2021-08-13 浩鲸云计算科技股份有限公司 一种基于Knative的测试环境管理方法
CN113254356B (zh) * 2021-07-16 2021-10-29 浩鲸云计算科技股份有限公司 一种基于Knative的测试环境管理方法

Also Published As

Publication number Publication date
CN113110992B (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
US20200311098A1 (en) Mapping instances of a dataset within a data management system
CN110321254B (zh) 软件版本回滚方法、装置、服务器及存储介质
CN110879813B (zh) 一种基于二进制日志解析的MySQL数据库增量同步实现方法
US20040044996A1 (en) System and method for verifying installed software
CN102737020A (zh) 一种初始化多租户数据库的方法和装置
CN112631607B (zh) 一种检测python环境中依赖冲突的方法
CN107368513B (zh) 客户端数据库更新的方法及装置
CN115794839B (zh) 基于Php+Mysql体系的数据归集方法、计算机设备及存储介质
CN113110992B (zh) 一种管理测试环境的方法
CN111385365A (zh) 上报数据的处理方法、装置、计算机设备和存储介质
CN114169860A (zh) 企业组织结构同步方法
CN108984194A (zh) 一种基于4g网络的汽车远程迭代系统
CN111177239B (zh) 一种基于hdp大数据集群的统一日志处理方法及系统
CN104636471A (zh) 一种程序代码的查找方法及装置
CN109117173B (zh) 一种基于项目版本开发的配制文件管理方法
CN112817931B (zh) 一种增量版本文件的生成方法及装置
CN111737316A (zh) 一种工程清单查询方法、装置、计算机设备和存储介质
CN112099806A (zh) 一种基于CICD的sql自动化审核上线及执行方法
CN112016093A (zh) 一种用于漏洞标记的方法
CN117348916B (zh) 脚本生成方法、装置、设备及存储介质
CN112148459B (zh) 节点关联数据的处理方法、装置、可读介质以及设备
CN113778997B (zh) 一种数据库版本管理方法、系统及设备
CN113688147B (zh) 一种数据处理方法及系统
US7856455B2 (en) System, method and program product for generating triggers for a relational database
CN112925856B (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
GR01 Patent grant
GR01 Patent grant