公告资讯

热门消息 > 零代码跑通ADB:星界云手机开放IP白名单,教你把Jenkins自动化测试搬进云端

零代码跑通ADB:星界云手机开放IP白名单,教你把Jenkins自动化测试搬进云端

2026-04-13

“2024 年安卓自动化测试,最难的不是写脚本,而是让脚本在 100 台真机上同时跑起来。”——某头部社交 App 测试负责人在最近一次 DevOps Meetup 上的吐槽,让台下一片苦笑。
过去一年,国内 Top 200 的安卓应用平均每月发版 4.3 次,每次回归至少 800 条用例,真机采购预算动辄百万;更尴尬的是,凌晨 3 点的 CI 任务常常因为一台低端机掉线全部重跑,测试同学被“毒打”到怀疑人生。

如果你也在为“真机荒”头疼,今天的文章给你一条新思路:把 Jenkins 搬进云端,用零代码的方式跑通 ADB。主角正是刚刚开放「IP 白名单」功能的星界云手机——一台长在 IDC 里的安卓真机,却能像 Docker 容器一样按需伸缩。


一、为什么安卓 CI/CD 离不开“云真机”

  1. 并发量高:一次回归覆盖 30 款机型,本地至少囤 60 台才能错峰。
  2. 碎片化严重:Android 7 到 14、720P 到 2K、刘海到水滴,采购永远跟不上发版节奏。
  3. 运维成本高:真机掉电、掉网、OTA 弹窗,任何一个异常都足以让自动化全灭。

星界云手机把上述痛点打包成“免运维、按小时计费”的云服务:7×24 在线、GPU 硬件加速、支持 ROOT 开关,还能一键生成自定义镜像。最关键的是——它把 ADB 端口直接开放到公网,通过 IP 白名单做鉴权,本地 Jenkins 零改造就能调用,相当于把“真机池”变成了“云函数”。


二、星界 API 三大亮点,测试同学看完直接“真香”

  1. ADB over Internet
    每台云手机自动分配 adb-host:port,公网可达,延迟稳定在 40 ms 以内,再也不用 VPN 或者 Frp 反向代理。
  2. IP 白名单鉴权
    主账号在控制台填入办公/IDC 出口 IP 即可,粒度到数据中心,一次设置对账号下所有云手机生效;子账号无权限改白名单,彻底杜绝“删库跑路”。
  3. JSON 状态回调
    云手机开机、关机、异常、镜像重置都会主动 POST 给 Jenkins Webhook,方便流水线实时判断“设备是否可用”,失败任务秒级重排。

三、30 分钟实操:Docker 拉起星界 ADB 容器 → Gradle 并行测试 → Allure 报告回传

以下步骤全部基于官方开源镜像 chinac/star-adb-bridge,无需写一行 Java/Python。

1. 获取 ADB 地址

登录控制台,勾选 20 台「尊享版」云手机 → 开启 ADB → 复制地址列表到 devices.txt,格式:

adb-host1:5555
adb-host2:5555
...

2. 启动桥接容器

docker run -d --name star-adb \
  -v $(pwd)/devices.txt:/devices.txt \
  -e JENKINS_URL=http://jenkins.intra \
  -e WEBHOOK_TOKEN=star2024 \
  chinac/star-adb-bridge:latest

容器内部自动执行 adb connect,并通过白名单 IP 与云手机建立 TLS 隧道。

3. Jenkins Pipeline 示例

pipeline {
  agent { label 'android-builder' }
  stages {
    stage('Parallel Test') {
      parallel {
        stage('Phone-1') { steps { sh './gradlew testPhone1' } }
        stage('Phone-2') { steps { sh './gradlew testPhone2' } }
        ...
      }
    }
  }
  post {
    always {
      allure includeProperties: false, results: [[path: 'build/allure-results']]
    }
  }
}

Gradle 通过 ANDROID_SERIAL=adb-host1:5555 直连云手机,Allure 报告在 90 秒内回传 Jenkins,并自动归档到星界对象存储,保留 30 天,随时可下载录屏与日志。


四、性能实测:本地 8 台 VS 云端 20 台

场景 本地真机 星界云手机
设备数 8 台(含 2 台掉电) 20 台尊享版
并发用例 800 800
平均耗时 2 h 15 min 51 min
成功率 92 % 99.2 %
成本 采购 8 万 + 机房 5 千/月 60 元 / 月(夜间 0.15 元/小时 × 20 台)

测试时长直接缩短 62%,成功率提升 7.2%,最关键的是——再也不用半夜跑去机房重启手机。


五、极客彩蛋:Python 脚本定时开关机,夜跑单元测试仅 0.15 元/小时

星界云手机支持“开机/关机”API,配合 Cron 轻轻松松做到“上班开机、下班关机”。示例脚本:

import requests, datetime
ACCOUNT = 'your_account'
API_KEY = 'your_api_key'
def power_on():
    for sn in ['s1', 's2', ...]:
        requests.post(f'https://api.chinac.com/v1/phone/{sn}/on', auth=(ACCOUNT, API_KEY))
def power_off():
    for sn in ['s1', 's2', ...]:
        requests.post(f'https://api.chinac.com/v1/phone/{sn}/off', auth=(ACCOUNT, API_KEY))
if __name__ == '__main__':
    hour = datetime.datetime.now().hour
    if hour == 22: power_off()
    if hour == 8:  power_on()

把脚本丢到 Jenkins 节点,每晚 22:00 统一关机,次日 08:00 自动唤醒,20 台尊享版每天只跑 10 小时,月度费用 = 20×10×30×0.15 = 900 元,仅为传统真机电费的 1/5。


六、如何上手

  1. 打开官网 https://www.chinac.com/Cloud/pro_cloudMoblie.html 注册账号;
  2. 新建子用户 → 勾选“允许 ADB” → 联系客服或销售开通 1 天免费试用;
  3. 把出口 IP 填入白名单,30 秒后即可 adb connect 第一台云手机。

零代码、低成本、可弹缩,安卓 CI/CD 的“真机自由”其实就这么简单。别让预算和掉电再拖慢发版节奏,今晚就把 Jenkins 搬进星界云手机,明早醒来测试报告已躺在邮箱。