Docker CI: Win7 下 Appium 安装与配置
一、概述
基于 Docker 集成 CI 环境。涉及技术:Linux(Ubuntu 14.04), Docker, Jenkins, Git/Gitlab, Web/Httpbin, Python/Pytest, UI/Selenium, Robotframework, Grid Server, Appium 等。
二、Docker 平台(Win7):安装配置Appium
1. pull Appium 镜像
docker pull appium/appium
2. 配置 Virtual Machine 共享文件夹
2.1 如何配置Virtual Machine 共享文件夹,详情参考:Docker CI: Win7 下挂载Window目录到Docker容器
.android文件夹保存主机和手机连接授权信息
2.2 授权信息:勾选 Always allow this computer
3. 配置 Virtual Machine USB 连接手机
3.1 开启 USB
3.2 选择 USB 2.0
3.3 添加手机
3.4 选择要添加的手机
3.5 确定
4. Docker 运行 Appium
4.1 主机中移除连接的手机,adb kill-server
4.2 使用xshell登陆docker服务器
# docker run --privileged -d -p 4723:4723 -v /.android:/root/.android -v /dev/bus/usb:/dev/bus/usb --name appium appium/appium
# docker exec -it appium adb devices
运行情况:
三、问题1:手机无法 attach 到 Appium 容器
调试方法:
- 重新插拔手机
- 登陆 Appium 容器,lsusb 查看手机连接状态
# apt-get update
# apt-get install usbutils
# lsusb
Bus 001 Device 002: ID 2717:ff48
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
手机已经连接上:Bus 001 Device 002: ID 2717:ff48
- 重新安装 VBoxUSBMon.inf
目录:D:\Program Files\Oracle\VirtualBox\drivers\USB\filter
四、问题2:Appium 容器重启失败
# docker restart appium
# docker logs appium
[Appium] Appium support for versions of node < 8 has been deprecated and will be removed in a future version. Please upgrade!
[Appium] Welcome to Appium v1.9.1
[Appium] Non-default server args:
[Appium] log: /var/log/appium.log
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
xvfb-run: error: Xvfb failed to start
下载 git 官方 Appium 镜像,修改 entry_point.sh 文件,重新 Docker Build 新镜像
CMD="xvfb-run appium --log $APPIUM_LOG"
===>CMD="xvfb-run -a appium --log $APPIUM_LOG"
xvfb-run -a [command]:重启时,如果 DISPLAY 已经占用,自动分配不同的 DISPLAY
# docker build -t allan/appium .
Linux 和 Mac OS 参考官方文档:
https://github.com/appium/appium-docker-android
http://manpages.ubuntu.com/manpages/xenial/man1/xvfb-run.1.html