CN111324538A - 一种基于动态路由的微服务并行测试环境管理方法 - Google Patents

一种基于动态路由的微服务并行测试环境管理方法 Download PDF

Info

Publication number
CN111324538A
CN111324538A CN202010106809.8A CN202010106809A CN111324538A CN 111324538 A CN111324538 A CN 111324538A CN 202010106809 A CN202010106809 A CN 202010106809A CN 111324538 A CN111324538 A CN 111324538A
Authority
CN
China
Prior art keywords
test
environment
version
service
dynamic routing
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
CN202010106809.8A
Other languages
English (en)
Other versions
CN111324538B (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.)
Shanghai Secco Travel Technology Service Co ltd
Original Assignee
Shanghai Secco Travel Technology Service 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 Shanghai Secco Travel Technology Service Co ltd filed Critical Shanghai Secco Travel Technology Service Co ltd
Priority to CN202010106809.8A priority Critical patent/CN111324538B/zh
Publication of CN111324538A publication Critical patent/CN111324538A/zh
Application granted granted Critical
Publication of CN111324538B publication Critical patent/CN111324538B/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/3664Environments for testing or debugging software
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request

Landscapes

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

Abstract

本发明公开了一种基于动态路由的微服务并行测试环境管理方法,包括如下步骤:S1)提供一套完整的测试环境用作测试主环境;S2)准备一个标准机器的资源池;S3)为多个测试项目从资源池分配机器;S4)通过RPC框架的动态路由功能,为所有分配到的机器动态写入路由规则,隔离并行项目之间冲突的模块,形成并行测试环境。本发明提供的基于动态路由的微服务并行测试环境管理方法,通过成本更低,隔离更有效的方法解决了测试环境资源紧张的问题,完全避免了传统意义上的测试环境因项目争抢带来的不稳定情况。

Description

