掌桥专利:专业的专利平台
掌桥专利
首页

方案测试方法、装置、计算机设备和存储介质

文献发布时间:2024-04-18 19:52:40


方案测试方法、装置、计算机设备和存储介质

技术领域

本申请涉及计算机技术领域,特别是涉及一种方案测试方法、装置、计算机设备和存储介质。

背景技术

通过在多个硬件设备中部署工作流形式的方案,可确保企业中相应业务的顺利执行,但当相应的方案进行更新或维护时,需要对方案进行测试之后,才能将测试通过的方案投入应用。

目前,通常采用一种二进制程序工具来对方案进行测试。然而,由于多个硬件设备所部署的环境并不相同,使得二进制程序工具在不同硬件设备中并不一定完全适用,造成了难以顺利完成方案测试的情况。因此,如何高效地对方案进行部署,进而实现对方案的自动化测试是本申请需要解决的问题。

发明内容

基于此,有必要针对上述技术问题,提供一种实现方案自动化测试的方案测试方法、装置、计算机设备、存储介质和计算机程序产品。

第一方面,本申请提供了一种方案测试方法。所述方法包括:

获取方案测试请求,并确定所述方案测试请求中的目标方案标识;

确定所述目标方案标识对应的目标配置信息;所述目标配置信息包括目标集群标识和节点信息;

获取所述目标集群标识对应的目标集群的集群资源信息,并根据所述集群资源信息和所述节点信息,从所述目标集群包括的多个测试节点中筛选出目标测试节点;

对所述目标测试节点进行镜像检测,得到镜像检测结果;

当所述镜像检测结果为检测通过时,将所述目标配置信息传递至所述目标测试节点;传递的所述目标配置信息用于在所述目标测试节点中进行方案测试。

在其中一个实施例中,确定所述方案测试请求中的目标方案标识,包括:所述确定所述方案测试请求中的多个方案标识、以及确定每个所述方案标识各自对应的配置信息;对每个所述配置信息的配置格式进行逻辑检测,得到逻辑检测结果,并根据多个所述逻辑检测结果,从多个所述方案标识中筛选出候选方案标识;确定执行每个所述候选方案标识对应的候选方案所需的执行资源量,并根据多个所述执行资源量,从多个所述候选方案标识中筛选出目标方案标识。

在其中一个实施例中,所述配置信息包括集群标识;所述根据多个所述执行资源量,从多个所述候选方案标识中筛选出目标方案标识,包括:针对多个候选方案标识中的每个候选方案标识,均确定当前候选方案标识对应的集群标识所对应的当前集群,并获取所述当前集群的当前空闲资源量;将所述当前空闲资源量与所述当前候选方案标识对应的当前执行资源量进行对比,得到对比结果;根据多个所述对比结果,多个所述候选方案标识中筛选出目标方案标识。

在其中一个实施例中,所述目标集群包括集群控制器和集群组件;所述获取所述目标集群标识对应的目标集群的集群资源信息,包括:通过所述集群控制器,获取所述目标集群的集群资源信息;其中,所述集群控制器用于从所述集群组件中读取到目标配置信息时,对所述目标集群进行资源监测,得到表征所述目标集群可使用资源的集群资源信息。

在其中一个实施例中,集群资源信息包括每个测试节点各自对应的节点资源量;所述根据所述集群资源信息和所述节点信息,从所述目标集群包括的多个测试节点中筛选出目标测试节点,包括:当所述节点信息表征预先配置有测试节点时,将预先配置的测试节点作为目标测试节点;当所述节点信息表征未预先配置测试节点时,确定测试所述目标方案标识对应的目标方案所需的测试资源量;根据多个所述节点资源量和所述测试资源量,从多个所述测试节点中筛选出目标测试节点。

在其中一个实施例中,镜像检测结果用于表征所述目标测试节点中是否存在所述目标配置信息对应的镜像信息;在所述对所述目标测试节点进行镜像检测,得到镜像检测结果之后,所述方法还包括:当所述镜像检测结果为检测未通过时,获取镜像信息,并将所述镜像信息传递至所述目标测试节点。

