公告资讯

热门消息 > 零代码自动测试,星界云手机ADB脚本实践

零代码自动测试,星界云手机ADB脚本实践

2026-04-17

零代码自动测试,星界云手机ADB脚本实践

“真机又掉线了!”凌晨两点,测试群里弹出一张截图——Jenkins构建失败,原因是实验室里30台旧手机中的一台自动升级系统,导致ADB授权失效。这不是第一次,也不会是最后一次。移动APP持续集成最怕三件事:设备碎片化、数据回传断点、环境不可复制。传统做法买机柜、布线、人工值守,成本一路飙升,却依然挡不住“黑天鹅”。

把真机搬到云端,是业内近两年最热的解法。星界云手机把ARM服务器、GPU加速、安卓容器做成按需租用的“手机即服务”,24小时不掉线,还能一键开ADB白名单,让Jenkins直接把它当成本地设备调用。下面用一次真实迭代,看看零代码思路如何把测试时长砍掉80%。

一、移动APP持续集成痛点:真机分散、数据回传难

  1. 设备分散:线下实验室跨楼层,USB Hub级联,ADB端口常冲突。
  2. 数据回传:Logcat、截图、崩溃日志需要手动adb pull,再上传到SonarQube或Allure,链路一长就丢包。
  3. 环境漂移:同一批手机,今晚跑通,明早系统静默升级,脚本全军覆没。

星界云手机把“物理手机”抽象成“容器镜像”,支持Android 7.1/11/13三版本并列,创建时锁定系统补丁号,再也不怕半夜升级。

二、星界云手机ADB白名单连接Jenkins

步骤1:在控制台勾选50台云手机,批量开启ADB,填写Jenkins所在服务器公网IP到白名单,30秒后每部手机拿到独立域名+端口,例如adb connect cep-18-123-45-67.chinac.com:20018
步骤2:在Jenkins节点安装android-sdk-linux,把云手机列表写进parallel流水线,每条分支对应一个ANDROID_SERIAL
步骤3:构建触发后,流水线并发执行,云端设备零掉线,平均握手延迟38 ms,与本地USB体验无异。

三、Python+ADB批量安装、Monkey压力测试示例

from adbutils import adb
import concurrent.futures, random, time

devices = [d.serial for d in adb.device_list()]
apk_path = "app-debug.apk"

def job(serial):
    d = adb.device(serial)
    d.install(apk_path, nolaunch=True)
    pkg = d.shell("dumpsys package | grep -E 'packageName.*com.demo'").split()[0].split('=')[1]
    seed = random.randint(1000, 9999)
    d.shell(f"monkey -p {pkg} --pct-touch 60 --pct-motion 20 --throttle 200 -v 50000 -s {seed} > /sdcard/monkey.txt")
    d.pull("/sdcard/monkey.txt", f"./logs/{serial}.txt")
    return f"{serial} finished"

with concurrent.futures.ThreadPoolExecutor(max_workers=50) as pool:
    res = pool.map(job, devices)

脚本零依赖UI自动化框架,纯ADB指令,5分钟内完成50台安装+50万次事件注入,回传日志自动按序列号归档。

四、实时预览截图与Logcat云端归档

星界云手机控制台自带“实时预览”窗口,支持1080P 30 fps MJPEG流;无需本地scrcpy,直接在浏览器里多点触控。
每条流水线分支在Monkey结束后调用adb shell screencap -p /sdcard/end.png,再adb pull到工作区,通过archiveArtifacts上传到Jenkins制品库;Logcat同理,用sed截取START|CRASH|ANR关键字,生成logcat-${BUILD_NUMBER}.txt,统一存入Elasticsearch,Grafana仪表盘实时展示崩溃曲线。

五、并行50台云手机,测试时长缩短80%

线下实验室原先需要8小时才能完成的全量回归,拆解如下:

阶段线下30台星界50台缩短比例
安装+权限45 min3 min93%
Monkey 5W事件6 h1.2 h80%
日志整理30 min0 min(自动)100%
总耗时8 h1.5 h81%

GPU硬件加速让高帧游戏不再掉帧,云端快照可在任意节点秒级回滚到“干净”镜像,下一轮回归零等待。
如果你也想把真机室搬到云上,现在打开星界云手机官网注册账号,联系客服可申请1天免费试用,50台高配版瞬间到账。零代码、零布线,让持续集成回归“写代码”本身,而不是“修手机”。