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

简介: 岩鼠云设备平台,是通过什么策略,保障云真机租用及自动化测试的成功执行,从而帮助企业降低设备成本的呢?

背景

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

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

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

解决方案

整体概述

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

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

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

阶段一:设备准备

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

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

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

阶段二:设备规则筛选

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

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

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

阶段三:设备排位与占用

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

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

优缺点

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

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

未来方向

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

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

免费试用岩鼠云设备平台

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

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

相关文章
|
测试技术 Android开发 开发者
使用Android远程真机租用|学习笔记
快速学习使用Android远程真机租用
862 0
使用Android远程真机租用|学习笔记
|
Shell 开发工具 Android开发
7.0、Android Studio命令行工具
命令行工具分成SDK工具和平台工具。 SDK工具 SDK工具跟随SDK安装包安装并随时更新。
1615 0
|
Java Android开发 网络协议
|
20天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
32272 117
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
15天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
6837 18
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
14天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
4809 12
|
16天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
5685 21
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
12天前
|
人工智能 JavaScript 安全
Claude Code 安装指南
Claude Code 是 Anthropic 推出的本地 AI 编程助手,支持 Mac/Linux/WSL/Windows 多平台一键安装(Shell/PowerShell/Homebrew/NPM),提供 CLI 交互、代码生成、审查、Git 提交等能力,并内置丰富斜杠命令与自动更新机制。
4300 0