一、安裝IOS自動化測試環境
配置環境:
- Appium version :1.9.1
- Appium-desktop:1.7.1
- Xcode:10.0
- iPhone5S:IOS(10.3.3)
- Mac:10.13.6
1、安裝類庫
①安裝Homebrew、npm
參考我的另一篇文章:
《【Mac + Python】蘋果系統之安裝Python3.6.x環境》homebrew安裝及解決問題辦法
npm因為是安裝node.js自帶的所以參考《【Mac + Appium學習(一)】之安裝Appium環境前提准備》
②安裝依賴庫:libimobiledevice、ios-deploy
brew install libimobiledevice --HEAD
但是報錯:
Warning: libimobiledevice HEAD-26373b3_2 is already installed and up-to-date
To reinstall HEAD_3, run `brew reinstall libimobiledevice`
執行下面命令就可以了:
brew reinstall libimobiledevice
安裝ios-deploy
sudo npm install -g ios-deploy --unsafe-perm=true
如果執行sudo npm install -g ios-deploy --unsafe-perm=true
報錯,則執行sudo xcode-select --switch/Applications/Xcode.app/Contents/Developer/
如果沒有安裝 libimobiledevice,會導致Appium無法連接到iOS的設備,所以必須要安裝,如果要在iOS10+的系統上使用appium,則需要安裝ios-deploy
③appium-doctor 安裝
npm install appium-doctor -g
④安裝完成后執行:
appium-doctor –ios
可以查看與iOS相關配置是否完整,下圖是全部配置都成功,如果出現有一項不正確在執行一次就可以,或者直接跳過
2、更新Appium中的WebDriverAgent
下面的①②參考我的另一篇文章,里面有詳細步驟,在這里只是簡述:《【Mac + Python3.6 + ATX基於facebook-wda】之IOS自動化(一):WebDriverAgent安裝》
1)配置完出現下面控制台信息則正確,具體參考上面的文章:
2)執行端口轉發:
$ iproxy 8100 8100
瀏覽器輸入:http://localhost:8100/status ,確認WDA是否運行成功,不多描述參考上面文章。
- 進入到Appium中的WebDriverAgent目錄,目錄路徑如下
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/
- 將自己下載並編譯后的WebDriverAgent替換Appium原有的WebDriverAgent
進入到Appium/Appium-desktop中的appium-xcuitest-driver目錄,目錄路徑如下
/Applications/Project/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/
將自己下載並編譯后的WebDriverAgent替換Appium/Appium-desktop原有的WebDriverAgent
=================================================
因為我安裝的是appium-desktop軟件,所以我會以它為主線來講解。
下載AppiumDesktop參考下面:
Appium-Server下載地址:https://github.com/appium/appium-desktop/releases(因為我的Xcode是10.0版本,所以下載1.7.1版本的桌面程序,支持appium1.9.1,不然會提示下面的錯誤)
=================================================
3)打開appium-desktop桌面程序,配置完參數后,啟動session
(1)第一次報錯:
An unknown server-side error occurred while processing the command. Original error: Xcode version '0.0'. Support for Xcode 0.0 is not supported. Please upgrade to version 7.3 or higher
########sudo xcode-select --switch /Applications/Xcode.app
解決辦法有兩個種:
①經查詢得知是Xcode10.0版本對應appium1.9.0+版本,對應的appium-desktop版本為1.7.1。(我選擇這個)
②或者降低Xcode版本,參考:
《將Xcode升級到10.0以上版本,Appium啟動報錯的問題》
《Appium 今天產品需要,更新到了 Xcode 10,發現 appium 不能正確識別 Xcode 版本了,識別為 0 了,如何解決?》
③其他相關參考資料為:
《appium ios 真機自動化環境搭建》這篇文章引申出下面的兩個文章
《Xcode version '0.0'. Support for Xcode 0.0 is not supported.#10810》
《Can't run tests with Xcode 10.0 #229》
(2)再一次運行后,又報錯:
Original error: '10.3.3' does not exist in the list of simctl SDKs. Only the following Simulator SDK versions are available on your system: 12.0
經過查詢得知,是因為沒有10.3版本的SDK,解決文章如下:
《2018-02-07Appium1.3.2-IOS11-Xcode9.2+Mac10.12.6+Python環境搭建過程》最后一段解決此問題。
打開我的Xcode => Preference => Components中沒有10.3版本,下載了之后就解決了。
並且我在appium的issue提交了問題並已解決:
(3)第三次運行,還是報錯:
Original error: Could not create simulator with name 'appiumTest-iPhone5s', device type id 'iPhone5s' and runtime id '10.3.1'. Reason: 'simctl error running 'create': Invalid device type: iPhone5s'
后經查詢得知,是我的參數名稱起錯了,應該是“udid”,不是“Udid”
解決此問題文章參考:《Appium1.6啟動iOS真機》
=====================================
(4)擴展:接下來仔細說一說appium-desktop設置的參數如下:
總體參數解釋如下:
再加上自啟動WDA的參數配置:
完整參數如下:
{ "platformName": "iOS", "platformVersion": "10.3.1", "deviceName": "iPhone5s", "bundleId": "com.chen.CityMineSafetyOne", "AutomationName": "XCUITest", "udid": "42ebab931b6b2d6a140b1a4f5bd55305dbfe2ff0", "NewCommandTimeout": "3600", "useNewWDA": true }
個別參數獲取方法:
(一)快速查看連接Mac電腦的IOS設備號udid,有以下幾種方法:
①直接輸入命令行:
idevice_id -l
②打開iTunes軟件
③打開Xcode
(二)bundleId可通過命令獲取:
ideviceinstaller -l
至此運行session之后,可以打開檢查器了。終於熬出來了!!!
二、參考文章
《Appium 在 MAC 上搭建 appium1.6.3 過程》
《Appium macOS 下的 Appium 安裝與配置 Appium Installation & Setup With macOS》