在其中一个实施例中,目标配置信息包括顺序排列的多个子任务;所述目标测试节点包括多个节点容器;所述目标集群包括集群控制器;在所述将所述目标配置信息传递至所述目标测试节点之后,所述方法还包括:通过所述集群控制器,并根据多个所述子任务的排列顺序,对多个所述子任务进行创建;通过所述集群控制器,针对创建好的每个所述子任务,依次确定当前子任务对应的当前节点容器;通过所述集群控制器,向所述当前节点容器分配并执行所述当前子任务。

第二方面,本申请还提供了一种方案测试装置。所述装置包括:

配置信息确定模块,用于获取方案测试请求,并确定所述方案测试请求中的目标方案标识;确定所述目标方案标识对应的目标配置信息;所述目标配置信息包括目标集群标识和节点信息;

测试节点筛选模块,用于获取所述目标集群标识对应的目标集群的集群资源信息,并根据所述集群资源信息和所述节点信息,从所述目标集群包括的多个测试节点中筛选出目标测试节点;

测试节点测试模块,用于对所述目标测试节点进行镜像检测,得到镜像检测结果;当所述镜像检测结果为检测通过时,将所述目标配置信息传递至所述目标测试节点;传递的所述目标配置信息用于在所述目标测试节点中进行方案测试。

第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取方案测试请求,并确定所述方案测试请求中的目标方案标识;

确定所述目标方案标识对应的目标配置信息;所述目标配置信息包括目标集群标识和节点信息;

获取所述目标集群标识对应的目标集群的集群资源信息,并根据所述集群资源信息和所述节点信息,从所述目标集群包括的多个测试节点中筛选出目标测试节点;

对所述目标测试节点进行镜像检测,得到镜像检测结果;

当所述镜像检测结果为检测通过时,将所述目标配置信息传递至所述目标测试节点;传递的所述目标配置信息用于在所述目标测试节点中进行方案测试。

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取方案测试请求,并确定所述方案测试请求中的目标方案标识;

确定所述目标方案标识对应的目标配置信息;所述目标配置信息包括目标集群标识和节点信息;

获取所述目标集群标识对应的目标集群的集群资源信息,并根据所述集群资源信息和所述节点信息,从所述目标集群包括的多个测试节点中筛选出目标测试节点;

对所述目标测试节点进行镜像检测,得到镜像检测结果;

当所述镜像检测结果为检测通过时,将所述目标配置信息传递至所述目标测试节点;传递的所述目标配置信息用于在所述目标测试节点中进行方案测试。

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

获取方案测试请求,并确定所述方案测试请求中的目标方案标识;

确定所述目标方案标识对应的目标配置信息;所述目标配置信息包括目标集群标识和节点信息;

获取所述目标集群标识对应的目标集群的集群资源信息,并根据所述集群资源信息和所述节点信息,从所述目标集群包括的多个测试节点中筛选出目标测试节点;

对所述目标测试节点进行镜像检测,得到镜像检测结果;

当所述镜像检测结果为检测通过时,将所述目标配置信息传递至所述目标测试节点;传递的所述目标配置信息用于在所述目标测试节点中进行方案测试。

上述方案测试方法、装置、计算机设备、存储介质和计算机程序产品,通过获取方案测试请求,并确定方案测试请求中的目标方案标识,可确定目标方案标识对应的目标配置信息;针对目标配置信息包括的目标集群标识和节点信息,当获取目标集群标识对应的目标集群的集群资源信息时,可根据集群资源信息和节点信息,进而从目标集群包括的多个测试节点中筛选出目标测试节点;通过对目标测试节点进行镜像检测,可得到镜像检测结果,当镜像检测结果为检测通过时,可将目标配置信息传递至目标测试节点,使得传递的目标配置信息用于在目标测试节点中进行方案测试。由于本申请是在确定出目标方案标识对应的目标配置信息之后,可直接根据目标配置信息,快速完成对目标方案的测试部署,相较于传统的只能依赖二进制程序工具的方式,本申请无需再考虑硬件设备所部署的环境的差异,只需确保目标集群中的目标测试节点在启动时,便可快速实现对目标方案的自动化测试。

附图说明

图1为一个实施例中方案测试方法的应用环境图;

图2为一个实施例中方案测试方法的流程示意图;

