基于微服务架构的分布式自动化测试装置、方法、设备及介质制造方法及图纸

技术编号:34523601 阅读:20 留言:0更新日期:2022-08-13 21:13
本发明专利技术提供一种基于微服务架构的分布式自动化测试装置、方法、设备及介质,首先获取管理POD和执行POD;然后将管理POD部署在虚拟机或服务器中,并通过管理POD在测试环境中对多个执行POD进行分布式部署;以及利用管理POD调用每个执行POD提供的接口服务,并基于接口服务向对应的执行POD发起请求或指令;再获取并显示每个执行POD执行对应请求或指令后的自动化测试结果。本发明专利技术采用微服务方式,先在虚拟机或服务器中部署一个管理POD,然后再利用这个管理POD将多个执行POD分布式部署在一个或多个测试环境中,使得本申请具有分布式的特征。本发明专利技术通过对多个执行POD进行分布式部署,可以解决现有技术中自动化测试框架是独立运行,中心化程度高,定制改造成本大的问题。定制改造成本大的问题。定制改造成本大的问题。

【技术实现步骤摘要】
基于微服务架构的分布式自动化测试装置、方法、设备及介质


[0001]本专利技术涉及计算机
,特别是涉及一种基于微服务架构的分布式自动化测试装置、方法、计算机设备及计算机可读介质。

技术介绍

[0002]当前各类自动化测试框架或装置(以下简称自动化框架)均运行在独立服务器或虚拟机上,以便提供对外服务。但是,这种方式存在以下缺陷:
[0003]1、在对大规模、分布式微服务进行自动化测试时,各类微服务可以根据实际负载进行弹性伸缩以实现资源的高利用率;但是由于自动化框架无法弹性,必须提前按照最大规格部署框架,或者每次测试前需要人工调整框架运行规模,导致硬件资源利用率低,人工成本过高。
[0004]2、由于自动化框架运行于独立服务器,和微服务所在服务器集群存在物理层隔离,受网卡传输速度、交换机吞吐量、微服务服务器集群分别在不同省市等影响,导致无法很好的进行性能测试,从而出现网络抖动,极大影响测试精度,导致测试精度下降。
[0005]3、自动化测试手段受限。由于微服务运行在Kubernetes集群,自动化框架无法直接进入具体某一个POD(POD,是kubernetes创建或部署的最小单位)进行测试,如无法直接在POD中执行命令,调用POD内某些服务;导致只能通过间接的手段进入POD,如通过某端口ssh协议连接进入POD,但间接进入的手段容易存在容器安全问题。
[0006]4、如今各类基于微服务架构下的软件或产品,生产、测试环境通常同时存在多个迭代版本,且不同版本需要的框架功能不同甚至有冲突。而中心化的自动化框架显然无法很好的支撑多个迭代版本,只能完全依赖编写对应自动化脚本实现不同迭代版本的同时测试。一旦中心化的基础框架或进行升级,或依赖包版本太高、太低导致脚本不匹配,或因崩溃或某个服务器网络拥堵导致线程池所有线程挂死,都将导致全部的自动化测试任务失败。即自动化框架具体中心化属性,传统自动化框架无法进行多副本、弹性伸缩、服务熔断、版本控制、服务回退等功能,且不易修改,缺失灵活性:对自动化框架的修改和功能新增,通常会牵一发而动全身。
[0007]所以,由于现有技术中的自动化测试框架是独立运行,中心化程度高,其定制改造成本大,且无法弹性伸缩,从而与各个微服务存在物理或逻辑上的隔离,进而在性能测试、接口测试、微服务侵入式测试等方面无法达到较好的效果。

技术实现思路

