Appium超詳細環境搭建for-Mac

兜兜轉轉試用了一圈自動化框架後,迴歸到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

Screen Shot 2018-09-25 at 2.43.03 PM.png

其次,重中之重:版本很重要,個人是:xcode9.3 + node10.11.0 + appium1.7.0,若是根據如下配置仍然不能成功運行,那麼99%是版本的問題node

下面開始逐個安裝
一、安裝node
brew install node
經過這種方法安裝的node是最新版本,由於我本地須要有node 8.1.1版本,因此使用nvm進行安裝
備註:nvm的安裝和使用android

二、下載Xcode 和 Command Line Tools:須要有個AppleID,並根據本身電腦OS版本下載所需版本
下載地址ios

E8DEB1470C15778F79478BC10CDAF563.png

下載後直接安裝便可,注意Xcode保持在application文件夾下只有一個惟一版本git

三、下載安裝JDK
oracle官網下載地址
971CDCD491D2B3FF0E8D1951CE8B8269.pnggithub

下載完成後直接安裝便可web

四、安裝Android SDK
不少資料都推薦使用brew安裝,可是實踐後發現SDK文件爲空,因此使用Android studio來安裝
下載Android studioshell

具體安裝步驟見此文檔npm

若是打開Android studio報錯,直接cancel到下一步便可;若使用default方式安裝,也能夠在configuration裏從新下載相關tools
Screen Shot 2018-09-25 at 4.35.04 PM.png

B3391D6D-9C5D-4102-8259-CA74090799DA.png

五、安裝appium最新版本
github release版本下載
A432334072A63A419043296A58451F57.png

這裏不使用npm下載方式是由於下載過程較長,且容易報錯

六、安裝appium-doctor
npm 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裏設置:
5F0F08843C1F22CA122105FF0E21065C.png

八、安裝其餘依賴
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 -> 左下角 +
57C1E9FC323D02D56D05D7D53F02E448.png
(5)更改bundle id:這裏的bundle id就至關於一個App的惟一識別號,更改的規則隨意,只要確認不會與有重複便可;全部的targets都須要修改
59411E04545F3BEBA5FF9534CDE6492C.png

2555C54B7D27230343BB8B9B1D7E11E5.png

十、驗證是否環境已經安裝成功了
(1)終端輸入:appium-doctor
若是環境都已配置好,應該是文章最開始圖片中的結果
(2)運行WebDriverAgentRunner
Screen Shot 2018-09-25 at 6.25.52 PM.png
按照圖中
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.

按照步驟操做後,從新運行就能夠了
Screen Shot 2018-09-18 at 3.03.24 PM.png

成功運行結果圖:
A5DBAF06D2724DB07A7F771A8114B6E7.png

十一、遇到的問題總結
一、appium版本不支持xcode版本(須要調用XCUITest),從新下載可匹配的Xcode版本
Xcode9.3 + Appium1.6.4時,運行WebDriverAgentRunner報錯

Early unexpected exit, operation never finished bootstrapping - no restart will be attempted

0F6AFF47CDBA9190551885A5AC0423B2.png

解決方法:更新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
4B5E5CEB2F36F92645AADA93F61EADCE.png

Xcode -> Preferences -> Locations -> Command Line Tools

三、長時間測試,server中斷,這個沒法解決,appium自身問題四、webdriveragent啓動失敗,status、inspector沒法正常查看,查看版本五、appium腳本啓動失敗,查看腳本中的配置

相關文章
相關標籤/搜索