图3为一个实施例中基于容器集群进行方案测试的测试结构示意图;

图4为一个实施例中确定目标方案标识的流程示意图;

图5为一个实施例中对目标集群进行资源监测的原理示意图;

图6为一个实施例中方案测试装置的结构框图;

图7为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本申请提供的方案测试方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信,数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104在获取终端102发送的方案测试请求时,用于确定方案测试请求中的目标方案标识,并确定目标方案标识对应的目标配置信息;获取目标集群标识对应的目标集群的集群资源信息,并根据集群资源信息和节点信息,从目标集群包括的多个测试节点中筛选出目标测试节点;服务器104还用于对目标测试节点进行镜像检测,得到镜像检测结果,当镜像检测结果为检测通过时,将目标配置信息传递至目标测试节点,以使得目标测试节点通过目标配置信息进行方案测试。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备;服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在其中一个实施例中,如图2所示,提供了一种方案测试方法,该方法由图1中的服务器为例进行执行,服务器可为测试管理系统。包括以下步骤:

步骤202,获取方案测试请求,并确定方案测试请求中的目标方案标识。

其中,目标方案标识是指的是唯一标识一个目标方案的信息;目标方案标识可以为多个。

具体地,针对多种硬件设备部署在不同容器集群的情况,当需要对目标方案进行测试时,也即需要通过部署硬件设备的容器节点来完成测试。其中,容器集群可为Kubernetes集群,Kubernetes集群是一个跨主机集群的开源的容器调度平台,它可以自动化应用容器的部署、扩展和操作,提供以容器为中心的基础架构。如图3所示,图3为基于容器集群进行方案测试的测试结构示意图,测试结构包括前端模块、测试管理系统、集成库和多个容器集群。

其中,前端模块可运行在终端上,并通过提供的展示界面实现操作的可视化;展示界面中包括方案标识列表,当前端模块响应于用户对方案标识列表的选择操作时,确定所选择的目标方案标识。前端模块根据目标方案标识,生成方案测试请求,并将方案测试请求发送至测试管理系统,以使测试管理系统从方案测试请求中解析出目标方案标识。

步骤204,确定目标方案标识对应的目标配置信息。

其中,目标配置信息包括目标集群标识和节点信息;节点信息用于表征目标方案标识是否预先配置了进行方案测试的测试节点。

具体地,集成库中集成有多种测试用例、压测用例、接口检测任务等方案各自对应的配置信息;配置信息可为包含了多个测试脚本等信息的配置文件;各种方案的配置信息可以Yaml文件的方式存储在集成库中。当测试管理系统从方案测试请求中解析出目标方案标识时,可直接从集成库中查找出目标方案标识对应的目标配置信息。

在其中一个实施例中,当前端模块确定用户所选择的目标方案标识时,从集成库中查找出目标方案标识对应的目标配置信息,并将目标配置信息导入至测试管理系统中。

在其中一个实施例中,为确保方案的灵活配置与测试,可定义一种CRD(CustromResource Definition,自定义资源),CRD表征一种允许用户在Kubernetes集群中添加自定义的资源。因此,目标配置信息可为按照CRD属性声明创建的一个自定义资源的具体实例。

在其中一个实施例中,前端模块还可提供设置配置信息、部署Kubernets集群的资源对象、安装插件等界面操作功能;设置配置信息表征对配置信息进行创建、更新或删除等修改操作。同时,前端模块还支持HTTP、HTTPS、HTTP2.0、TCP、UDP等通信协议、以及GRPC、HESSIAN等框架通信协议。因此,前端模块可通过测试管理系统所支持的目标通信协议,与测试管理系统进行通信连接,进而实现信息交互。

步骤206,获取目标集群标识对应的目标集群的集群资源信息,并根据集群资源信息和节点信息,从目标集群包括的多个测试节点中筛选出目标测试节点。

其中,集群资源信息包括目标集群中部署的各个硬件设备的CPU资源量、内存资源量、磁盘容量等。

具体地,测试管理系统中还包括集群管理模块,集群管理模块用于管理所有容器集群的连接、监控集群状态、控制集群的权限等、以及管理将目标配置信息传递至目标集群的过程。因此,测试管理系统中的集群管理模块,可实时监控到目标集群的集群资源信息。

