异质架构的跨云测试方法、系统和计算机设备与流程

文档序号:30061309发布日期:2022-05-17 23:39阅读:175来源:国知局
异质架构的跨云测试方法、系统和计算机设备与流程

1.本技术涉及软件测试技术领域,特别是涉及一种异质架构的跨云测试方法、系统和计算机设备。


背景技术:

2.软件测试作为软件应用正常稳定运行的保障,随着应用上云的趋势逐渐火热,云上测试的需求也日渐强烈。传统的测试是直接给测试人员提供一套物理设备及配套的设备环境,存在这一些固有的弊端:无法复用,无法规模化,测试结束后无法及时释放带来额外资源成本等。与传统的测试相比,云上测试可以随时随地创建和部署,可复用,并可及时释放,提供了更多的灵活性和方便性。但同时,由于不同的测试任务具有迥异的测试架构,在运行环境,运行资源需求,运行方式等各方面均存在较大的差异,云上测试也面临着很大的挑战。
3.对于上述挑战,现有的云测试支撑方法、技术和服务尚不成熟,特别是存在分配给测试用户的环境资源不能与测试需求精准匹配,导致测试任务无法高效完成的问题。同时,时下各云服务提供商提供的服务已经较为完备,对不同的技术架构的支持良好,但各服务商的资源、服务、价格各有特色,分别适应不同的软件应用场景,市面上的测试平台产品暂未做到很好的结合这些云服务提供商各自的优势。因此,云测试场景下,如何建立测试任务与不同云服务的有效连接,充分利用各云服务资源特色,对测试任务的精准匹配及成本控制具有重大的实际价值。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种异质架构的跨云测试方法、系统和计算机设备。
5.一种异质架构的跨云测试方法,所述方法包括:
6.控制中心开启监听线程,监听云集群注册请求,以使云集群注册在测试云集群组;
7.接收云集群发送的测试任务,并对所述测试任务的云服务信息进行识别,以根据预先设置的任务分发策略配置,将所述测试任务分发至对应的测试云;其中,所述测试任务是通过控制中心预先定义的五元组,所述五元组中的元素包括:测试代码、测试集、测试方法、运行环境以及结果展现形式;
8.工作终端从私有镜像仓库拉取测试镜像,启动任务容器作为测试任务运行载体,并且通过私有文件管理服务接口拉取测试代码仓库,以此构建测试环境,测试环境通过对外提供访问接口采集用户输入;
9.工作终端通过所述外部访问接口接收所述测试任务用户输入,并且在所述测试环境中进行程序测试,运行测试代码获取测试结果,并回传至控制中心,并对所述测试环境进行异步回收;
10.控制中心根据结果展现形式进行结果展示。
11.在其中一个实施例中,所述测试代码为待测试的程序代码及同语言类型的测试程序代码,存储于版本库中;所述测试集为多组输入数组及预期输出数组;其中,所述测试集的构建无需对应的交互式输入采集环境;所述测试方法为通用的输出比对;所述运行环境包括:镜像定义、运行主机架构需求以及运行时的资源限定;其中,镜像定义为安装有运行环境的容器镜像,运行主机架构需求为运行任务所依赖的宿主机架构,运行时的资源限定为cpu上限、内存上限以及运行时长上限。
12.在其中一个实施例中,还包括:控制中心开启监听线程,监听工作终端向控制中心发起的注册请求,以请求加入测试云集群组;控制中心接收到所述注册请求,进行鉴权校验,不通过予以丢弃,通过则将云集群加入测试云集群组。
13.在其中一个实施例中,还包括:根据负载的筛选打分策略,将测试任务提交到控制中心运行;测试云的负载由工作终端调用容器及集群的通用监控采集组件采集返回,控制中心查询工作终端实时返回的集群负载情况;根据负载情况对测试云集群各节点进行排序,根据排序结果确定测试云中节点为分发目标。
14.在其中一个实施例中,还包括:工作终端从私有镜像仓库拉取测试镜像,启动任务容器作为测试任务运行载体,并且通过私有文件管理服务接口拉取测试代码仓库,以此构建测试环境,测试环境通过对外提供访问接口采集用户输入。
15.在其中一个实施例中,还包括:工作终端在jupyter notebook环境中运行待测程序,获取待测程序输出,然后运行测试程序代码,根据所述测试方法对应的模型评估算法,测试获得测试结果,将整个操作序列中产生的文本及图片存储到文件,回传给控制中心,同时将启动任务容器标记为待回收状态,异步进行回收。
16.在其中一个实施例中,还包括:工作终端在测试容器环境中运行待测程序,获取待测程序输出,然后运行测试程序代码,根据所述测试方法对应的模型评估算法,测试获得测试结果,将整个操作序列中产生的文本及图片存储到文件,回传给控制中心,同时将启动任务容器标记为待回收状态,异步进行回收。
17.一种异质架构的跨云测试系统,所述系统包括:
18.控制中心、测试云集群组以及云集群部署的工作终端;
19.控制中心开启监听线程,监听云集群注册请求,以使云集群注册在测试云集群组;接收云集群发送的测试任务,并对所述测试任务的云服务信息进行识别,以根据预先设置的任务分发策略配置,将所述测试任务分发至对应的测试云;其中,所述测试任务是通过控制中心预先定义的五元组,所述五元组中的元素包括:测试代码、测试集、测试方法、运行环境以及结果展现形式;
20.工作终端从私有镜像仓库拉取测试镜像,启动任务容器作为测试任务运行载体,并且通过私有文件管理服务接口拉取测试代码仓库,以此构建测试环境,测试环境通过对外提供访问接口采集用户输入;通过所述外部访问接口接收所述测试任务用户输入,并且在所述测试环境中进行程序测试,运行测试代码获取测试结果,并回传至控制中心,并对所述测试环境进行异步回收;
21.控制中心根据结果展现形式进行结果展示。
22.上述异质架构的跨云测试方法、系统、计算机设备和存储介质,通过对测试任务进行抽象拆解予以特征定义,拆分出的五元组为可标识可调度指标,能广泛兼容不同技术架
构及云资源架构,并且提供分发策略的自定义集成拓展,有效的将不同的测试云环境与用户测试需求相连接,避免了测试平台测试资源分配与测试需求不匹配的问题,能够满足对互联网上海量软件测试任务的运行调度需求。
附图说明
23.图1为一个实施例中异质架构的跨云测试方法的流程示意图;
24.图2为另一个实施例中异质架构的跨云测试方法的流程示意图;
25.图3为一个实施例中异质架构的跨云测试系统的结构框图;
26.图4为一个实施例中计算机设备的内部结构图。
具体实施方式
27.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
28.在一个实施例中,如图1所示,提供了一种异质架构的跨云测试方法,包括以下步骤:
29.步骤102,控制中心开启监听线程,监听云集群注册请求,以使云集群注册在测试云集群组。
30.本实施例中,测试云集群组中包括大量的测试云集群,云集群上部署的工作终端发送注册请求,鉴权成功后,云集群即可以加入测试云集群组,进行云测试。
31.步骤104,接收云集群发送的测试任务,并对测试任务的云服务信息进行识别,以根据预先设置的任务分发策略配置,将测试任务分发至对应的测试云。
32.测试任务是通过控制中心预先定义的五元组,五元组中的元素包括:测试代码、测试集、测试方法、运行环境以及结果展现形式,通过对测试任务进行抽象拆解予以特征定义,拆分出的五元组为可标识可调度指标,能广泛兼容不同技术架构及云资源架构,并且提供分发策略的自定义集成拓展。
33.步骤106,工作终端从私有镜像仓库拉取测试镜像,启动任务容器作为测试任务运行载体,并且通过私有文件管理服务接口拉取测试代码仓库,以此构建测试环境,测试环境通过对外提供访问接口采集用户输入。
34.步骤108,工作终端通过外部访问接口接收所述测试任务用户输入,并且在测试环境中进行程序测试,运行测试代码获取测试结果,并回传至控制中心,并对测试环境进行异步回收。
35.步骤110,控制中心根据结果展现形式进行结果展示。
36.上述异质架构的跨云测试方法中,通过对测试任务进行抽象拆解予以特征定义,拆分出的五元组为可标识可调度指标,能广泛兼容不同技术架构及云资源架构,并且提供分发策略的自定义集成拓展,有效的将不同的测试云环境与用户测试需求相连接,避免了测试平台测试资源分配与测试需求不匹配的问题,能够满足对互联网上海量软件测试任务的运行调度需求。
37.在其中一个实施例中,测试代码为待测试的程序代码及同语言类型的测试程序代
码,存储于版本库中;测试集为多组文本输入数组及预期输出数组;其中,测试集的构建无需对应的交互式输入采集环境;测试方法为通用的输出比对;运行环境包括:镜像定义、运行主机架构需求以及运行时的资源限定;其中,镜像定义为安装有运行环境的容器镜像,运行主机架构需求为运行任务所依赖的宿主机架构,运行时的资源限定为cpu上限、内存上限以及运行时长上限。
38.为了方便表述,采用标记进行标识,五元组组成包括:
39.tc:待测试的程序代码code1及同语言类型的测试程序代码testcode1,存储于版本库repo1中;
40.ts:输入及输出均为纯文本,为多组文本输入数组input1及预期输出数组expectedoutput1,无需对应的交互式输入采集环境;
41.tm:测试检测的方法为通用的输出比对;
42.re:镜像定义为安装有t1的运行环境的容器镜像image1,运行主机架构需求为architecture1,运行时的资源限定为cpu上限cpulimit1,内存上限memlimit1,运行时长上限timelimit1;
43.rp:结果展现形式为文本比对,展示测试程序实际运行输出与预期输出的差异。
44.测试人员在所述系统中以可视化组件的形式完成对t1的特征定义。
45.在其中一个实施例中,控制中心开启监听线程,监听工作终端向控制中心发起的注册请求,以请求加入测试云集群组;控制中心接收到所述注册请求,进行鉴权校验,不通过予以丢弃,通过则将云集群加入测试云集群组。
46.在其中一个实施例中,根据负载的筛选打分策略,将测试任务提交到控制中心运行;测试云的负载由工作终端调用容器及集群的通用监控采集组件采集返回,控制中心查询工作终端实时返回的集群负载情况;根据负载情况对测试云集群各节点进行排序,根据排序结果确定测试云中节点为分发目标。
47.具体的,控制中心查询工作终端实时返回的集群负载情况,对测试云集群各节点进行排序,选择空闲度为freerate1的云集群cluster1中的节点node1作为分发目标。
48.在其中一个实施例中,工作终端从私有镜像仓库拉取测试镜像,启动任务容器作为测试任务运行载体,并且通过私有文件管理服务接口拉取测试代码仓库,以此构建测试环境,测试环境通过对外提供访问接口采集用户输入。
49.具体的,测试任务分发到node1后,由cluster1中部署的工作终端从私有镜像仓库拉取测试镜像image1,启动任务容器container1作为测试任务运行载体,而后通过私有版本库管理服务接口拉取用户代码仓库repo1,及预先定义的多组文本测试输入input1,以及构建jupyter notebook测试环境。
50.在其中一个实施例中,工作终端在测试容器环境中运行待测程序,获取待测程序输出,然后运行测试程序代码,根据测试方法对应的模型评估算法,测试获得测试结果,将整个操作序列中产生的文本及图片存储到文件,回传给控制中心,同时将启动任务容器标记为待回收状态,异步进行回收。
51.具体的。cluster1工作终端检测到本地环境为架构architecture1,系统operatingsystem1,运行用户测试程序代码testcode1,调用t1在对应系统下的语言启动命令,运行用户测试程序代码testcode1,运行选择的测试框架framework1,framework1运行
待测试程序code1,给定测试输入并获取封装测试结果result1,回传给控制中心,同时将container1标记为待回收状态,异步进行回收。
52.在其中一个实施例中,控制中心收到回传的测试结果后,调用提取实际输出文件中的文本及图片分别做对比,以展示本次测试的结果、测试过程中的资源消耗统计,并对测试程序生成的图片进行渲染展示。
53.以下以一个具体实施例,对本发明的有益效果进行进一步说明:
54.步骤202、控制中心开启监听线程,监听云集群注册请求。工作终端部署到具体的测试云端,向控制中心发起注册,请求加入测试云集群。控制中心接收到注册请求,进行鉴权校验,不通过予以丢弃,通过则将集群加入测试云集群组。
55.步骤204、对于一个典型的人工智能类测试任务t2,由以下五元组组成:
56.tc:待测试的程序代码code2及测试程序代码testcode2,存储于版本库repo2中;
57.ts:输入形式为jupyter notebook交互式环境,数据集存储于上述版本库中,预期输出为文件形式,包含文本及图片,为jupyter notebook中操作预期获得的程序输出;
58.tm:测试的方法为模型评估算法assess2,考量模型准确率,错误率等指标;
59.re:镜像定义为安装有t2的运行环境的容器镜像image2,运行主机架构需求为architecture2,运行时的资源限定为gpu上限gpulimit2,cpu上限cpulimit2,内存上限memlimit2,运行时长上限timelimit2;
60.rp:结果展示包含程序代码code2各步骤产生的文本输出比对,及模型训练产生的图片展示比对。
61.测试人员在所述系统中以可视化组件的形式完成对t2的特征定义。
62.步骤206、测试人员选择测试任务分发策略为基于自定义标签的分发策略,将测试任务提交到系统运行。测试任务选择的节点标签为tags2,可选地,tags2可包含“是否为gpu节点”,“是否挂载ssd”等标签,控制中心随机选取满足标签筛选条件的某集群cluster2及节点node2进行分发。
63.步骤208、测试任务分发到node2后,由cluster2中部署的工作终端从私有镜像仓库拉取测试镜像image2,启动任务容器container2作为测试任务运行载体,而后通过私有版本库管理服务接口拉取测试代码仓库repo2,将container2中的jupyter notebook环境暴露对外访问端口,采集测试输入。
64.步骤210、测试人员在jupyter notebook环境中运行待测程序code2,获取待测程序输出actualoutput2,而后运行测试程序代码testcode2,根据选择的模型评估算法assess2,测试获得测试结果result2,将整个操作序列中产生的文本及图片存储到文件,回传给控制中心,同时将container2标记为待回收状态,异步进行回收。
65.步骤212、控制中心收到回传的测试结果result2后,调用测试结果处理模块提取实际输出文件中的文本及图片分别做对比,提示测试人员本次测试的结果,给出测试过程中的资源消耗统计,并对测试程序code2生成的图片进行渲染展示。
66.应该理解的是,虽然图1和2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时
刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
67.在一个实施例中,如图3所示,提供了一种异质架构的跨云测试系统,包括:控制中心302、测试云集群组304和工作终端306,其中:
68.控制中心302开启监听线程,监听云集群注册请求,以使云集群注册在测试云集群组304;
69.控制中心302接收云集群发送的测试任务,并对所述测试任务的云服务信息进行识别,以根据预先设置的任务分发策略配置,将所述测试任务分发至对应的测试云;其中,所述测试任务是通过控制中心预先定义的五元组,所述五元组中的元素包括:测试代码、测试集、测试方法、运行环境以及结果展现形式;
70.工作终端306工作终端从私有镜像仓库拉取测试镜像,启动任务容器作为测试任务运行载体,并且通过私有文件管理服务接口拉取测试代码仓库,以此构建测试环境,测试环境通过对外提供访问接口采集用户输入;
71.工作终端306工作终端通过所述外部访问接口接收所述测试任务用户输入,并且在所述测试环境中进行程序测试,运行测试代码获取测试结果,并回传至控制中心,并对所述测试环境进行异步回收;
72.控制中心302根据结果展现形式进行结果展示。
73.在其中一个实施例中,所述测试代码为待测试的程序代码及同语言类型的测试程序代码,存储于版本库中;所述测试集为多组文本输入数组及预期输出数组;其中,所述测试集的构建无需对应的交互式输入采集环境;所述测试方法为通用的输出比对;所述运行环境包括:镜像定义、运行主机架构需求以及运行时的资源限定;其中,镜像定义为安装有运行环境的容器镜像,运行主机架构需求为运行任务所依赖的宿主机架构,运行时的资源限定为cpu上限、内存上限以及运行时长上限。
74.在其中一个实施例中,控制中心302开启监听线程,监听工作终端306向控制中心302发起的注册请求,以请求加入测试云集群组;控制中心302接收到所述注册请求,进行鉴权校验,不通过予以丢弃,通过则将云集群加入测试云集群组。
75.在其中一个实施例中,控制中心302根据负载的筛选打分策略,将测试任务提交到控制中心运行;测试云的负载由工作终端调用容器及集群的通用监控采集组件采集返回,控制中心查询工作终端实时返回的集群负载情况;根据负载情况对测试云集群各节点进行排序,根据排序结果确定测试云中节点为分发目标。
76.在其中一个实施例中,工作终端306从私有镜像仓库拉取测试镜像,启动任务容器作为测试任务运行载体,并且通过私有文件管理服务接口拉取测试代码仓库,以此构建jupyter notebook环境暴露对外访问端口用于采集测试任务。
77.在其中一个实施例中,工作终端306在jupyter notebook环境中运行待测程序,获取待测程序输出,然后运行测试程序代码,根据所述测试方法对应的模型评估算法,测试获得测试结果,将整个操作序列中产生的文本及图片存储到文件,回传给控制中心302,同时将启动任务容器标记为待回收状态,异步进行回收。
78.在其中一个实施例中,控制中心302收到回传的测试结果后,调用提取实际输出文
件中的文本及图片分别做对比,以展示本次测试的结果、测试过程中的资源消耗统计,并对测试程序生成的图片进行渲染展示。
79.关于异质架构的跨云测试系统的具体限定可以参见上文中对于异质架构的跨云测试方法的限定,在此不再赘述。上述异质架构的跨云测试系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
80.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储私有镜像仓库、任务容器等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异质架构的跨云测试方法。
81.本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
82.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述实施例中方法的步骤。
83.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中方法的步骤。
84.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
85.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
86.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1