我想从容器中将apk安装到模拟器中。 Appium服务器在0.0.0.0:4723上运行 模拟器在192.168.56.101:5555上运行
此处为docker-compose文件:
version: "2"
services:
test-container:
build:
context: robotframework
command: -i 4 --outputdir /out /tmp/files
privileged: true
volumes:
- ./results/all:/out:rw
network_mode: "host"
ports:
- 4723
此处dockerfile
FROM python:2.7-alpine
RUN pip install \
robotframework \
robotframework-requests \
robotframework-appiumlibrary \
six
ADD ./files /tmp/files
ENTRYPOINT [ "pybot" ]
这是测试文件
*** Settings ***
Library AppiumLibrary
Library OperatingSystem
*** TestCases ****
TestFour
[tags] 4
${a} Join Path ${EXECDIR} tmp/files/apk/app-development-release.apk
Log ${a}
File Should Exist ${a}
Open Application http://169.254.218.51:4723/wd/hub platformName=Android
... deviceName=192.168.56.101:5555 appPackage=com.android.browser
... appActivity=com.android.browser.BrowserActivity
Sleep 5
Close Application
Open Application http://169.254.218.51:4723/wd/hub platformName=Android
... platformVersion=6.0 deviceName=192.168.56.101:5555 app=${a}
... appPackage=com.setel.mobile.dev
... appActivity=com.zapmobile.zap.ui.activity.SplashActivity
Sleep 5
Close All Applications
安装apk期间测试失败。
WebDriverException:消息:处理命令时发生未知的服务器端错误。原始错误:“ / tmp / files / apk / app-development-release.apk”中的应用程序不存在或不可访问
在没有docker的情况下运行测试不会返回任何错误。 使用docker运行测试将通过启动现有浏览器,而无法安装该应用程序。 检查文件是否始终通过。 我认为在解析apk的容器中存在一些权限问题。