进一步地,测试管理系统确定节点信息所对应的字段内容,字段内容包括测试节点标识和空值中的任意一种,进而根据字段内容,从多个测试节点中筛选出候选测试节点。当字段内容为测试节点标识时,将测试节点标识对应的测试节点作为候选测试节点,并将该候选测试节点作为目标测试节点;字段内容为空值时,将目标集群包括的多个测试节点均作为候选测试节点,此时测试管理系统确定测试目标方案所需的测试资源量,并将集群资源信息和测试资源量进行对比,进而根据得到的对比结果,从候选测试节点中筛选出目标测试节点。

在其中一个实施例中,测试管理系统中可提供一种黑名单,黑名中包括测试节点所对应的IP地址、网段范围等,用于对方案的测试访问进行源头限制。

步骤208,对目标测试节点进行镜像检测,得到镜像检测结果。

其中,测试管理系统还包括镜像管理模块;镜像检测结果用于表征目标测试节点中是否存在目标配置信息对应的镜像信息。

具体地,由于目标集群中的目标测试节点在进行方案测试时,需要确保目标测试节点中存在目标配置信息对应的镜像信息,才能确保目标测试节点的运行。因此,测试管理系统中的镜像管理模块会检测目标测试节点中,是否存在目标配置信息对应的镜像信息,若存在,则表征目标测试节点已进行过相应的方案测试,对应的镜像信息会保存在硬件设备的镜像仓库中,此时的镜像检测结果为检测通过。若不存在,目标测试节点会反馈无镜像信息,也即检测未通过。

在其中一个实施例中,在对目标测试节点进行镜像检测,得到镜像检测结果之后,还包括:当镜像检测结果为检测未通过时,获取镜像信息,并将镜像信息传递至目标测试节点。

具体地,当镜像检测结果为检测未通过时,测试管理系统会检测镜像管理模块中是否存在镜像信息,若存在,则获取镜像管理模块中的镜像信息,并将其传递至目标测试节点。其中,镜像管理模块中的镜像信息通过预先对镜像信息进行打包并存储后得到。

在其中一个实施例中,当镜像管理模块中不存在镜像信息时,镜像检测结果为检测不通过,测试管理系统则生成报错信息。

在其中一个实施例中,目标配置信息中包括镜像地址,当目标测试节点中不存在目标配置信息对应的镜像信息时,目标测试节点可通过镜像地址,从预存了镜像信息的集成库中拉取镜像信息。

在其中一个实施例中,当目标测试节点处于集群离线的情况时,仍可完成对镜像信息的拉取。

本实施例中,通过对目标测试节点进行镜像检测,可确保目标测试节点的顺利运行;同时,由于可将镜像管理模块中存在的镜像信息,直接传递给对应的目标测试节点,或直接通过镜像地址进行镜像信息拉取,缩短了目标测试节点获取镜像信息的时间,也提高了镜像信息拉取的灵活性。

此外,当测试管理系统对目标配置信息和镜像信息进行打包后,可将打包后的信息迁移到其他容器集群中,因此,提升了对目标方案进行测试的可复制性和适用性,无需再考虑硬件设备部署环境差异的问题。

步骤210,当镜像检测结果为检测通过时,将目标配置信息传递至目标测试节点。

其中,传递的目标配置信息用于在目标测试节点中进行方案测试。

具体地,目标集群包括入口模块和集群控制器;入口模块作为容器集群的统一流量入口,用来接收所有的目标配置信息,并将目标配置信息转发到目标集群中的集群控制器,使得通过集群控制器,将目标配置信息传递至目标测试节点,进而通过目标测试节点对目标配置信息对应的目标方案进行方案测试。

在其中一个实施例中,目标集群标识有多个,也即对应的目标集群也有多个,也即目标集群中的目标测试节点有多个,目标配置信息中还包括每个目标集群各自对应的流量权重。测试管理系统将目标配置信息传递至每个目标测试节点,当每个目标测试节点分别对目标方案进行方案测试时,得到与目标配置信息相关的测试数据;得到测试数据的数据量与目标测试节点所处目标集群的流量权重相对应。

