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模塊(包)的標准。
$ brew install npm11
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:
$ cnpm install -g appium --no-cache $ cnpm install -g appium $ cnpm install -g appium-doctor123123
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為例:
git clone cd python-client-master sudo python setup.py install123123
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-到手機上
# 在 apps/HHH/build/Release-iphoneos/HHH.app 得到 release 包 $ xcodebuild -sdk iphoneos -target HHH -configuration Release CODE_SIGN_IDENTITY="iPhone Distribution: Shenzhen XXXX Technology Co., Ltd. (B9FH944VTE)" PROVISIONING_PROFILE="08f04032-ca2e-4bb5-b1ba-c32778115f2e"123123
關於怎麼設置 CODE_SIGN_IDENTITY
和 PROVISIONING_PROFILE
如何查看 ,可以選擇下圖所示的 Development Team
一行, control+c
然後 復制出去即可
接下來連上真機 執行測試用例代碼:
$ cd sample-code/examples/python $ python ios_simple_device.py test_scroll (__main__.SimpleIOSTests) ... ok ---------------------------------------------------------------------- Ran 1 test in 30.421s OK
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源碼地址
上多多發現類似的問題或者多多提問,作者及團隊人員很熱血