Appium+iOS自動化測試環境安裝

1.安裝Xcode。

2.安裝Homebrew,它是一個macOS上的軟件包管理工具,便於下載軟件包。

打開終端,運行:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

3.安裝Nodejs和npm:

brew install npm

運行node -v和npm -v確保安裝成功。

4.安裝cnpm。由於npm源在國外,使用npm安裝庫時會比較慢,可以使用taobao的鏡像源:

npm install -g cnpm --registry=https://registry.npm.taobao.org

5.安裝Appium依賴庫libimobiledevice,如果沒有安裝會導致Appium無法連接到iOS的設備,所以必須要安裝:

brew install libimobiledevice --HEAD

6.如果要在iOS10+的系統上使用Appium,需要安裝ios-deploy:

npm install -g ios-deploy 

7.對真機需要安裝xcpretty:

gem install xcpretty

8./安裝carthage:

brew install carthage

9.安裝appium-doctor:

npm install appium-doctor -g

再進行環境檢測:

appium-doctor --ios

有沒裝好的包就用brew install安裝;直到appium-doctor --ios環境檢測全部必裝環境都配置好就可以安裝Appium了:

10.安裝Appium:

cnpm install -g appium

11.下載並編譯webDriverAgent:

  • 從github上下載代碼:
    git clone https://github.com/facebook/WebDriverAgent
    (官方文檔參考https://github.com/appium/WebDriverAgent
  • 運行./Scripts/bootstrap.sh:該腳本會使用Carthage下載所有的依賴,使用npm打包響應的js文件執行完成後,直接雙擊打開WebDriverAgent.xcodeproj這個文件準備編譯WebDriverAgent,編譯時要進行簽名,要向ios開發人員要一個開發者賬號(具體操作是ios開發人員幫忙操作的),接下來的配置參考:https://www.cnblogs.com/xiyuan2016/p/7593211.htmlrun這個項目的時候要注意在手機設置-通用-描述文件與設備管理中信任WebDriverAgentRunner

 

 

Appium設備端: 

iOS 真機,手機上多一個名爲WebDriverAgentRunner 的應用,這個應用的作用就是對你的目標 App 進行測試。它能根據被測試應用的BundleID 將它喚起,然後自己進入死循環保證測試用例一直不退出。此時等待服務器傳來 URL 數據,然後解析 URL,分發到對應模塊,各個模塊根據 URL 指令執行對應的測試操作,最終再把測試結果返回

Appium 服務端

是一個Node.js 應用,這個應用跑在電腦上,用於和 WDA 進行通信。採用的是WebDriver 協議

Appium 客戶端

我們的代碼。

 

 

PS:在Mac電腦上連接真機iPhone,運行WebDriverAgentRunner會在Mac端啓動WDA服務器,並在手機iPhone端安裝一個WebDriverAgentRunner應用。通過編寫腳本來與WDA服務器通信,告訴WDA服務器想要如何操作iPhone,WDA服務器與安裝在手機iPhone端的WebDriverAgentRunner應用通信並通過該app發送模擬指令來實現操作iPhone手機https://www.cnblogs.com/LanTianYou/p/10205499.html

WebDriverAgent安裝一次就可以了。如果被刪掉是因爲沒有在iOS設置-通用-描述文件與設備管理中點擊信任

 

 

https://github.com/google/ios-webkit-debug-proxy/blob/master/README.md

 

 

 

 

遇到的問題:

1.Not cleaning generated files. Add clearSystem Files capability if wanted.

desiredCapabilities.setCapability('clearSystemFiles',' true');

 

2.Keyboard is not present

分機型自定義鍵盤

  1. 點擊 tap(原來的tap方法 appium升級後不適用了)
self.driver.execute_script("mobile: tap", {"x": 22, "y": 579})

# self.driver.tap([(key_position_x['a'], key_position_y['a'])])

3.sleep大於5s時會斷開連接,不知道爲什麼??????可能是selenium的問題

4. xpath ios 定位長達14秒?????

5.

有些控件是滿足條件後纔給顯示,比如登錄後可見,所以visible的默認值false,inspector一直會取此控件或者父控件的默認值?

visible爲false導致click不可用 目前只能座標縮放點擊適配所有型號手機

 

都是因爲h5頁面獲取不到,要找開發把手機udid配進配置文件裏。。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章