1、下载或者更新Homebrew:homebrew官网 macOS 不可或缺的套件管理器
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" #下载 $ brew update #更新 $ brew -v Homebrew 1.1.5 Homebrew/homebrew-core (git revision e151b; last commit 2016-12-26)
2、使用homebrew来安装Node.js : Node.js教程 node采用C++编写,是一个JavaScript的运行环境,因为JS是脚本语言需要一个解析器才能运行,对于写在HTML页面的JS,浏览器本身就是解析器,对于需要单独运行的JS,Node.js就是解析器。
$ brew install node $ node -v v7.3.0
3、安装npm: NPM 使用介绍 是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。
4、使用npm来安装appium,2017/01/03目前最新的版本是 1.6.3
,当然也可以在 Macos下bitbucket下载appium客户端,但是坑人的是最新版本是 1.5.3
支持的还只是 iOS10
以下的 UIAutomation
框架基础上测试,而 iOS10
以后苹果使用的却是基于 XCUITest
,所以只能采用npm安装咯。但是因为国内墙太高而使用npm却是从国外服务器下载,有时候使用npm需要非常长的时间,更多时候是失败,推荐使用cnpm来安装:淘宝 NPM 镜像 10分钟同步npmjs.org镜像,使用方式和npm完全一致
$ npm install cnpm -g --registry=https://registry.npm.taobao.org $ npm view appium versions #查看appium所有的版本号
5、使用cnpm安装appium和appium-doctor:
6、检查appium环境检测:
常见问题解决:
? Xcode Command Line Tools are NOT installed! $ xcode-select --install #按照提示安装即可 ? Carthage was NOT found! $ brew install carthage #carthage:类似cocoapods管理第三方代码,自动将工程编译为动态库,所以仅支持iOS8以上 WARN AppiumDoctor ? ANDROID_HOME is NOT set! 但是建议安装安装编译器,可以解决其他Android环境的其他问题 AndroidStudio(https://developer.android.com/studio/index.html?hl=zh-cn) 设置 ANDROID_HOME 路径: http://stackoverflow.com/questions/19986214/setting-android-home-enviromental-variable-on-mac-os-x 设置 JAVA_HOME 路径: http://stackoverflow.com/questions/6588390/where-is-java-home-on-osx-sierra-10-12-el-captain-10-11-yosemite-10-10 JAVA_HOME问题: 当前最新JDK版本下载地址 Java SE Development Kit 8u111 (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) .bash_profile文件: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home export ANDROID_HOME=/Users/denglibing/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:${JAVA_HOME}/bin
7、安装appium客户端,上面的操作只是安装了server端,接下来需要安装测试代码运行所依赖的客户端,我们以Python为例:
8、对于 iOS10
以上的测试,需要下载安装 appium-xcuitest-driver 驱动:Appium iOS driver, backed by Apple XCUITest
, 当然也可以在 /usr/local/lib/node_modules/appium/node_modules/.2.5.1@appium-xcuitest-driver/WebDriverAgent/
找到该项目,执行 carthage update
, 选择 WebDriverAgentRunner
编译即可。
其他相关的安装:
$ brew install libimobiledevice --HEAD # install from HEAD to get important updates $ brew install ideviceinstaller # 只是对iOS9有用 $ npm install -g ios-deploy # iOS10 以后的版本安装ios-deploy $ sudo gem install xcpretty # 真机需要安装 xcpretty
9、下载测试代码并且测试,官网上的测试代码坑很多,这个问题我困扰我好久。一开始还以为是自己那个环境出问题还是流程不对,结果真的只是官网测试代码本身问题,当然可以自己编写代码测试咯,也可以下载我的一个简单的 erduoniba/appium_ios_sample_code
先执行模拟器的测试
$ cd sample-code/apps/HHH #在sample-code/apps/HHH/build/Release-iphonesimulator/得到HHH.app包 $ xcodebuild -sdk iphonesimulator Build settings from command line: SDKROOT = iphonesimulator10.2 === BUILD TARGET HHH OF PROJECT HHH WITH THE DEFAULT CONFIGURATION (Release) === ... ... ... Signing Identity: "-" /usr/bin/codesign --force --sign - --timestamp=none /Users/denglibing/Desktop/sample-code/apps/HHH/build/Release-iphonesimulator/HHH.app ** BUILD SUCCEEDED ** $ cd sample-code/examples/python $ python ios_simple_simulator.py test_scroll (__main__.SimpleIOSTests) ... ok ---------------------------------------------------------------------- Ran 1 test in 30.421s OK
对于真机,可能要麻烦些,安装 appium-xcuitest-driver 驱动后,生成在真机上运行的包:
参考资料可以看官网的说明 部署ios-app-到手机上
关于怎么设置 CODE_SIGN_IDENTITY
和 PROVISIONING_PROFILE
如何查看 ,可以选择下图所示的 Development Team
一行, control+c
然后 复制出去即可
接下来连上真机 执行测试用例代码:
10:一些很有帮助的资料
很好的论坛 https://testerhome.com
appium源码地址: https://github.com/appium/appium
appium官网地址:http://appium.io/
appium中文说明文档:http://appium.io/slate/cn/master/?ruby#about-appium
11、心得:
整体的流程其实不多,但是在macOS10.12搭建appium的环境及测试整个过程着实烦躁,有时候一个小问题就卡1-2天也不好说,而且官网上的文档和测试代码已经部分误导我走了非常多的歪路。比如
11.1、开始使用 appium1.5.3的mac客户端,虽然在macOS10.12上也有些问题,确实毕竟GUI用起来非常方便,可惜是基于 UIAutomation
框架来的,然后在iOS10中已经使用了新的框架 XCUITest
,只能废弃;
11.2、关于appium如果搭建啊,进行测试啊相关的文章其实不少,有中文的也有英文的,可能是作者在那个时候测试兼容过,但是iOS10上真的很多是误导了,而且搭建的流程我不建议阅读 appium中文说明文档
,毕竟年代太久远了。倒是可以在 appium源码地址
上多多发现类似的问题或者多多提问,作者及团队人员很热血