ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

docker-android 实战:容器里跑 Android 模拟器,Appium UI 自动化测试从 0 到 1

docker-android 实战:容器里跑 Android 模拟器,Appium UI 自动化测试从 0 到 1 docker-android 实战容器里跑 Android 模拟器Appium UI 自动化测试从 0 到 1【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android给 App 做 UI 自动化测试时最磨人的往往不是写用例而是搭环境模拟器版本对不上、Appium 端口互相打架、测试跑着跑着却没人知道容器里到底发生了什么。docker-android把 Android 模拟器直接打包进一个 Docker 镜像里一条docker run就能拉起一台带 Web VNC 监控、能接 Appium、还能从宿主机用 adb 连进去的 Android 设备。环境被标准化了你只管写测试。把环境差异变成「一条命令」传统做法是在本机装 SDK、起模拟器、手动装 Appium三台机器三套环境CI 上更别想复制。docker-android 的思路是把这些全塞进镜像设备可选通过EMULATOR_DEVICE环境变量指定机型内置了三星 Galaxy S6/S7/S8/S9/S10、Nexus 4/5/One/S、Nexus 7、Pixel C 等对应的硬件配置就在 mixins/configs/devices/profiles/ 目录里。版本可选镜像 tag 直接带 Android 版本emulator_9.0到emulator_14.0各对应一个 API 等级想要哪个系统就 pull 哪个 tag。看得到容器内跑着 VNC浏览器里就能实时看到屏幕不用再猜测试卡在哪一步。这一层解决的是「环境不可复现」的根源问题——同一份镜像本地和 CI 起出来的是同一台设备。一条命令拉起可用的 Android 设备 前置要求就一条机器支持虚拟化KVM。先跑sudo apt install cpu-checker kvm-ok确认一下不行就先开 BIOS 的虚拟化。确认没问题后拉容器docker run -d -p 6080:6080 -p 4723:4723 \ -e EMULATOR_DEVICESamsung Galaxy S10 \ -e WEB_VNCtrue -e APPIUMtrue \ --device /dev/kvm --name android-container \ budtmo/docker-android:emulator_11.0几个关键开关各对应一种用法-e WEB_VNCtrue-p 6080:6080打开 Web VNC浏览器访问http://localhost:6080/?autoconnecttrue直接看屏幕还能加view_onlytrue只读观看。-e APPIUMtrue-p 4723:4723在容器里把 Appium Server 起好测试脚本直接连这个端口。--device /dev/kvm把宿主机的硬件加速透传进容器模拟器速度靠它。起完用docker exec -it android-container cat device_status能确认模拟器状态。这里有个坑容器一重启模拟设备默认会被销毁想让装好的 App、数据跨重启保留把-v data:/home/androidusr挂上数据卷即可。从浏览器、adb 到 Appium 的多路监控设备起来之后你其实有三条路进去操作可以按场景挑浏览器看屏幕最轻量调试时瞄一眼就行端口 6080。宿主机 adb 直连想用自己本地的 adb 工具链就把 5554/5555 两个端口暴露出来然后adb connect 容器IP:5555之后adb shell、adb install、甚至模拟收短信adb emu sms send 号码 内容都能直接用详见 USE_CASE_CONTROL_EMULATOR.md。Appium 跑用例把用例对着 4723 端口的 Appium Server 发写法和连本地模拟器一模一样参考 USE_CASE_APPIUM.md。因为模拟器本身只是个标准设备容器只是把它「包」了一层所以上面这些操作对测试脚本几乎零侵入——迁移成本主要是改一下连接地址。适用边界与常见坑系统限制镜像只在 Ubuntu 里跑OSX/Windows 得套一个支持虚拟化的 Ubuntu VMWSL2 需要额外开嵌套虚拟化。KVM 是硬门槛/dev/kvm没透传成功模拟器会慢到没法用甚至起不来先kvm-ok再说。功能边界免费镜像覆盖到 Android 14、单设备实时切语言、headless 省资源、root 权限、Selenium Grid 集成、录屏这些进阶能力在 pro 版本里选型时先对一下 README 里的功能对比表。下一步跑通单机后把整套docker run塞进 Jenkins 或 CI配 VNC viewer 插件 就能在流水线里直接看回放把「环境」彻底交给容器把精力留在用例上。【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表