通过使用AutomatorX,配合WebDriverAgent,可以实现在非越狱的IOS设备上更简单的进行自动化测试。同样,Android设备一样受到支持。
相关工程
环境要求
Python3.5+
Brew Mac OS X 10.11+ IOS 10+ Android 4.0+
配置环境
以下操作基于已经创建了python3.5的VirtualEnv
通用
brew install homebrew/science/opencv brew install pillow pip install --upgrade --pre atx -i https://pypi.doubanio.com/simple/ pip install opencv_python -i https://pypi.doubanio.com/simple/
Android
Android需要安装ADB brew install android-platform-tools
IOS
brew install npm brew install carthage brew install libmobiledevice git clone https://github.com/facebook/WebDriverAgent.git cd WebDriverAgent ./Scripts/bootstrap.sh
解决xcode的路径问题
sudo xcode-select -switch <path/to/>Xcode.app
WebDriverAgent签名
个人开发者账号签名,要注意安装之后在通用设置中设置授权证书为允许...
XCode打开WebDriverAgent工程,连接上真机
在Project中,把能看到的Targets的签名都签上
找到WebDriverAgentLib,在BuildSettings中,找到Code Signing Identity,把debug和release的签名都选择为Developer
XcodeBuild启动IOS调试
因为IOS10之后,无法进行远程调试,所以需要使用iproxy进行端口转发,如果多台机器调试,需要注意得到机器的UDID
idevice_id -l
进入到WebDriverAgent目录,启动调试
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'platform=iOS,id=设备UDID' test iproxy 8081 8100 设备UDID
使用ATX连接Android
Python3下会报ANDROIDHOMEPATH的异常,所以要这么写:
import atx; import os; os.environ["ANDROID_HOME_PATH"] = "Path to adb folder"; d = atx.connect();
使用ATX连接IOS
d = atx.connect('http://localhost:8081', platform='ios');