[0008]鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种基于微服务架构的分布式自动化测试装置、方法、设备及介质,用于解决现有技术中微服务架构下自动化测试存在的问题。
[0009]为实现上述目的及其他相关目的,本专利技术提供一种基于微服务架构的分布式自动化测试装置,包括有:第一容器组合和第二容器组合;
[0010]所述第一容器组合部署在虚拟机或服务器中,且所述第一容器组合用于在测试环境中分布式部署多个第二容器组合,并调用所述第二容器组合的接口服务,向每个第二容器组合发起请求或指令,以及显示每个第二容器组合执行所述请求或指令后的自动化测试结果;
[0011]所述第二容器组合用于提供接口服务,接收并执行所述第一容器组合发起的请求或指令,生成对应的自动化测试结果。
[0012]可选地,所述第一容器组合包括:
[0013]部署模块,用于在测试环境中分布式部署所述多个第二容器组合,并对每个第二容器组合进行心跳保活,实时监控每个第二容器组合的运行状态;
[0014]指令模块,用于调用每个第二容器组合提供的接口服务,并基于所述接口服务向对应的第二容器组合发起请求或指令;
[0015]收集模块,用于收集每个第二容器组合内部的测试报告、运行日志和容器组合健康情况,并显示每个第二容器组合执行所述请求或指令后的自动化测试结果;
[0016]第一存储模块,分别与所述部署模块、指令模块、收集模块连接,用于存储所述部署模块、指令模块和收集模块中的数据。
[0017]可选地,所述部署模块在测试环境中分布式部署某个第二容器组合后,还包括:
[0018]根据所述第一存储模块中存储的所述某个第二容器组合的运行日志,判断所述某个第二容器组合的故障状态;
[0019]若所述某个第二容器组合存在故障,则获取所述某个第二容器组合的副本,并在测试环境中分布式部署所述某个第二容器组合的副本;
[0020]若所述某个第二容器组合不存在故障,则在测试环境中分布式部署所述某个第二容器组合。
[0021]可选地,所述指令模块基于所述接口服务向某个第二容器组合发起请求或指令后,还包括:
[0022]根据所述第一存储模块中存储的所述某个第二容器组合的运行日志,判断所述某个第二容器组合的故障状态;
[0023]若所述某个第二容器组合存在故障,则停止向所述某个第二容器组合发起请求或指令;
[0024]若所述某个第二容器组合不存在故障,则基于所述某个第二容器组合的接口服务,持续向所述某个第二容器组合发起请求或指令。
[0025]可选地,若所述测试环境存在多个,则所述部署模块在多个测试环境中分布式部署第二容器组合的过程包括:
[0026]从所述多个测试环境中选择一个测试环境,并判断所选择的测试环境是否存在目标测试;
[0027]若存在目标测试,则获取预先输入的策略类型,并根据所述策略类型调度其余测试环境中的所有空闲集群,并在所有空闲集群中部署一个或多个第二容器组合,以及利用完成部署后所有第二容器组合进行目标测试;
[0028]若不存在目标测试,则从所述多个测试环境中另外选择一个测试环境进行目标测试判断;
[0029]其中,所述目标测试包括以下至少之一:需求增长业务测试、性能测试、热门时间段测试;预先输入的策略类型包括以下至少之一:定时高效策略、定时零占用策略、指标高效策略、指标零占用策略、定时与指标进行混合的高效策略、定时与指标进行混合的零占用策略。
[0030]可选地,所述装置还包括有:服务回退模块,所述服务回退模块用于接收外部输入的回退指令或回退请求,并根据所述回退指令或回退请求将当前版本下的第二容器组合回退至指定版本。
[0031]可选地,所述第二容器组合包括:
[0032]接口服务模块,用于提供接口服务,并接收所述第一容器组合调用所述接口服务后发起的请求或指令;
[0033]运行模块,用于加载预装的自动化框架,并基于所述加载的自动化框架执行所接收的请求或指令;
[0034]报告模块,用于整合所述运行模块执行所述请求或指令时的数据,生成对应的自动化测试结果;
[0035]日志模块,用于生成所述接口服务模块、运行模块和报告模块的运行日志;
[0036]第二存储模块,分别与所述接口服务模块、运行模块、报告模块、日志模块连接,用于存储所述接口服务模块、运行模块、报告模块和日志模块中的数据。
[0037]可选地,所述第一容器组合为管理POD,所述第二容器组合为执行POD。
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于微服务架构的分布式自动化测试装置,其特征在于,所述装置包括有:第一容器组合和第二容器组合;所述第一容器组合部署在虚拟机或服务器中,且所述第一容器组合用于在测试环境中分布式部署多个第二容器组合,并调用所述第二容器组合的接口服务,向每个第二容器组合发起请求或指令,以及显示每个第二容器组合执行所述请求或指令后的自动化测试结果;所述第二容器组合用于提供接口服务,接收并执行所述第一容器组合发起的请求或指令,生成对应的自动化测试结果。2.根据权利要求1所述的基于微服务架构的分布式自动化测试装置,其特征在于,所述第一容器组合包括:部署模块,用于在测试环境中分布式部署所述多个第二容器组合,并对每个第二容器组合进行心跳保活,实时监控每个第二容器组合的运行状态;指令模块,用于调用每个第二容器组合提供的接口服务,并基于所述接口服务向对应的第二容器组合发起请求或指令;收集模块,用于收集每个第二容器组合内部的测试报告、运行日志和容器组合健康情况,并显示每个第二容器组合执行所述请求或指令后的自动化测试结果;第一存储模块,分别与所述部署模块、指令模块、收集模块连接,用于存储所述部署模块、指令模块和收集模块中的数据。3.根据权利要求2所述的基于微服务架构的分布式自动化测试装置,其特征在于,所述部署模块在测试环境中分布式部署某个第二容器组合后,还包括:根据所述第一存储模块中存储的所述某个第二容器组合的运行日志,判断所述某个第二容器组合的故障状态;若所述某个第二容器组合存在故障,则获取所述某个第二容器组合的副本,并在测试环境中分布式部署所述某个第二容器组合的副本;若所述某个第二容器组合不存在故障,则在测试环境中分布式部署所述某个第二容器组合。4.根据权利要求2所述的基于微服务架构的分布式自动化测试装置,其特征在于,所述指令模块基于所述接口服务向某个第二容器组合发起请求或指令后,还包括:根据所述第一存储模块中存储的所述某个第二容器组合的运行日志,判断所述某个第二容器组合的故障状态;若所述某个第二容器组合存在故障,则停止向所述某个第二容器组合发起请求或指令;若所述某个第二容器组合不存在故障,则基于所述某个第二容器组合的接口服务,持续向所述某个第二容器组合发起请求或指令。5.根据权利要求2所述的基于微服务架构的分布式自动化测试装置,其特征在于,若所述测试环境存在多个,则所述部署模块在多个测试环境中分布式部署第二容器组合的过程包括:从所述多个...

【专利技术属性】
技术研发人员:邓王攀
申请(专利权)人:重庆紫光华山智安科技有限公司
类型:发明
国别省市:

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

1