上述方案测试方法中,通过获取方案测试请求,并确定方案测试请求中的目标方案标识,可确定目标方案标识对应的目标配置信息;针对目标配置信息包括的目标集群标识和节点信息,当获取目标集群标识对应的目标集群的集群资源信息时,可根据集群资源信息和节点信息,进而从目标集群包括的多个测试节点中筛选出目标测试节点;通过对目标测试节点进行镜像检测,可得到镜像检测结果,当镜像检测结果为检测通过时,可将目标配置信息传递至目标测试节点,使得传递的目标配置信息用于在目标测试节点中进行方案测试。由于本申请是在确定出目标方案标识对应的目标配置信息之后,可直接根据目标配置信息,快速完成对目标方案的测试部署,相较于传统的只能依赖二进制程序工具的方式,本申请无需再考虑硬件设备所部署的环境的差异,只需确保目标集群中的目标测试节点在启动时,便可快速实现对目标方案的自动化测试。

在其中一个实施例中,如图4所示,图4为确定目标方案标识的流程示意图,确定方案测试请求中的目标方案标识,包括以下步骤:

步骤402,确定方案测试请求中的多个方案标识、以及确定每个方案标识各自对应的配置信息。

具体地,参考步骤202中用户对方案标识列表进行选择操作时,得到的多个方案标识,使得测试管理系统从集成库中查找出每个方案标识各自对应的配置信息。测试管理系统中还包括配置信息管理模块,配置信息管理模块用于检查配置信息是否存在逻辑错误、检查集群资源是否满足需求等。

步骤404,对每个配置信息的配置格式进行逻辑检测,得到逻辑检测结果,并根据多个逻辑检测结果,从多个方案标识中筛选出候选方案标识。

具体地,针对多述配置信息中的每个配置信息,测试管理系统均对当前每个配置信息的配置格式进行逻辑检测,也即配置信息为一种配置文件时,检查配置文件的格式是否有问题、检查配置文件运行逻辑是否有冲突等。当逻辑检测结果表征检测通过时,测试管理系统将对应的方案标识筛选为候选方案标识。

步骤406,确定执行每个候选方案标识对应的候选方案所需的执行资源量,并根据多个执行资源量,从多个候选方案标识中筛选出目标方案标识。

其中,执行资源量可以表征容器集群中的容器节点在执行候选方案时,所需消耗的计算机资源量,例如,GPU资源量或者内存资源量等。配置信息包括集群标识,也即每个候选方案标识各自对应的集群标识。

在其中一个实施例中,根据多个执行资源量,从多个候选方案标识中筛选出目标方案标识,包括:针对多个候选方案标识中的每个候选方案标识,均确定当前候选方案标识对应的集群标识所对应的当前集群,并获取当前集群的当前空闲资源量;将当前空闲资源量与当前候选方案标识对应的当前执行资源量进行对比,得到对比结果;根据多个对比结果,多个候选方案标识中筛选出目标方案标识。

具体地,测试管理系统根据当前候选方案标识所对应的集群标识,对集群标识所对应的当前集群进行监控,并读取到当前集群对应的当前空闲资源量。其中,当前候选方案标识为多个候选方案标识中的任意一个候选方案标识;空闲资源量表征当前集群中空闲的、未使用的计算机资源量。测试管理系统可将当前空闲资源量与当前候选方案标识对应的当前执行资源量进行对比,得到对比结果,并当对比结果表征当前空闲资源量大于或等于当前执行资源量时,将当前候选方案标识作为目标方案标识。

在其中一个实施例中,当测试管理系统确定出目标方案标识时,测试管理系统中的集群管理模块可为目标方案标识打上测试标签,使得方案的测试策略的实际测试过程更加匹配。

本实施例中,通过预先检查每个配置信息是否存在逻辑错误、检查集群资源是否满足需求等,可提前过滤不满足条件的配置信息,进而避免对不符合条件的方案进行的方案测试。同时,通过确定不同集群各自对应的空闲资源量、以及候选方案标识对应的执行资源量,可进一步精准地筛选出目标方案标识。

在其中一个实施例中,在获取目标集群标识对应的目标集群的集群资源信息之前,还包括:通过集群控制器,获取目标集群的集群资源信息。

