通过合理调度设备,降低企业设备成本

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 岩鼠云设备平台,是通过什么策略,保障云真机租用及自动化测试的成功执行,从而帮助企业降低设备成本的呢?

背景

岩鼠平台,支持云真机租用,也支持自动化测试。其背后都是大量设备资源的使用,而真机测试设备及自动化测试的设备资源是否能合理利用,关系到企业的设备成本。如何达到设备利用最大化呢,有几个维度需要考虑:

  • 在保证真机测试需求下,合理利用空闲机器进行自动化测试
  • 不同自动化测试类型测试时长不同
  • 不同测试类型对设备机型要求不同
  • 更大程度的延缓设备老化

为了保证真机测试需求,同时提升整体自动化测试的成功率和稳定性,也为了能让各台设备达到最大利用率,岩鼠平台做了不少设计和优化,积累了一些经验,在此与各位读者分享一下。

解决方案

整体概述

首先,由于云真机和自动化都会占用机器,我们可以根据云真机的使用需求,为云真机和不同的自动化测试各自分配自己的设备池子。但由于需求是在一定范围内波动,不是完全定量的,因此可以将部分设备设置为共用,这样能最大程度的将设备利用起来。

而其中的难点又在于,对于自动化测试来说,有多个设备池子,不同测试对设备的要求又不同,通过什么样的策略才能更大程度的保障任务成功率和设备利用率呢?接下来将对此重点介绍。

自动化测试中,从任务创建开始,到任务在各个具体设备上执行,总共经历了三个阶段,分别是:设备准备、设备规则筛选、设备排位与占用,可选设备逐阶段减少,大体如下:

阶段一:设备准备

本阶段主要是初步筛选出适合待分配任务的基础设备池,其中主要有以下流程:

  1. 若用户创建任务时有指定的分配策略,则预加载,否则使用默认策略,例如目前岩鼠平台开放了“随机”策略,则在此处会预加载“随机”策略设置的关联约束和筛选偏好;
  2. 不同的测试类型(如兼容性,或者是深度智能遍历),需要加载不同的设备组,一是考虑到术业有专攻,里面都是经过平台精心挑选和分类的适合该测试场景的设备,二是尽量减少彼此之间的影响,例如对于同一台设备,平台是会争取避免上一个跑偏重于性能测试的任务,而下一个却是跑偏重于稳定性的任务;
  3. 筛选用户权限范围内的设备;
  4. 准备好设备的各种筛选属性,并根据一定时间内的已运行任务数和运行时间,通过特定公式算出一个值,可以认为这个值就是该设备的疲劳系数。

通过上述可知,此处提到的策略和设备组,都是平台已经预置好的,也会随着已有的运行结果和实际的业务发展而持续演变,并结合大数据平台进行优化,这里就不再展开了。

阶段二:设备规则筛选

从处理逻辑来看,这阶段更像是一个规则引擎,根据需求可加载不同的插件,进一步优选出符合实际测试要求的可运行设备池,目前已支持的有:

  • 根据app设置去筛选所需设备的最低/最高版本,例如某些应用只能运行在Android 6.0以上的设备,这也是保证任务成功的前提条件之一;
  • 默认会根据疲劳系数和过往任务成功率进行优先级排列,也可以接受自定义权值,例如是看重成功率,则将成功率的权值提高,或者是想要优先使用较“新”的设备,则可以结合疲劳系数和入库时间传入权值,这些都会影响到设备的推荐分数;
  • 默认是“随机”策略,但也可定制其它策略,例如Android的API遍历,就是从每个Android版本里面各挑出一台设备组成测试,以达到测试版本兼容性的目的;
  • 可指定特定品牌或特定机型进行测试,当然也少不了TOP10、TOP20、TOP50的维度;
  • ……

这里的筛选插件相互之间基本是“且”的关系,即对设备进行层层过滤,若有特殊需求,也可以配置出“或”的关联;对于有经验的开发者,查看接口文档之后,一般一两个小时即可开发出一个新插件,测试通过之后就能注册到容器中,从而对外提供服务。

阶段三:设备排位与占用

经过层层筛选之后,最终落实到占用设备的环节,又细分出两大步骤:

  1. 经过上面两个步骤,每台设备都会有一个推荐分数,此处会根据分数进行区间划分(可以考虑下为啥不直接按分数高低倒序分配),高分区间会优先被占,分到同一区间的则会进行疲劳系数排队,系数越小,排名越前,最终得到提权后的设备队列;若排名也一致,则再进行随机出列的处理;
  2. 从队列取出第一台设备,若设备能被占用,则落实到该子任务;若设备占用失败,则继续下一设备的尝试,直到没有空余设备,或清空了子任务列表,则整体分配完毕。

优缺点

人无完人,更何况是管理了这么多“性格各异”的设备的方案呢,先说说好的方面:

  • 由于疲劳系数的引入,除开某些崩得太严重的个体,用于自动化测试的设备都有机会、且平均地被分配到任务,需要注意的是,这里说的平均,不是绝对的平均,还是要看设备本身的素质,若能力越强,分到的任务也多,反之亦然;
  • 筛选插件可不断扩展,快速满足各种分配需求;
  • 毕竟最终都是对口的设备,可有效提高任务成功率。
    至于不好的,在设计之初也是有所预见:
  • 存在一些重复或无用的查询问题,例如算了好几台设备的疲劳系数,但可能在筛选中早早就被过滤了;
  • 并发性能受到约束,考虑这么一个场景:一个任务不要的设备,却是另一个任务需要的。

未来方向

更进一步提升设备分配策略和算法,更大程度的提升设备利用率,在满足业务需求的情况下,降低成本:

  • 彻底的分布式处理;
  • 结合大数据,构筑更全面的优选规则;
  • 真正AI的引入,实现更精准、更快速的推荐,减少人工开发。

免费试用岩鼠云设备平台

赶快来试用下岩鼠云真机吧!每天都有免费试用体验额度哦。

岩鼠云设备平台-云端设备,触手可及

相关文章
|
Shell 开发工具 Android开发
7.0、Android Studio命令行工具
命令行工具分成SDK工具和平台工具。 SDK工具 SDK工具跟随SDK安装包安装并随时更新。
1673 0
|
Java Android开发 网络协议
|
7天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
478 123
|
9天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
452 127
|
17天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
11天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
786 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
3天前
|
人工智能 安全 Cloud Native
Higress 新发布:AI Gateway 能力增强,Gateway API 及其推理扩展持续打磨
增强 AI 网关能力,持续打磨 Gateway API 及其推理扩展。
303 124

热门文章

最新文章