由于iOS及Xcode的不断更新,自动化框架也是层出不穷,本文只讨论Appium框架实现iOS的UI自动化,并一步一步演示如何搭建一套环境
先看看原理图,然后从中可以了解到需要安装哪些东东?
一、安装nodejs(node及npm)(基础工具)
官网下载pkg https://nodejs.org/en/download/,点击一步步安装
检查是否安装成功:
zhang:~$ node -v
v6.11.3
zhang:~$ npm -v
3.10.10
二、安装iOS相关工具
1、安装Homebrew
命令行:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
检查是否安装成功:brew -v
2、brew install carthage #类似CocoaPods的包管理工具
3、brew install libimobiledevice --HEAD #和iOS手机通讯使用
4、brew install ideviceinstaller # 用于给iOS设备安装卸载应用或者备份应用
5、npm install -g ios-deploy # 用命令行安装ios app到连接的设备
6、sudo gem install -n /usr/local/bin xcpretty #用于对xcodebuild的输出进行格式化
三、安装appium(我选择下面的第2种方式)
1、命令行版安装:npm install -g appium@1.6.5
2、GUI版本安装:到官网https://github.com/appium/appium-desktop/releases/tag/v1.2.0-beta.3下载dmg进行安装(里面带有1.6.5的Appium)
四、安装appium-doctor(用来检查环境是否OK)
1、先安装
npm install -g appium-doctor
2、检查
(1)appium-doctor 检查android及iOS
(2)appium-doctor --ios 检查iOS
全部OK:info AppiumDoctor Everything looks good, bye!
五、配置WebDriverAgent(装Appium Desktop的时候,它里面带了一个WebDriverAgent),先进入WebDriverAgent目录
(1)安装appium-xcuitest-driver依赖 ,
命令一:cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/
命令二:mkdir -p Resources/WebDriverAgent.bundle
命令三:sh ./Scripts/bootstrap.sh
(2)修改WebDriverAgent的team ID及bundleID
方法:用Xcode打开目录下的WebDriverAgent.xcodeproj,对于WebDriverAgentLib 和 WebDriverAgentRunner,勾选“Automatically manage signing”,把Team改成自己的或公司的,Bundle Identifier将facebook字样换掉
(3)编译WebDriverAgentRunner,记得不要选*lib那个(第一次运行会失败,需要到手机设置-通用-证书信任)
方法一:Xcode-product-test
方法二:命令 xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机的udid' test
六、配置Appium server capabilities
打开桌面的Appium-desktop,左上角Appium->new session window->desired capabilities,填写如下
七、启动Appium
1、start server
2、start session
八、启动后,会自动打开Inspector,来进行元素抓取,开始编写脚本
(或者通过http://localhost:8100/inspector打开)
九、下载appium_python_client
十、打开pycharm,用python编写脚本,并运行testcase
注意:需要下载appium_python_client并导入到测试工程(可在pycharm import出错的地方右键根据自动安装的方式)