一种基于动态路由的微服务并行测试环境管理方法
技术领域
本发明涉及一种项目测试环境管理方法,尤其涉及一种基于动态路由的微服务并行测试环境管理方法。
背景技术
互联网企业研发迭代速度快,需求多变,加之推行敏捷开发模式,从而让本就资源紧张的测试环境,显得更加紧缺。为了让研发团队快速迭代测试多个项目,企业不得不花费巨资,搭建多套全量测试环境,然而在微服务开发日益盛行的今天,企业业务拆分越来越细,全量微服务环境耗费的机器资源呈几何级增长,成本耗费巨大。
微服务是一种面向服务的架构(SOA)风格(Java开发人员最重要的技能之一),其中,应用程序被构建为多个不同的小型服务的集合而不是单个应用程序。与单个程序不同的是,微服务让你可以同时运行多个独立的应用程序,而这些独立的应用程序可以使用不同的编码或编程语言来创建。庞大而又复杂的应用程序可以由多个可自行执行的简单而又独立的程序所组成。这些较小的程序组合在一起,可以提供庞大的单程序所具备的所有功能。
为了解决传统的测试环境资源紧张和搭建困难的问题,有必要实现多项目的并行测试,满足微服务并行测试需求。
发明内容
本发明所要解决的技术问题是提供一种基于动态路由的微服务并行测试环境管理方法,能够实现多项目的并行测试,特别适用于微服务环境,既解决了测试环境最小成本的快速部署,又让多项目拥有独立互不干扰的测试环境,保障研发测试活动顺利开展。
本发明为解决上述技术问题而采用的技术方案是提供一种基于动态路由的微服务并行测试环境管理方法,包括如下步骤:S1)提供一套完整的测试环境用作测试主环境;S2)准备一个标准机器的资源池;S3)为多个测试项目从资源池分配机器;S4)通过RPC框架的动态路由功能,为所有分配到的机器动态写入路由规则,隔离并行项目之间冲突的模块,形成并行测试环境。
上述的基于动态路由的微服务并行测试环境管理方法,其中,所述步骤S3包括:当测试项目申请机器资源时,先根据测试项目的模块数,判断所需的资源数,并根据模块标签自动匹配到对应的资源池调度机器。
上述的基于动态路由的微服务并行测试环境管理方法,其中,所述步骤S4通过Consul写入路由规则,并给部署的模块染色隔离,同一个隔离环境中的模块拥有相同的染色标记ID,通过染色标记进行API级别的自动化测试,并进行日志的精准定位。
上述的基于动态路由的微服务并行测试环境管理方法,其中,所述步骤S4包括基于版本染色标记做集成测试,以及基于更高级别的项目染色标记做端到端测试;每个测试项目包括2层组织结构:项目-版本-模块,每个版本下部署有一个模块或多个互相有依赖的模块;所述步骤S4先针对版本分配最小单位的隔离环境,接着设置染色标记ID为版本ID,然后在版本隔离环境下做版本级的测试;当版本测试通过后,则以项目ID作为染色标记ID的隔离环境,进入项目集成阶段。
上述的基于动态路由的微服务并行测试环境管理方法,其中,所述步骤S4还包括:当测试项目上线后,版本更新到测试主环境,启动回收染色隔离环境动作,首先从Consul中清理染色标示路由指向配置,从Nginx中清理染色标示相关的域名指向配置,保证无新消息进入;然后对相应的机器进行清理操作:包括停服务,删除服务部署内容及服务日志,最后将清理完毕的机器放入资源池,整个回收过程在一个事务中管理,任何一个动作失败,则通过事务回滚实现整个回收操作的完整性。
本发明对比现有技术有如下的有益效果:本发明提供的基于动态路由的微服务并行测试环境管理方法,通过成本更低,隔离更有效的方法解决了测试环境资源紧张的问题,完全避免了传统意义上的测试环境因项目争抢带来的不稳定情况。
附图说明
图1为本发明基于动态路由的微服务并行测试环境搭建框架示意图;
图2为本发明基于动态路由的微服务并行测试环境管理流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
图1为本发明基于动态路由的微服务并行测试环境搭建框架示意图;图2为本发明基于动态路由的微服务并行测试环境管理流程示意图。
请参见图1和图2,本发明提供的基于动态路由的微服务并行测试环境管理方法,包括如下步骤:
步骤1:搭建一套完整的测试环境,用于测试主环境。
步骤2:准备一个标准机器的资源池;资源池支持虚拟主机资源和容器化资源,可以满足所有模块的部署需求,无需对模块做特殊的限定,按实际需求分配。
步骤3:为多个测试项目从资源池分配机器;当测试项目申请机器资源时,系统根据项目的模块数,判断所需的资源数,并根据模块标签自动匹配到对应的资源池调度机器;资源池的分配一致性通过队列实现。
步骤4:通过RPC框架的动态路由功能,为所有分配到的机器动态写入路由规则,隔离并行项目之间冲突的模块,形成并行测试环境;平台按所需动态分配机器资源,并自动写入符合consul标准的路由规则。Consul是HashiCorp公司的一个用于实现分布式系统的服务发现与配置工具。Consul内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案。
本发明通过测试并行平台登记每一测试项目所需部署的模块信息,并给部署的模块染色隔离,染色是一种直观的定义,是对隔离环境的唯一标记,同一个隔离环境中的模块,拥有相同的染色标记ID(也可以理解为隔离标记),通过染色标记可以做API级别的自动化测试,可以做日志的精准问题定位。
本发明使用版本ID染色标示最小范围的API集成测试;使用项目ID染色标示做更高级别的端到端测试。一般项目会有2层组织结构:项目-版本-模块,版本是模块集合的最小单元,也是提测、部署、发布的最小单位,一个版本下可以只有一个模块,也可以是互相有依赖的多个模块。本发明针对版本分配最小单位的隔离环境,版本ID就是染色标记ID,在版本隔离环境下可以做版本级的测试,比如服务端的联调,通常会建最小的版本,以便灵活验证,版本测试通过后,将进入项目集成阶段,这就有了以项目ID作为染色标记ID的隔离环境,即同一个部署,会有两套染色隔离环境存在,以支持不同类型测试的广度需求。
步骤5:当测试项目上线后,版本更新到测试主环境,启动回收染色隔离环境动作,首先从Consul中清理染色标示路由指向配置,从Nginx中清理染色标示相关的域名指向配置,保证无新消息进入;然后对相应的机器进行清理操作:包括停服务,删除服务部署内容及服务日志,最后将清理完毕的机器放入资源池,整个回收过程在一个事务中管理,任何一个动作失败,则通过事务回滚实现整个回收操作的完整性。Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
本发明提供的基于动态路由的并行测试环境管理方法,具有如下优点:1)本发明动态按需分配项目测试环境,极大节省了机器成本;2)本发明对并行测试项目做到了有效的隔离;3)本发明根据两级不同的染色位,解决了集成测试和端到端测试的互相影响和依赖的问题。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。

Claims (5)

