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