一、概述

基于 Docker 集成 CI 环境。涉及技术:Linux(Ubuntu 14.04), Docker, Jenkins, Git/Gitlab, Web/Httpbin, Python/Pytest, UI/Selenium, Robotframework, Grid Server, Appium 等。
Docker CI: Win7 下 Appium 安装与配置

二、Docker 平台(Win7):安装配置Appium

1. pull Appium 镜像

docker pull appium/appium

Docker CI: Win7 下 Appium 安装与配置

2. 配置 Virtual Machine 共享文件夹

2.1 如何配置Virtual Machine 共享文件夹,详情参考:Docker CI: Win7 下挂载Window目录到Docker容器
.android文件夹保存主机和手机连接授权信息
Docker CI: Win7 下 Appium 安装与配置
2.2 授权信息:勾选 Always allow this computer
Docker CI: Win7 下 Appium 安装与配置

3. 配置 Virtual Machine USB 连接手机

3.1 开启 USB
3.2 选择 USB 2.0
3.3 添加手机
3.4 选择要添加的手机
3.5 确定
Docker CI: Win7 下 Appium 安装与配置

4. Docker 运行 Appium

4.1 主机中移除连接的手机,adb kill-server
Docker CI: Win7 下 Appium 安装与配置
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

运行情况:
Docker CI: Win7 下 Appium 安装与配置

三、问题1:手机无法 attach 到 Appium 容器

调试方法:

  1. 重新插拔手机
  2. 登陆 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

  1. 重新安装 VBoxUSBMon.inf
    目录:D:\Program Files\Oracle\VirtualBox\drivers\USB\filter
    Docker CI: Win7 下 Appium 安装与配置

四、问题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

相关文章: