CN117806951A - 应用于测试用例分布式运行的智能调度方法及相关设备 - Google Patents
应用于测试用例分布式运行的智能调度方法及相关设备 Download PDFInfo
- Publication number
- CN117806951A CN117806951A CN202311697256.8A CN202311697256A CN117806951A CN 117806951 A CN117806951 A CN 117806951A CN 202311697256 A CN202311697256 A CN 202311697256A CN 117806951 A CN117806951 A CN 117806951A
- Authority
- CN
- China
- Prior art keywords
- grouping
- scoring
- test case
- working
- module
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000003860 storage Methods 0.000 claims abstract description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 29
- 238000012216 screening Methods 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 13
- 230000008676 import Effects 0.000 claims description 11
- 238000013468 resource allocation Methods 0.000 claims description 3
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000011161 development Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 11
- 238000009826 distribution Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000002071 nanotube Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请实施例属于人工智能的测试开发技术领域,涉及一种应用于测试用例分布式运行的智能调度方法、装置、计算机设备及存储介质。本申请通过打分策略对工作节点打分排序、通过分组策略对测试用例分组,最终结合Kuber netes集群节点选择器、节点亲和性等特性,实现智能化的测试用例分布式调度分发能力,平衡工作节点压力,提高资源利用率,降低用例整体执行时间。
Description
技术领域
本申请涉及人工智能的测试开发技术领域,尤其涉及一种应用于测试用例分布式运行的智能调度方法及相关设备。
背景技术
自动化测试是指用利用自动化测试工具,通过对测试需求的分析,设计出自动化测试用例,搭建自动化测试框架,设计并编写自动化脚本,最后通过脚本执行正确性生成测试报告来评估测试对象。自动化测试用例可重复定期执行,因此可以节省人力时间成本。
Kubernetes是一个开源的、用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。控制器(Controller)是Kubernetes集群中用来对容器组进行状态和行为控制,包括Deployment、StatefulSet、DaemonSet、Job、Cronjob这五种,可以通过YAML文件形式进行部署运行。
然而,申请人发现,在现有的自动化测试用例分发执行技术中,或是仅通过使用Jenkins自有的分发机制进行用例分发,需要等到前一个用例执行完成再下发下一个,用例分发耗时占比大,且不具有智能分发能力;或是通过一个集群控制器来执行所有用例,不具有分布式运行的能力,造成一个节点压力大、其他节点处于空闲中的问题。由此可见,现有的自动化测试用例分发执行技术存在耗时过长、执行效率过低的问题。
发明内容
本申请实施例的目的在于提出一种应用于测试用例分布式运行的智能调度方法、装置、计算机设备及存储介质,以解决自动化测试用例在Kubernetes集群多工作节点的分布式场景下存在的耗时过长、执行效率过低的问题。
为了解决上述技术问题,本申请实施例提供一种应用于测试用例分布式运行的智能调度方法,采用了如下所述的技术方案:
接收用户终端发送得调度请求,其中,所述调度请求至少携带有工作集群标识;
调用Kubeconfig工具导入与所述工作集群标识相对应的目标工作集群以及与所述目标工作集群相对应的目标工作节点;
获取预先配置的自动化测试用例执行脚本,并执行所述自动化测试用例执行脚本;
获取所述工作节点的cpu可用数据、内存可用数据以及节点空闲数据;
根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果;
基于预设的可用打分阈值对所述打分结果进行筛选操作,得到可用打分结果以及与所述可用打分结果相对应的可用工作节点;
调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略;
根据所述可用工作节点以及所述分组策略生成调度策略;
根据所述调度策略对所述自动化测试用例执行脚本进行调度操作。
所述根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果的步骤,还包括下述步骤:
获取预设的cpu权重以及内存权重;
分别计算每个工作节点的cpu可用数据与所述cpu权重的乘积,得到每个工作节点的cpu分值;
分别计算每个工作节点的内存可用数据与所述内存权重的乘积,得到每个工作节点的内存分值;
分别计算每个工作节点的cpu分值以及内存分值的加权求和,得到所述打分结果。
进一步的,所述调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略的步骤,具体包括下述步骤:
获取所述各个自动化测试用例的执行时间;
根据最少总执行时间策略对所述执行时间进行时间分配操作,得到所述分组策略。
进一步的,所述调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略的步骤,具体包括下述步骤:
获取所述各个自动化测试用例的资源需求量;
根据资源需求平均策略对所述资源需求量进行资源分配操作,得到所述分组策略。
进一步的,所述调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略的步骤,具体包括下述步骤:
获取所述各个自动化测试用例的执行特性;
将执行特性相同的自动化测试用例划分为同一组别,得到所述分组策略。
为了解决上述技术问题,本申请实施例还提供一种应用于测试用例分布式运行的智能调度装置,采用了如下所述的技术方案:
请求获取模块,用于接收用户终端发送得调度请求,其中,所述调度请求至少携带有工作集群标识;
数据导入模块,用于调用Kubeconfig工具导入与所述工作集群标识相对应的目标工作集群以及与所述目标工作集群相对应的目标工作节点;
脚本执行模块,用于获取预先配置的自动化测试用例执行脚本,并执行所述自动化测试用例执行脚本;
数据采集模块,用于获取执行所述自动化测试用例执行脚本时所述工作节点的cpu可用数据、内存可用数据以及节点空闲数据;
打分模块,用于根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果;
筛选模块,用于基于预设的可用打分阈值对所述打分结果进行筛选操作,得到可用打分结果以及与所述可用打分结果相对应的可用工作节点;
分组模块,用于调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略;
策略生成模块,用于根据所述可用工作节点以及所述分组策略生成调度策略;
调度操作模块,用于根据所述调度策略对所述自动化测试用例执行脚本进行调度操作。
进一步的,所述打分模块包括:
权重获取子模块,用于获取预设的cpu权重以及内存权重;
第一乘积子模块,用于分别计算每个工作节点的cpu可用数据与所述cpu权重的乘积,得到每个工作节点的cpu分值;
第二乘积子模块,用于分别计算每个工作节点的内存可用数据与所述内存权重的乘积,得到每个工作节点的内存分值;
加权求和子模块,用于分别计算每个工作节点的cpu分值以及内存分值的加权求和,得到所述打分结果。
进一步的,所述计算模块包括:
子模块,用于获取所述各个自动化测试用例的执行时间;
子模块,用于根据最少总执行时间策略对所述执行时间进行时间分配操作,得到所述分组策略。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的应用于测试用例分布式运行的智能调度方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的应用于测试用例分布式运行的智能调度方法的步骤。
本申请提供了一种应用于测试用例分布式运行的智能调度方法,包括:接收用户终端发送得调度请求,其中,所述调度请求至少携带有工作集群标识;调用Kubeconfig工具导入与所述工作集群标识相对应的目标工作集群以及与所述目标工作集群相对应的目标工作节点;获取预先配置的自动化测试用例执行脚本,并执行所述自动化测试用例执行脚本;获取执行所述自动化测试用例执行脚本时所述工作节点的cpu可用数据、内存可用数据以及节点空闲数据;根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果;基于预设的可用打分阈值对所述打分结果进行筛选操作,得到可用打分结果以及与所述可用打分结果相对应的可用工作节点;调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略;根据所述可用工作节点以及所述分组策略生成调度策略;根据所述调度策略对所述自动化测试用例执行脚本进行调度操作。与现有技术相比,本申请通过打分策略对工作节点打分排序、通过分组策略对测试用例分组,最终结合Kubernetes集群节点选择器、节点亲和性等特性,实现智能化的测试用例分布式调度分发能力,平衡工作节点压力,提高资源利用率,降低用例整体执行时间。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2是本申请实施例一提供的应用于测试用例分布式运行的智能调度方法的实现流程图;
图3是本申请实施例二提供的应用于测试用例分布式运行的智能调度装置的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的应用于测试用例分布式运行的智能调度方法一般由服务器/终端设备执行,相应地,应用于测试用例分布式运行的智能调度装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的应用于测试用例分布式运行的智能调度方法的一个实施例的流程图。所述的应用于测试用例分布式运行的智能调度方法,包括:步骤S201、步骤S202、步骤S203、步骤S204、步骤S205、步骤S206以及步骤S207。
在步骤S201中,接收用户终端发送得调度请求,其中,调度请求至少携带有工作集群标识。
在本申请实施例中,用户终端指的是用于执行本申请提供的预防证件滥用的图像处理方法的终端设备,该用户终端可以是诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端,应当理解,此处对用户终端的举例仅为方便理解,不用于限定本申请。
在步骤S202中,调用Kubeconfig工具导入与工作集群标识相对应的目标工作集群以及与目标工作集群相对应的目标工作节点。
在本申请实施例中,在本系统使用Kubeconfig导入工作集群,并可以对工作节点进行上下线管理。
在本申请实施例中,纳管测试环境到本系统中,具体地,纳管测试业务对应的测试环境、预生产环境、生产环境等对象到本系统。
在步骤S203中,获取预先配置的自动化测试用例执行脚本,并执行自动化测试用例执行脚本。
在本申请实施例中,获取自动化测试用例执行脚本之后,触发一次执行任务,可以选择本次执行所用的打分算法、分组算法,选择本次的测试环境。
在步骤S204中,获取执行自动化测试用例执行脚本时工作节点的cpu可用数据、内存可用数据以及节点空闲数据。
在步骤S205中,根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果。
在步骤S206中,基于预设的可用打分阈值对打分结果进行筛选操作,得到可用打分结果以及与可用打分结果相对应的可用工作节点。
在本申请实施例中,根据节点的cpu、内存等资源可用情况及节点空闲情况进行打分,并按照分数大小进行排序,从中剔除不可用/得分过低节点以防止后续用例组被调度到这些节点而导致任务的阻塞,得到可用工作节点列表。
在本申请实施例中,打分算法需要的资源指标定义,包括节点可分配cpu、可分配内存、剩余存储容量,网络带宽、价格、能耗等,打分算法包括综合最优、性能最优、成本最优等算法。通过对各资源指标设置不同的权重来实现算法侧重点,平台用户可通过自定义权限得到定制化的打分算法。
在步骤S207中,调用用例历史数据库,并基于用例历史数据库中的历史数据以及分组算法对自动化测试用例执行脚本进行分组操作,得到分组策略。
在本申请实施例中,基于用例历史执行数据和机器学习方法如KNN算法对自动化用例进行分组,对于新加入的未执行过的用例,默认单个用例执行时间相同,因此均分到用例组中。
在本申请实施例中,结合可用工作节点列表与用例分组策略,生成工作节点与用例组一一对应的调度策略,系统根据生成的调度策略、选择的测试环境及配置脚本,生成YAML形式的集群控制器部署文件并下发到集群执行。
在本申请实施例中,分组算法包括传统基于执行时间、基于资源需求或机器学习算法如K最近邻(KNN)、决策树、支持向量机(SVM)、神经网络等。具体的,基于执行时间的分组算法,通过将用例按照执行时间长短进行分组,使得每个组的执行时间相对均衡。如最终选择3个节点执行本次自动化测试任务,则将测试用例分为3组,每组的执行时间相对平均,使得每组执行完成时间相对均衡;基于K最近邻(KNN)的分组算法,包括数据预处理、特征选择和提取、模型训练与评估、参数调整与优化及部署应用阶段:(1)首先收集和整理自动化测试用例的历史执行数据,如执行时间、资源需求等特征;(2)针对收集到的特征,提取用例的执行时间、资源需求、测试文件名等关键特征;(3)得到训练数据后进行模型训练与参数调优,如调整KNN算法中的最近邻个数、距离度量方法;(4)在得到训练好的模型后,将其应用于实际的自动化测试用例分组场景中。每次创建自动化测试任务时,根据模型的预测结果,将用例分配到合适的组中,并进行调度和执行,并收集运行数据作为模型调优使用。
在步骤S208中,根据可用工作节点以及分组策略生成调度策略。
在步骤S209中,根据调度策略对自动化测试用例执行脚本进行调度操作。
在本申请实施例中,提供了一种应用于测试用例分布式运行的智能调度方法,包括:接收用户终端发送得调度请求,其中,调度请求至少携带有工作集群标识;调用Kubeconfig工具导入与工作集群标识相对应的目标工作集群以及与目标工作集群相对应的目标工作节点;获取预先配置的自动化测试用例执行脚本,并执行自动化测试用例执行脚本;获取执行自动化测试用例执行脚本时工作节点的cpu可用数据、内存可用数据以及节点空闲数据;根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果;基于预设的可用打分阈值对打分结果进行筛选操作,得到可用打分结果以及与可用打分结果相对应的可用工作节点;调用用例历史数据库,并基于用例历史数据库中的历史数据以及分组算法对自动化测试用例执行脚本进行分组操作,得到分组策略;根据可用工作节点以及分组策略生成调度策略;根据调度策略对自动化测试用例执行脚本进行调度操作。与现有技术相比,本申请通过打分策略对工作节点打分排序、通过分组策略对测试用例分组,最终结合Kubernetes集群节点选择器、节点亲和性等特性,实现智能化的测试用例分布式调度分发能力,平衡工作节点压力,提高资源利用率,降低用例整体执行时间。
在本实施例的一些可选的实现方式中,上述步骤S205具体包括以下步骤:
获取预设的cpu权重以及内存权重;
分别计算每个工作节点的cpu可用数据与cpu权重的乘积,得到每个工作节点的cpu分值;
分别计算每个工作节点的内存可用数据与内存权重的乘积,得到每个工作节点的内存分值;
分别计算每个工作节点的cpu分值以及内存分值的加权求和,得到打分结果。
在本申请实施例中,提供的是一种性能最优打分算法,关注的资源指标是处理能力和内存大小,其实现为:设置各资源指标权重:cpu-0.7,内存-0.3,网络带宽、价格、能耗均设为0;从每个节点收集资源指标数据,并将它们归一化为一个统一区间(例如0到1);打分:根据设置的权重和优先级计算每个节点的最终得分。具体的:
a.首先,将每个节点的可分配cpu值乘以权重(Node A的处理能力得分=可分配cpu值*0.7,Node B的处理能力得分=可分配cpu值*0.7,Node C的处理能力得分=可分配cpu值*0.7)。
b.然后,将每个节点的内存大小乘以权重(Node A的内存大小得分=Node A的内存大小*0.3,Node B的内存大小得分=Node B的内存大小*0.3,Node C的内存大小得分=Node C的内存大小*0.3)。
c.接下来,对指标得分进行加权求和。根据前面的定义,最终得分为处理能力得分+内存大小得分(Node A的最终得分=Node A的处理能力得分+Node A的内存大小得分,Node B的最终得分=Node B的处理能力得分+Node B的内存大小得分,Node C的最终得分=Node C的处理能力得分+Node C的内存大小得分)。
在本实施例的一些可选的实现方式中,上述步骤S207具体包括以下步骤:
获取各个自动化测试用例的执行时间;
根据最少总执行时间策略对执行时间进行时间分配操作,得到分组策略。
在本申请实施例中,提供了基于执行时间的分组策略,其实现方式:按照用例的执行时间从小到大进行排序,然后将用例平均分配到多个组中,使得每个组的总执行时间相对均衡。
在实际应用中,假设有10个用例的执行时间如下(以秒为单位):[5,8,7,10,6,9,4,12,3,11]。按照执行时间排序后,我们可以将它们分配到两个组中,每个组的执行时间总和接近:[5,8,7,4,3]和[10,6,9,12,11]。
在本实施例的一些可选的实现方式中,上述步骤S207具体包括以下步骤:
获取各个自动化测试用例的资源需求量;
根据资源需求平均策略对资源需求量进行资源分配操作,得到分组策略。
在本申请实施例中,提供了基于资源需求的分组策略,其实现方式:根据用例的资源需求,如CPU和内存等,将用例分配到不同组中,以确保每个组的资源需求相对均衡。
在实际应用中,假设有10个用例的资源需求如下(以CPU百分比为例):[20,10,15,25,12,18,8,30,5,22]。我们可以将它们分配到两个组中,使得每个组的CPU资源需求总和接近:[20,10,15,25,5]和[12,18,8,30,22]。
在本实施例的一些可选的实现方式中,上述步骤S207具体包括以下步骤:
获取各个自动化测试用例的执行特性;
将执行特性相同的自动化测试用例划分为同一组别,得到分组策略。
在本申请实施例中,提供了基于执行特性的分组策略,其实现方式:通过分析用例的执行特性或模式,将具有相似执行模式的用例划分到同一组中,以便更好地运行和管理。
在实际应用中,假设有10个用例的执行特性如下:[A,B,A,C,B,C,A,B,C,C]。可以根据执行特性将它们分配到不同组中,例如,将所有'A'特性的用例放在一起,所有'B'特性的用例放在一起,所有'C'特性的用例放在一起。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
实施例二
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种应用于测试用例分布式运行的智能调度装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例的应用于测试用例分布式运行的智能调度装置200包括:请求获取模块210、数据导入模块220、脚本执行模块230、数据采集模块240、打分模块250、筛选模块260、分组模块270、策略生成模块280以及调度操作模块290,其中:
请求获取模块210,用于接收用户终端发送得调度请求,其中,调度请求至少携带有工作集群标识;
数据导入模块220,用于调用Kubeconfig工具导入与工作集群标识相对应的目标工作集群以及与目标工作集群相对应的目标工作节点;
脚本执行模块230,用于获取预先配置的自动化测试用例执行脚本,并执行自动化测试用例执行脚本;
数据采集模块240,用于获取执行自动化测试用例执行脚本时工作节点的cpu可用数据、内存可用数据以及节点空闲数据;
打分模块250,用于根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果;
筛选模块260,用于基于预设的可用打分阈值对打分结果进行筛选操作,得到可用打分结果以及与可用打分结果相对应的可用工作节点;
分组模块270,用于调用用例历史数据库,并基于用例历史数据库中的历史数据以及分组算法对自动化测试用例执行脚本进行分组操作,得到分组策略;
策略生成模块280,用于根据可用工作节点以及分组策略生成调度策略;
调度操作模块290,用于根据调度策略对自动化测试用例执行脚本进行调度操作。
在本申请实施例中,提供了一种应用于测试用例分布式运行的智能调度装置200,包括:请求获取模块210,用于接收用户终端发送得调度请求,其中,调度请求至少携带有工作集群标识;数据导入模块220,用于调用Kubeconfig工具导入与工作集群标识相对应的目标工作集群以及与目标工作集群相对应的目标工作节点;脚本执行模块230,用于获取预先配置的自动化测试用例执行脚本,并执行自动化测试用例执行脚本;数据采集模块240,用于获取执行自动化测试用例执行脚本时工作节点的cpu可用数据、内存可用数据以及节点空闲数据;打分模块250,用于根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果;筛选模块260,用于基于预设的可用打分阈值对打分结果进行筛选操作,得到可用打分结果以及与可用打分结果相对应的可用工作节点;分组模块270,用于调用用例历史数据库,并基于用例历史数据库中的历史数据以及分组算法对自动化测试用例执行脚本进行分组操作,得到分组策略;策略生成模块280,用于根据可用工作节点以及分组策略生成调度策略;调度操作模块290,用于根据调度策略对自动化测试用例执行脚本进行调度操作。与现有技术相比,本申请通过打分策略对工作节点打分排序、通过分组策略对测试用例分组,最终结合Kubernetes集群节点选择器、节点亲和性等特性,实现智能化的测试用例分布式调度分发能力,平衡工作节点压力,提高资源利用率,降低用例整体执行时间。
在本实施例的一些可选的实现方式中,上述分组模块270模块包括:权重获取子模块、第一乘积子模块、第二乘积子模块以及加权求和子模块,其中:
权重获取子模块,用于获取预设的cpu权重以及内存权重;
第一乘积子模块,用于分别计算每个工作节点的cpu可用数据与cpu权重的乘积,得到每个工作节点的cpu分值;
第二乘积子模块,用于分别计算每个工作节点的内存可用数据与内存权重的乘积,得到每个工作节点的内存分值;
加权求和子模块,用于分别计算每个工作节点的cpu分值以及内存分值的加权求和,得到打分结果。
在本实施例的一些可选的实现方式中,上述计算模块270包括:执行时间获取子模块以及时间分配子模块,其中:
执行时间获取子模块,用于获取各个自动化测试用例的执行时间;
时间分配子模块,用于根据最少总执行时间策略对执行时间进行时间分配操作,得到分组策略。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备300包括通过系统总线相互通信连接存储器310、处理器320、网络接口330。需要指出的是,图中仅示出了具有组件310-330的计算机设备300,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器310至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器310可以是所述计算机设备300的内部存储单元,例如该计算机设备300的硬盘或内存。在另一些实施例中,所述存储器310也可以是所述计算机设备300的外部存储设备,例如该计算机设备300上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器310还可以既包括所述计算机设备300的内部存储单元也包括其外部存储设备。本实施例中,所述存储器310通常用于存储安装于所述计算机设备300的操作系统和各类应用软件,例如应用于测试用例分布式运行的智能调度方法的计算机可读指令等。此外,所述存储器310还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器320在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器320通常用于控制所述计算机设备300的总体操作。本实施例中,所述处理器320用于运行所述存储器310中存储的计算机可读指令或者处理数据,例如运行所述应用于测试用例分布式运行的智能调度方法的计算机可读指令。
所述网络接口330可包括无线网络接口或有线网络接口,该网络接口330通常用于在所述计算机设备300与其他电子设备之间建立通信连接。
本申请提供的计算机设备,通过打分策略对工作节点打分排序、通过分组策略对测试用例分组,最终结合Kubernetes集群节点选择器、节点亲和性等特性,实现智能化的测试用例分布式调度分发能力,平衡工作节点压力,提高资源利用率,降低用例整体执行时间。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的应用于测试用例分布式运行的智能调度方法的步骤。
本申请提供的计算机可读存储介质,通过打分策略对工作节点打分排序、通过分组策略对测试用例分组,最终结合Kubernetes集群节点选择器、节点亲和性等特性,实现智能化的测试用例分布式调度分发能力,平衡工作节点压力,提高资源利用率,降低用例整体执行时间。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种应用于测试用例分布式运行的智能调度方法,其特征在于,包括下述步骤:
接收用户终端发送得调度请求,其中,所述调度请求至少携带有工作集群标识;
调用Kubeconfig工具导入与所述工作集群标识相对应的目标工作集群以及与所述目标工作集群相对应的目标工作节点;
获取预先配置的自动化测试用例执行脚本,并执行所述自动化测试用例执行脚本;
获取执行所述自动化测试用例执行脚本时所述工作节点的cpu可用数据、内存可用数据以及节点空闲数据;
根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果;
基于预设的可用打分阈值对所述打分结果进行筛选操作,得到可用打分结果以及与所述可用打分结果相对应的可用工作节点;
调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略;
根据所述可用工作节点以及所述分组策略生成调度策略;
根据所述调度策略对所述自动化测试用例执行脚本进行调度操作。
2.根据权利要求1所述的应用于测试用例分布式运行的智能调度方法,其特征在于,所述根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果的步骤,还包括下述步骤:
获取预设的cpu权重以及内存权重;
分别计算每个工作节点的cpu可用数据与所述cpu权重的乘积,得到每个工作节点的cpu分值;
分别计算每个工作节点的内存可用数据与所述内存权重的乘积,得到每个工作节点的内存分值;
分别计算每个工作节点的cpu分值以及内存分值的加权求和,得到所述打分结果。
3.根据权利要求1所述的应用于测试用例分布式运行的智能调度方法,其特征在于,所述调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略的步骤,具体包括下述步骤:
获取所述各个自动化测试用例的执行时间;
根据最少总执行时间策略对所述执行时间进行时间分配操作,得到所述分组策略。
4.根据权利要求1所述的应用于测试用例分布式运行的智能调度方法,其特征在于,所述调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略的步骤,具体包括下述步骤:
获取所述各个自动化测试用例的资源需求量;
根据资源需求平均策略对所述资源需求量进行资源分配操作,得到所述分组策略。
5.根据权利要求1所述的应用于测试用例分布式运行的智能调度方法,其特征在于,所述调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略的步骤,具体包括下述步骤:
获取所述各个自动化测试用例的执行特性;
将执行特性相同的自动化测试用例划分为同一组别,得到所述分组策略。
6.一种应用于测试用例分布式运行的智能调度装置,其特征在于,包括:
请求获取模块,用于接收用户终端发送得调度请求,其中,所述调度请求至少携带有工作集群标识;
数据导入模块,用于调用Kubeconfig工具导入与所述工作集群标识相对应的目标工作集群以及与所述目标工作集群相对应的目标工作节点;
脚本执行模块,用于获取预先配置的自动化测试用例执行脚本,并执行所述自动化测试用例执行脚本;
数据采集模块,用于获取执行所述自动化测试用例执行脚本时所述工作节点的cpu可用数据、内存可用数据以及节点空闲数据;
打分模块,用于根据预设打分机制对各个工作节点的cpu可用数据、内存可用数据以及节点空闲数据进行打分操作,得到打分结果;
筛选模块,用于基于预设的可用打分阈值对所述打分结果进行筛选操作,得到可用打分结果以及与所述可用打分结果相对应的可用工作节点;
分组模块,用于调用用例历史数据库,并基于所述用例历史数据库中的历史数据以及分组算法对所述自动化测试用例执行脚本进行分组操作,得到分组策略;
策略生成模块,用于根据所述可用工作节点以及所述分组策略生成调度策略;
调度操作模块,用于根据所述调度策略对所述自动化测试用例执行脚本进行调度操作。
7.根据权利要求6所述的应用于测试用例分布式运行的智能调度装置,其特征在于,所述打分模块包括:
权重获取子模块,用于获取预设的cpu权重以及内存权重;
第一乘积子模块,用于分别计算每个工作节点的cpu可用数据与所述cpu权重的乘积,得到每个工作节点的cpu分值;
第二乘积子模块,用于分别计算每个工作节点的内存可用数据与所述内存权重的乘积,得到每个工作节点的内存分值;
加权求和子模块,用于分别计算每个工作节点的cpu分值以及内存分值的加权求和,得到所述打分结果。
8.根据权利要求6所述的应用于测试用例分布式运行的智能调度装置,其特征在于,所述计算模块包括:
执行时间获取子模块,用于获取所述各个自动化测试用例的执行时间;
时间分配子模块,用于根据最少总执行时间策略对所述执行时间进行时间分配操作,得到所述分组策略。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至5中任一项所述的应用于测试用例分布式运行的智能调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至5中任一项所述的应用于测试用例分布式运行的智能调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311697256.8A CN117806951A (zh) | 2023-12-12 | 2023-12-12 | 应用于测试用例分布式运行的智能调度方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311697256.8A CN117806951A (zh) | 2023-12-12 | 2023-12-12 | 应用于测试用例分布式运行的智能调度方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117806951A true CN117806951A (zh) | 2024-04-02 |
Family
ID=90419036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311697256.8A Pending CN117806951A (zh) | 2023-12-12 | 2023-12-12 | 应用于测试用例分布式运行的智能调度方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117806951A (zh) |
-
2023
- 2023-12-12 CN CN202311697256.8A patent/CN117806951A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115794341A (zh) | 基于人工智能的任务调度方法、装置、设备及存储介质 | |
CN114564294A (zh) | 智能服务编排方法、装置、计算机设备及存储介质 | |
CN116820714A (zh) | 一种算力设备的调度方法、装置、设备和存储介质 | |
CN117234844A (zh) | 云服务器异常管理方法、装置、计算机设备及存储介质 | |
CN116843395A (zh) | 一种业务系统的告警分级方法、装置、设备及存储介质 | |
CN115378806A (zh) | 流量分配方法、装置、计算机设备及存储介质 | |
CN115292580A (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN115185625A (zh) | 基于可配置卡片的自推荐式界面更新方法及其相关设备 | |
CN117806951A (zh) | 应用于测试用例分布式运行的智能调度方法及相关设备 | |
CN112182107A (zh) | 名单数据获取方法、装置、计算机设备及存储介质 | |
CN117519996B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN111327513B (zh) | 消息数据的推送方法、装置、计算机设备及存储介质 | |
CN114545328B (zh) | 光缆巡线设备的跟踪方法、系统、计算机设备及存储介质 | |
CN117851055A (zh) | 一种任务调度方法、装置、设备及其存储介质 | |
CN117395253A (zh) | 一种负载均衡方法、装置、设备及其存储介质 | |
CN115080045A (zh) | 链路生成方法、装置、计算机设备及存储介质 | |
CN117853241A (zh) | 一种风险服务商识别方法、装置、设备及其存储介质 | |
CN114663073A (zh) | 异常节点的发现方法及其相关设备 | |
CN117395310A (zh) | 任务处理方法、装置、计算机设备及存储介质 | |
CN117252362A (zh) | 基于人工智能的调度方法、装置、计算机设备及存储介质 | |
CN117707737A (zh) | 一种任务调度优化方法、装置、设备及其存储介质 | |
CN115239185A (zh) | 服务商的分配方法、装置、计算机设备及存储介质 | |
CN118041977A (zh) | 微服务组件的处理方法、装置、计算机设备及存储介质 | |
CN116401061A (zh) | 资源数据的处理方法、装置、计算机设备及存储介质 | |
CN116468563A (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 |