其中,目标集群包括集群控制器和集群组件;集群控制器用于从集群组件中读取到目标配置信息时,对目标集群进行资源监测,得到表征目标集群可使用资源的集群资源信息。

其中,集群控制器可用于监测目标集群中的测试节点的资源信息,测试节点也即一种容器节点Node;集群组件用于记载或存储与集群相关联的各种信息等。如图5所示,图5为对目标集群进行资源监测的原理示意图。

具体地,由于在前端模块在对配置信息进行创建等修改操作时,会通过创建请求的形式,将修改后的配置信息上传到集群组件中。集群组件在接收到上传的配置信息时,便会触发集群控制器开始运行,使得集群控制器从集群组件中,读取目标方案标识对应的目标配置信息。同时,运行了的集群控制器会对目标集群进行资源监测,得到表征目标集群可使用资源的集群资源信息;接着集群控制器便可将集群资源信息反馈至测试管理系统,以通过测试管理系统中的集群管理模块对目标集群进行管理。

在其中一个实施例中,集群控制器可为Kubernetes集群中的Operator,可用可扩展Kubernetes API的功能等;Operator可通过Kubect1工具,预先在容器集群中进行创建;Operator可通过一组监听Kubernetes集群资源的Controller确定得到,Controller是一个非终止循环,可用于调节系统状态。

本实施例中,通过在集群组件在接收到上传的配置信息时,实时地对集群控制器进行触发,并实时地监控目标集群中可使用资源的集群资源信息,进而在将集群资源信息传递至测试管理系统之后,确保测试管理系统后续能确定出最优的目标方案标识。

在其中一个实施例中,根据集群资源信息和节点信息,从目标集群包括的多个测试节点中筛选出目标测试节点,包括:当节点信息表征预先配置有测试节点时,将预先配置的测试节点作为目标测试节点;当节点信息表征未预先配置测试节点时,确定测试目标方案标识对应的目标方案所需的测试资源量;根据多个节点资源量和测试资源量,从多个测试节点中筛选出目标测试节点。

其中,集群资源信息包括每个测试节点各自对应的节点资源量;节点资源量表征每个测试节点空闲的、可使用的计算机资源量;测试资源量表征目标集群在测试目标方案时所需消耗的计算机资源量。

具体地,测试管理系统对节点信息进行检测,当检测到的节点信息表征预先配置有测试节点时,直接将预先配置的测试节点作为目标测试节点。当检测到的节点信息表征未预先配置测试节点时,测试管理系统确定测试目标方案标识对应的目标方案所需的测试资源量;其中,测试资源量可预先存储至目标配置信息中。针对多个节点资源量中的每个节点资源量,均对比当前节点资源量和测试资源量之间的差异,若当前节点资源量大于或等于测试资源量时,将当前节点资源量对应的测试节点作为目标测试节点。

在其中一个实施例中,若可作为目标测试节点的测试节点有多个,也即大于或等于测试资源量的节点资源量有多个,测试管理系统可按照预设的筛选方式,从多个节点资源量中筛选出目标节点资源量,进而将目标节点资源量对应的测试节点作为目标测试节点。其中,筛选方式可为从多个节点资源量中筛选出资源量最大的节点资源量,也可为对多个节点资源量进行随机挑选等。

本实施例中,针对每个目标方案标识所对应的目标方案,均是分别对比每个节点资源量和目标方案的测试资源量,来确定可执行的目标测试节点,因此,还能通过节点资源量和测试资源量,来控制目标集群中执行目标方案的并发数,从而保证每个目标集群的负载稳定在一个平衡最优点。

在其中一个实施例中,当目标测试节点完成对目标方案的测试之后,释放对目标配置信息进行任务执行所消耗的测试资源量,并根据释放的测试资源量,对目标测试节点对应的节点资源量进行更新。因此,当基于释放的资源及时对未处理的方案测试请求进行处理时,可提升节点资源量的利用率,进而提升方案测试请求的处理效率。

在其中一个实施例中,在将目标配置信息传递至目标测试节点之后,还包括:通过集群控制器,并根据多个子任务的排列顺序,对多个子任务进行创建;通过集群控制器,针对创建好的每个子任务,依次确定当前子任务对应的当前节点容器;通过集群控制器,向当前节点容器分配并执行当前子任务。