1.一种基于动态路由的微服务并行测试环境管理方法,其特征在于,包括如下步骤:
S1)提供一套完整的测试环境用作测试主环境;
S2)准备一个标准机器的资源池,所述资源池支持虚拟主机资源和容器化资源,并可满足所有模块的部署需求;
S3)为多个测试项目从资源池分配机器,所述资源池通过队列实现分配一致性;
S4)通过RPC框架的动态路由功能,为所有分配到的机器动态写入路由规则,隔离并行项目之间冲突的模块,形成并行测试环境。
2.如权利要求1所述的基于动态路由的微服务并行测试环境管理方法,其特征在于,所述步骤S3包括:当测试项目申请机器资源时,先根据测试项目的模块数,判断所需的资源数,并根据模块标签自动匹配到对应的资源池调度机器。
3.如权利要求1所述的基于动态路由的微服务并行测试环境管理方法,其特征在于,所述步骤S4通过Consul写入路由规则,并给部署的模块染色隔离,同一个隔离环境中的模块拥有相同的染色标记ID,通过染色标记进行API级别的自动化测试,并进行日志的精准定位。
4.如权利要求3所述的基于动态路由的微服务并行测试环境管理方法,其特征在于,所述步骤S4包括基于版本染色标记做集成测试,以及基于更高级别的项目染色标记做端到端测试;每个测试项目包括2层组织结构:项目-版本-模块,每个版本下部署有一个模块或多个互相有依赖的模块;所述步骤S4先针对版本分配最小单位的隔离环境,接着设置染色标记ID为版本ID,然后在版本隔离环境下做版本级的测试;当版本测试通过后,则以项目ID作为染色标记ID的隔离环境,进入项目集成阶段。
5.如权利要求3所述的基于动态路由的微服务并行测试环境管理方法,其特征在于,所述步骤S4还包括:当测试项目上线后,版本更新到测试主环境,启动回收染色隔离环境动作,首先从Consul中清理染色标示路由指向配置,从Nginx中清理染色标示相关的域名指向配置,保证无新消息进入;然后对相应的机器进行清理操作:包括停服务,删除服务部署内容及服务日志,最后将清理完毕的机器放入资源池,整个回收过程在一个事务中管理,任何一个动作失败,则通过事务回滚实现整个回收操作的完整性。
CN202010106809.8A 2020-02-20 2020-02-20 一种基于动态路由的微服务并行测试环境管理方法 Active CN111324538B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010106809.8A CN111324538B (zh) 2020-02-20 2020-02-20 一种基于动态路由的微服务并行测试环境管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010106809.8A CN111324538B (zh) 2020-02-20 2020-02-20 一种基于动态路由的微服务并行测试环境管理方法

Publications (2)

Publication Number Publication Date
CN111324538A true CN111324538A (zh) 2020-06-23
CN111324538B CN111324538B (zh) 2024-03-08

Family

ID=71167108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010106809.8A Active CN111324538B (zh) 2020-02-20 2020-02-20 一种基于动态路由的微服务并行测试环境管理方法

Country Status (1)

