序言:
最近开始学习移动端UI自动化,由于项目人员有限,尽可能采用通用的框架,调研发现目前同时支持Android/iOS的有2种较优选择,分别是appium和macaca,实践过程中发现macaca对iOS支持比appium友好些(主要是appium上对iOS定位失败率太高而且过于依赖vpn,macaca相对好些)。虽说macaca默认开发语言是node.js对其支持也最好,但因Python较为简单, 所以选择脚本语言时选择了Python。
okay,格叽-格叽-格叽,开始正文:
iOS篇:
1.安装Xcode:从Appstore下载即可
2.安装brew:
安装教程:https://brew.sh/index_zh-cn.html
3.安装carthage:
brew install carthage #这个将在 /Users/用户名/Library/Developer/Xcode/DerivedData生成项目,不能移除
4.安装Node.js(检查node -v,npm -v,如果没有则进行安装,安装成功后,本机后续安装路径选择了usr/local/lib)
brew install node
npm install -g cnpm -registry=https://registry.npm.taobao.org #国内访问外网比较困难,需要切换到淘宝源
5.安装macaca
cnpm i -g macaca-cli #cli是client的缩写
6.安装macaca-ios驱动
cnpm i -g macaca-ios
7.安装web测试插件
brew install ios-webkit-debug-proxy
8.安装真机调试插件
brew install usbmuxd
brew install ios-deploy #若安装失败,用命令替代:sudo npm -g install ios-deploy --unsafe-perm=true
brew install --HEAD ideviceinstaller #安装成功后,可以通过命令:ideviceinstaller -l 查看手机上app的bundleId
注意事项:真机调试的时候需要将/usr/local/lib/node_modules/macaca-ios/node_modules/xctestwd路径下的XCTestWD.xcodeproj的两个targets XCTestWD,XCTestWDUITests bundleID 分别重签名,也就是用自己的开发者证书去运行签名该项目
9.真机调试,在安装过程中可以将 TEAM_ID 通过环境变量传入即可支持真机
DEVELOPMENT_TEAM_ID=XXXXX cnpm i macaca-ios -g
注意事项:真机需要有待测试app的安装权限(测试机需要在待测试app所使用开发者账号的开发者设备列表中)
Andriod篇
1.安装brew:
安装教程:https://brew.sh/index_zh-cn.html
2.安装Node.js(检查node -v,npm -v,如果没有则进行安装,本机安装的路径是usr/local/lib)
brew install node
npm install -g cnpm -registry=https://registry.npm.taobao.org #国内访问外网比较困难,需要切换到淘宝源
3.安装macaca
cnpm i -g macaca-cli #cli是client的缩写
4.安装macaca-android驱动
cnpm i macaca-android -g
5.设置JAVA_HOME
open ~/.bash_profile
#增加:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
export JAVA_HOME
6.设置ANDROID_HOME
open ~/.bash_profile
#增加:
ANDROID_HOME=/Users/longchen/work/android-sdk-macosx
export ANDROID_HOME
7.安装gradle
brew install gradle
检查清单:
检查命令:macaca doctor
#执行后的结果如下,无异常即可
Node.js checklist:
node env: /usr/local/bin/node
node version: v8.4.0
iOS checklist:
Xcode Command Line Tools is ready, version: 2347.
xcodebuild version: 8.3.3
iproxy[usbmuxd] is installed at: `/usr/local/bin/iproxy`
ios_webkit_debug_proxy is installed at: `/usr/local/bin/ios_webkit_debug_proxy`
carthage is installed, version: 0.24.0
Android checklist:
JAVA version is `1.8.0_40`
JAVA_HOME is set to `/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home`
ANDROID_HOME is set to `/Users/longchen/work/android-sdk-macosx`
Platforms is set to `/Users/longchen/work/android-sdk-macosx/platforms/android-25`
ADB tool is set to `/Users/longchen/work/android-sdk-macosx/platform-tools/adb`
gradle is installed, version: 4.1
Installed driver list:
android: 2.0.36
ios: 2.0.24
搭建Python环境
官方demo:https://github.com/macaca-sample/sample-python
1.安装python
brew install python #通过这种方式安装的python,不破坏当前python环境,自带pip
2.安装依赖,进入sample-python目录
sudo pip install -r requirements.txt #如果提示pip不存在,先安装pip:sudo easy_install pip
3.安装Python API:
pip install wd #如果报错,sudo pip install wd --ignore-installed six
4.启动服务器
macaca server
5.运行测试脚本
python 测试脚本