其中,参考图5所示,目标配置信息包括顺序排列的多个子任务,也可称Job任务,子任务中包括与目标方案相关的运行测试脚本;目标测试节点包括多个节点容器,也可称容器Pod。

具体地,当目标集群在获取到测试管理系统传递的目标配置信息时,目标集群中的集群控制器,根据多个子任务的排列顺序,依次对多个子任务进行创建。针对创建好的多个子任务中的每个子任务,集群控制器按照创建顺序,依次确定当前子任务对应的当前节点容器。当启动当前节点容器时,集群控制器便将当前子任务以执行命令的形式,传递给当前节点容器,以使得当前节点容器运行当前子任务中的运行测试脚本,进而完成对目标方案的方案测试。

本实施例中,由于目标测试节点中部署有多个节点容器,通过向相应的节点容器分配并执行相应的子任务,可实现不同的节点容器同时执行多个方案测试请求的情况,如此,便可提升对不同目标方案进行测试的效率。

应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的方案测试方法的方案测试装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个方案测试装置实施例中的具体限定可以参见上文中对于方案测试方法的限定,在此不再赘述。

在其中一个实施例中,如图6所示,提供了一种方案测试装置600,包括:请求接收模块602、信息确定模块604和请求发送模块606,其中:

配置信息确定模块602,用于获取方案测试请求,并确定方案测试请求中的目标方案标识;确定目标方案标识对应的目标配置信息;目标配置信息包括目标集群标识和节点信息。

测试节点筛选模块604,用于获取目标集群标识对应的目标集群的集群资源信息,并根据集群资源信息和节点信息,从目标集群包括的多个测试节点中筛选出目标测试节点。

测试节点测试模块606,用于对目标测试节点进行镜像检测,得到镜像检测结果;当镜像检测结果为检测通过时,将目标配置信息传递至目标测试节点;传递的目标配置信息用于在目标测试节点中进行方案测试。

在其中一个实施例中,配置信息确定模块602还包括方案标识确定模块6021,用于确定方案测试请求中的多个方案标识、以及确定每个方案标识各自对应的配置信息;对每个配置信息的配置格式进行逻辑检测,得到逻辑检测结果,并根据多个逻辑检测结果,从多个方案标识中筛选出候选方案标识;确定执行每个候选方案标识对应的候选方案所需的执行资源量,并根据多个执行资源量,从多个候选方案标识中筛选出目标方案标识。

在其中一个实施例中,方案标识确定模块6021,还用于针对多个候选方案标识中的每个候选方案标识,均确定当前候选方案标识对应的集群标识所对应的当前集群,并获取当前集群的当前空闲资源量;将当前空闲资源量与当前候选方案标识对应的当前执行资源量进行对比,得到对比结果;根据多个对比结果,多个候选方案标识中筛选出目标方案标识。

在其中一个实施例中,方案测试装置600还包括集群资源监测模块608,用于通过集群控制器,获取目标集群的集群资源信息,集群控制器用于从集群组件中读取到目标配置信息时,对目标集群进行资源监测,得到表征目标集群可使用资源的集群资源信息。

在其中一个实施例中,测试节点筛选模块604,还用于当节点信息表征预先配置有测试节点时,将预先配置的测试节点作为目标测试节点;当节点信息表征未预先配置测试节点时,确定测试目标方案标识对应的目标方案所需的测试资源量;根据多个节点资源量和测试资源量,从多个测试节点中筛选出目标测试节点。

在其中一个实施例中,测试节点测试模块606还包括镜像检测模块6061,用于当镜像检测结果为检测未通过时,获取镜像信息,并将镜像信息传递至目标测试节点。

在其中一个实施例中,测试节点测试模块606还包括子任务执行模块6062,用于通过集群控制器,并根据多个子任务的排列顺序,对多个子任务进行创建;通过集群控制器,针对创建好的每个子任务,依次确定当前子任务对应的当前节点容器;通过集群控制器,向当前节点容器分配并执行当前子任务。

上述方案测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在其中一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储方案测试数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种方案测试方法.

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在其中一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在其中一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在其中一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(FerroelectricRandom Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(StaticRandom Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

技术分类

06120116331469