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

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

Info

Publication number
CN111324538B
CN111324538B CN202010106809.8A CN202010106809A CN111324538B CN 111324538 B CN111324538 B CN 111324538B CN 202010106809 A CN202010106809 A CN 202010106809A CN 111324538 B CN111324538 B CN 111324538B
Authority
CN
China
Prior art keywords
test
environment
version
modules
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.)
Active
Application number
CN202010106809.8A
Other languages
English (en)
Other versions
CN111324538A (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

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 (3)

1.一种基于动态路由的微服务并行测试环境管理方法,其特征在于,包括如下步骤:
S1)提供一套完整的测试环境用作测试主环境;
S2)准备一个标准机器的资源池,所述资源池支持虚拟主机资源和容器化资源,并可满足所有模块的部署需求;
S3)为多个测试项目从资源池分配机器,所述资源池通过队列实现分配一致性;
S4)通过RPC框架的动态路由功能,为所有分配到的机器动态写入路由规则,隔离并行项目之间冲突的模块,形成并行测试环境;
所述步骤S4通过Consul写入路由规则,并给部署的模块染色隔离,同一个隔离环境中的模块拥有相同的染色标记ID,通过染色标记进行API级别的自动化测试,并进行日志的精准定位;
所述步骤S4包括基于版本染色标记做集成测试,以及基于更高级别的项目染色标记做端到端测试;每个测试项目包括2层组织结构:项目-版本-模块,每个版本下部署有一个模块或多个互相有依赖的模块;所述步骤S4先针对版本分配最小单位的隔离环境,接着设置染色标记ID为版本ID,然后在版本隔离环境下做版本级的测试;当版本测试通过后,则以项目ID作为染色标记ID的隔离环境,进入项目集成阶段。
2.如权利要求1所述的基于动态路由的微服务并行测试环境管理方法,其特征在于,所述步骤S3包括:当测试项目申请机器资源时,先根据测试项目的模块数,判断所需的资源数,并根据模块标签自动匹配到对应的资源池调度机器。
3.如权利要求1所述的基于动态路由的微服务并行测试环境管理方法,其特征在于,所述步骤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 CN111324538A (zh) 2020-06-23
CN111324538B true 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)

Families Citing this family (5)

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

Citations (5)

* 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 北京邮电大学 一种在卫星通信网络中的路径选择方法及装置
CN110380930A (zh) * 2019-07-16 2019-10-25 腾讯科技(深圳)有限公司 一种测试方法、装置及服务器、计算机存储介质
CN110389903A (zh) * 2019-07-19 2019-10-29 中国工商银行股份有限公司 测试环境部署方法和装置、电子设备和可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628290B2 (en) * 2018-01-30 2020-04-21 Red Hat, Inc. Generating an inner cloud environment within an outer cloud environment for testing a microservice application

Patent Citations (5)

* 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 北京邮电大学 一种在卫星通信网络中的路径选择方法及装置
CN110380930A (zh) * 2019-07-16 2019-10-25 腾讯科技(深圳)有限公司 一种测试方法、装置及服务器、计算机存储介质
CN110389903A (zh) * 2019-07-19 2019-10-29 中国工商银行股份有限公司 测试环境部署方法和装置、电子设备和可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Enabling Pro-Active User-Centered Recommender Systems: An Initial Evaluation;Dick C. A. Bulterman et al.;Ninth IEEE International Symposium on Multimedia Workshops (ISMW 2007);20080321;1-6 *
基于微服务架构的信用信息共享交换系统的设计与实现;夏鹏;中国优秀硕士学位论文全文数据库信息科技辑;20190715(第07期);I138-411 *
基于时隙传输的数据中心路由算法设计;杨洋;杨家海;温皓森;;软件学报;20180208;第29卷(第8期);2485-2500 *

Also Published As

Publication number Publication date
CN111324538A (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
CN111324538B (zh) 一种基于动态路由的微服务并行测试环境管理方法
US8843561B2 (en) Common cluster model for configuring, managing, and operating different clustering technologies in a data center
US6816902B1 (en) Method and system for improving workflow performance in workflow application systems
US8117611B2 (en) Method, system, and program product for deploying a platform dependent application in a grid environment
US8990820B2 (en) Runtime task with inherited dependencies for batch processing
US20070283347A1 (en) System and method for collaborative hosting of applications, virtual machines, and data objects
US20070245356A1 (en) Method and apparatus for a support platform
US20080282242A1 (en) Simulation management within a grid infrastructure
Shafabakhsh et al. Evaluating the Impact of Inter Process Communication in Microservice Architectures.
CN111611089A (zh) 一种基于异步的声明式的微服务调度方法
US9542161B2 (en) Method and system for generating a source code for a computer program for execution and simulation of a process
US20100023577A1 (en) Method, system and article for mobile metadata software agent in a data-centric computing environment
US8930967B2 (en) Shared versioned workload partitions
Chen et al. MORE: A model-driven operation service for cloud-based IT systems
CN114840222A (zh) 基于esop系统的灰度发布方法及相关设备
US20060293877A1 (en) Method and apparatus for uni-lingual workflow usage in multi-lingual data center environments
US20240028323A1 (en) Simulation of nodes of container orchestration platforms
CN109450913A (zh) 一种基于策略的多节点注册调度方法
CN106843851A (zh) 基于ActiveMQ异构类加载器反序列化的实现方法及装置
US20100122254A1 (en) Batch and application scheduler interface layer in a multiprocessor computing environment
US20030236812A1 (en) Task submission systems and methods for a distributed test framework
Lawson Application machines: an approach to realizing understandable systems
US20240345830A1 (en) Orchestration of software releases on a cloud platform across stagger groups
US11921603B2 (en) Automated interoperational tracking in computing systems
Boumhamdi et al. Yet another approach for dynamic web service composition

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