Country Link
CN (1) CN111324538B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782519A (zh) * 2020-06-29 2020-10-16 中国工商银行股份有限公司 测试方法、装置和电子设备
CN111782520A (zh) * 2020-06-29 2020-10-16 中国工商银行股份有限公司 测试方法、装置和电子设备
CN111782518A (zh) * 2020-06-29 2020-10-16 中国工商银行股份有限公司 测试方法、装置和电子设备
CN112965700A (zh) * 2021-05-17 2021-06-15 太平金融科技服务(上海)有限公司 基于路由的微服务处理方法、装置、计算机设备和介质
CN114500306A (zh) * 2021-12-21 2022-05-13 上海赛可出行科技服务有限公司 一种基于维度的监控服务自动采样验证方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018000240A1 (en) * 2016-06-29 2018-01-04 Orange Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking
CN108399114A (zh) * 2018-03-21 2018-08-14 财付通支付科技有限公司 一种系统性能测试方法、装置及存储介质
CN109714263A (zh) * 2019-01-18 2019-05-03 北京邮电大学 一种在卫星通信网络中的路径选择方法及装置
US20190235993A1 (en) * 2018-01-30 2019-08-01 Red Hat, Inc. Generating an inner cloud environment within an outer cloud environment for testing a microservice application
CN110380930A (zh) * 2019-07-16 2019-10-25 腾讯科技(深圳)有限公司 一种测试方法、装置及服务器、计算机存储介质
CN110389903A (zh) * 2019-07-19 2019-10-29 中国工商银行股份有限公司 测试环境部署方法和装置、电子设备和可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018000240A1 (en) * 2016-06-29 2018-01-04 Orange Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking
US20190235993A1 (en) * 2018-01-30 2019-08-01 Red Hat, Inc. Generating an inner cloud environment within an outer cloud environment for testing a microservice application
CN108399114A (zh) * 2018-03-21 2018-08-14 财付通支付科技有限公司 一种系统性能测试方法、装置及存储介质
CN109714263A (zh) * 2019-01-18 2019-05-03 北京邮电大学 一种在卫星通信网络中的路径选择方法及装置
CN110380930A (zh) * 2019-07-16 2019-10-25 腾讯科技(深圳)有限公司 一种测试方法、装置及服务器、计算机存储介质
CN110389903A (zh) * 2019-07-19 2019-10-29 中国工商银行股份有限公司 测试环境部署方法和装置、电子设备和可读存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DICK C. A. BULTERMAN ET AL.: "Enabling Pro-Active User-Centered Recommender Systems: An Initial Evaluation", NINTH IEEE INTERNATIONAL SYMPOSIUM ON MULTIMEDIA WORKSHOPS (ISMW 2007), 21 March 2008 (2008-03-21), pages 1 - 6 *
刘超: "大规模微服务场景下灰度发布与流量染色实践", pages 27 - 31 *
夏鹏: "基于微服务架构的信用信息共享交换系统的设计与实现", 中国优秀硕士学位论文全文数据库信息科技辑, no. 07, 15 July 2019 (2019-07-15), pages 138 - 411 *
杨洋;杨家海;温皓森;: "基于时隙传输的数据中心路由算法设计", 软件学报, vol. 29, no. 8, 8 February 2018 (2018-02-08), pages 2485 - 2500 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782519A (zh) * 2020-06-29 2020-10-16 中国工商银行股份有限公司 测试方法、装置和电子设备
CN111782520A (zh) * 2020-06-29 2020-10-16 中国工商银行股份有限公司 测试方法、装置和电子设备
CN111782518A (zh) * 2020-06-29 2020-10-16 中国工商银行股份有限公司 测试方法、装置和电子设备
CN111782518B (zh) * 2020-06-29 2024-08-16 中国工商银行股份有限公司 测试方法、装置和电子设备
CN111782519B (zh) * 2020-06-29 2024-08-20 中国工商银行股份有限公司 测试方法、装置和电子设备
CN112965700A (zh) * 2021-05-17 2021-06-15 太平金融科技服务(上海)有限公司 基于路由的微服务处理方法、装置、计算机设备和介质
CN114500306A (zh) * 2021-12-21 2022-05-13 上海赛可出行科技服务有限公司 一种基于维度的监控服务自动采样验证方法
CN114500306B (zh) * 2021-12-21 2024-01-09 上海赛可出行科技服务有限公司 一种基于维度的监控服务自动采样验证方法

Also Published As

Publication number Publication date
CN111324538B (zh) 2024-03-08

Similar Documents

Publication Publication Date Title
CN111324538A (zh) 一种基于动态路由的微服务并行测试环境管理方法
US11301439B2 (en) System and method for object migration using waves
CN106021093A (zh) 一种测试用例复用的方法及系统
CN110162481A (zh) 一种软件测试方法、装置、设备以及存储介质
CN112395736B (zh) 一种分布交互仿真系统的并行仿真作业调度方法
US20140365667A1 (en) Integrated capacity and architecture design tool
US9542161B2 (en) Method and system for generating a source code for a computer program for execution and simulation of a process
Patwardhan Analysis of software delivery process shortcomings and architectural pitfalls
CN114818565A (zh) 基于python的仿真环境管理平台、方法、设备及介质
CN113626128A (zh) 视听媒体微服务第三方模块接入方法、系统、电子设备
CN113050929A (zh) 一种基于Hyperledger Fabric的智能合约开发运维一体化平台
US9009652B2 (en) Method and system for handling software design conflicts
Patni et al. Infrastructure as a code (IaC) to software defined infrastructure using Azure Resource Manager (ARM)
CN106384211A (zh) 一种快速构建工作流程的系统及其实现方法
CN109408376A (zh) 一种配置数据的生成方法、装置、设备及存储介质
Cagnin et al. PARFAIT: Towards a framework-based agile reengineering process
CN112508535B (zh) 一种基于jbpm的用于审批的工作流的改进方法及装置
US10417051B2 (en) Synchronizing shared resources in an order processing environment using a synchronization component
CN111090420A (zh) 基于任务功能线的软件项目管理方法及系统
CN111738689A (zh) 一种demo项目交付方法及系统
Wang et al. Design structure matrix
Poniszewska-Marańda et al. Mechanisms for Transition from Monolithic to Distributed Architecture in Software Development Process
Paul et al. A Conceptual Framework for Interoperable e-Government System in India
Gao et al. Managing problems for global software production–experience and lessons
CN117827170A (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