兜兜轉轉試用了一圈自動化框架後,迴歸到appium,與一年以前相比,appium有了很大的改變:
一、iOS 9 以前一直以 instruments 下的 UIAutomation爲驅動底層技術(弊端因爲 instruments 的限制,單臺 mac 只能對應單臺設備);
二、iOS 9.3 時代推出 XCUITest 工具,用以替代 UIAutomation;
三、iOS 10 時代蘋果直接廢棄了 UIAutomation、Facebook 推出 WebDriverAgent(實現的 server 可以支持單臺 mac 對應多個設備);四、Appium 在iOS 9.3 後全面採用 WebDriverAgent 的方案。html
首先,咱們要知道環境搭建所需工具:java
其次,重中之重:版本很重要,個人是:xcode9.3 + node10.11.0 + appium1.7.0,若是根據如下配置仍然不能成功運行,那麼99%是版本的問題node
下面開始逐個安裝
一、安裝nodebrew install node
經過這種方法安裝的node是最新版本,由於我本地須要有node 8.1.1版本,因此使用nvm進行安裝
備註:nvm的安裝和使用android
二、下載Xcode 和 Command Line Tools:須要有個AppleID,並根據本身電腦OS版本下載所需版本
下載地址ios
下載後直接安裝便可,注意Xcode保持在application文件夾下只有一個惟一版本git
三、下載安裝JDK
oracle官網下載地址github
下載完成後直接安裝便可web
四、安裝Android SDK
不少資料都推薦使用brew安裝,可是實踐後發現SDK文件爲空,因此使用Android studio來安裝
下載Android studioshell
具體安裝步驟見此文檔npm
若是打開Android studio報錯,直接cancel到下一步便可;若使用default方式安裝,也能夠在configuration裏從新下載相關tools
五、安裝appium最新版本
github release版本下載
這裏不使用npm下載方式是由於下載過程較長,且容易報錯
六、安裝appium-doctornpm install -g appium-doctor
七、配置Android環境變量
在 ~/.bash_profile文件中添加path
export ANDROID_HOME=~/Library/Android/sdk/ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home #jdk安裝路徑 export PATH=~/bin:$PATH:/usr/local/bin:$ANDROID_HOME/platform-tools/:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
在appium的configurations裏設置:
八、安裝其餘依賴brew install libimobiledevice --HEAD
npm install -g ios-deploy
brew install carthage
libimobiledevice / ideviceinstaller 庫:至關於 android 的 adb,是 Appium 底層用到的工具之一,用於獲取 iOS 設備信息 ios-deploy:查看設備應用 carthage:相似於 java 的 maven,項目依賴管理,主要是 WebDriverAgent 使用
九、配置WebDriverAgent
(1)首先進入WebDriverAgent所在文件目錄下:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
(2)根目錄下執行:./Scripts/bootstrap.sh
(3)打開WebDriverAgent.xcodeproj
工程文件
(4)添加本身的account:Xcode -> Preferences -> account -> 左下角 +
(5)更改bundle id:這裏的bundle id就至關於一個App的惟一識別號,更改的規則隨意,只要確認不會與有重複便可;全部的targets都須要修改
十、驗證是否環境已經安裝成功了
(1)終端輸入:appium-doctor
若是環境都已配置好,應該是文章最開始圖片中的結果
(2)運行WebDriverAgentRunner
按照圖中
1:選擇scheme爲WebDriverAgentRunner -> 2:選擇運行設備,模擬器和真機均可以 -> 3:選擇要構建的方式 ->4:選擇Test方式
的步驟驗證是否能成功運行WebDriverAgentRunner
若是真機運行後彈出須要在設置中信任證書,
Verify the Developer App certificate for your account is trusted on your device. Open Settings on iPhone and navigate to General -> Device Management, then select your Developer App certificate to trust it.
按照步驟操做後,從新運行就能夠了
成功運行結果圖:
十一、遇到的問題總結
一、appium版本不支持xcode版本(須要調用XCUITest),從新下載可匹配的Xcode版本
Xcode9.3 + Appium1.6.4時,運行WebDriverAgentRunner報錯
Early unexpected exit, operation never finished bootstrapping - no restart will be attempted
解決方法:更新Appium版本到1.7.0
二、appium沒法調起webdriverrunner(webdriveragent更新),查看是否由於webdriveragent證書籤名、依賴framework、serverURL拋出錯誤信息
安裝依賴framework時報錯:
Falling back to building from the source A shell task (/usr/bin/xcrun xcodebuild -project /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Carthage/Checkouts/CocoaAsyncSocket/CocoaAsyncSocket.xcodeproj CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES -list) failed with exit code 72: xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH
解決方法:選擇Command Line Tools
Xcode -> Preferences -> Locations -> Command Line Tools
三、長時間測試,server中斷,這個沒法解決,appium自身問題四、webdriveragent啓動失敗,status、inspector沒法正常查看,查看版本五、appium腳本啓動失敗,查看腳本中的配置