Appium 在 mac OS 環(huán)境搭建
Appium 一年之前相比,有了很大的改變
1、iOS 9 之前一直以 instruments 下的 UIAutomation 為驅(qū)動底層技術(shù)(弊端由于 instruments 的限制,單臺 mac 只能對應(yīng)單臺設(shè)備);
2、iOS 9.3 時代推出 XCUITest 工具,用以替代 UIAutomation;
3、iOS 10 時代蘋果直接廢棄了 UIAutomation、Facebook 推出 WebDriverAgent(實現(xiàn)的 server 能夠支持單臺 mac 對應(yīng)多個設(shè)備);
4、Appium 在iOS 9.3 后全面采用 WebDriverAgent 的方案。
?
首先,我們要知道環(huán)境搭建所需工具:
其次,重中之重:版本很重要,xcode9.3 + node10.11.0 + appium1.7.0,如果根據(jù)以下配置仍然不能成功運行,那么99%是版本的問題。
?
下面開始逐個安裝
1、安裝node
brew install node
通過這種方法安裝的node是最新版本,因為我本地需要有node 8.1.1版本,所以使用nvm進行安裝。
?
2、下載Xcode 和 Command Line Tools:需要有個AppleID,并根據(jù)自己電腦OS版本。
下載后直接安裝即可,注意Xcode保持在application文件夾下只有一個唯一版本。
?
3、下載安裝JDK
下載完成后直接安裝即可。
?
4、安裝Android SDK
很多資料都推薦使用brew安裝,但是實踐后發(fā)現(xiàn)SDK文件為空,所以使用Android studio來安裝。
如果打開Android studio報錯,直接cancel到下一步即可;若使用default方式安裝,也可以在configuration里重新下載相關(guān)tools。
?
?
5、安裝appium最新版本
這里不使用npm下載方式是因為下載過程較長,且容易報錯。
?
6、安裝appium-doctor
npm install -g appium-doctor
?
7、配置Android環(huán)境變量
在 ~/.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里設(shè)置
?
8、安裝其他依賴
brew install libimobiledevice --HEAD
npm install -g ios-deploy
brew install carthage
libimobiledevice / ideviceinstaller 庫:相當(dāng)于 android 的 adb,是 Appium 底層用到的工具之一,用于獲取 iOS 設(shè)備信息
ios-deploy:查看設(shè)備應(yīng)用
carthage:類似于 java 的 maven,項目依賴管理,主要是 WebDriverAgent 使用
?
9、配置WebDriverAgent
(1)首先進入WebDriverAgent所在文件目錄下:
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
(2)根目錄下執(zhí)行:
https://blog.csdn.net/zhusongziye/article/details/Scripts/bootstrap.sh
(3)打開WebDriverAgent.xcodeproj工程文件
(4)添加自己的account:Xcode -> Preferences -> account -> 左下角 +
?
(5)更改bundle id:這里的bundle id就相當(dāng)于一個App的唯一識別號,更改的規(guī)則隨意,只要確認不會與有重復(fù)即可;所有的targets都需要修改。
?
?
10、驗證是否環(huán)境已經(jīng)安裝成功了
(1)終端輸入:appium-doctor
如果環(huán)境都已配置好,應(yīng)該是文章最開始圖片中的結(jié)果。
(2)運行WebDriverAgentRunner
按照圖中,1:選擇scheme為WebDriverAgentRunner -> 2:選擇運行設(shè)備,模擬器和真機都可以 -> 3:選擇要構(gòu)建的方式 ->4:選擇Test方式的步驟驗證是否能成功運行,WebDriverAgentRunner
如果真機運行后彈出需要在設(shè)置中信任證書。
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.
按照步驟操作后,重新運行就可以了。
?
成功運行結(jié)果圖
?
11、遇到的問題總結(jié)
1)appium版本不支持xcode版本(需要調(diào)用XCUITest),重新下載可匹配的Xcode版本。
Xcode9.3 + Appium1.6.4時,運行WebDriverAgentRunner報錯。
Early unexpected exit, operation never finished bootstrapping - no restart will be attempted
?
解決方法:更新Appium版本到1.7.0
?
2)appium無法調(diào)起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。
?
3)長時間測試,server中斷,這個無法解決,appium自身問題。
?
4)webdriveragent啟動失敗,status、inspector無法正常查看,查看版本。
?
5)appium腳本啟動失敗,查看腳本中的配置