詳解iOS WebDriverAgent 環(huán)境搭建
WebDriverAgent簡介
WebDriverAgent是Facebook 在去年的 SeleniumConf 大會上推出了一款新的iOS移動測試框架。當(dāng)時的推文申明,還只支持模擬器,不過在今年4月更新的版本中,官方宣稱支持真機(jī)測試了,大家可以查看官方github 的介紹:https://github.com/facebook/WebDriverAgent
下面摘錄一段官方對于WebDriverAgent的介紹字段:
WebDriverAgent 在 iOS 端實(shí)現(xiàn)了一個 WebDriver server ,借助這個 server 我們可以遠(yuǎn)程控制 iOS 設(shè)備。你可以啟動、殺死應(yīng)用,點(diǎn)擊、滾動視圖,或者確定頁面展示是否正確。This makes it a perfect tool for application end-to-end testing or general purpose device automation.(它說它是iOS上一個完美的e2e的自動化解決方案) It works by linking XCTest.framework and calling Apple's API to execute commands directly on a device.(鏈接XCTest.framework調(diào)用蘋果的API直接在設(shè)備上執(zhí)行命令) WebDriverAgent is developed and used at Facebook for end-to-end testing and is successfully adopted by Appium. (Appium封裝工作正在進(jìn)行中,如果一旦封裝好,那么以后就可以直接用Appium提供的binding了。)It is currently maintained by Marek Cirkos and Mehdi Mulani。
WebDriverAgent特點(diǎn)
根據(jù)官方的資料介紹,WebDriverAgent具有如下特點(diǎn):
- 真機(jī)和模擬器都支持
- 實(shí)現(xiàn)了大部分的 WebDriver spec
- USB support for devices,所謂的usb支持,指的是設(shè)備不需要上網(wǎng),目前client binding 還沒有。
- 提供了一個 Inspector
- Easy development cycle as it can be launched & debugged directly via Xcode
- Unsupported yet, but works with tvOS & OSX
環(huán)境搭建
介紹完WebDriverAgent后,我們來看一下如何在Mac系統(tǒng)上順利編譯出WebDriverAgent。
軟件環(huán)境
要搭建WebDriverAgent編譯環(huán)境,首先需要安裝如下的軟件:
- Homebrew
- carthage
- python
- node.js
- Xcode8.0+(IOS9.3,Xcode8.0+才能正常編譯)
打開Mac命令行(終端),如下圖所示:
如果你電腦上沒有安裝Homebrew,使用下面的命令安裝:
如果沒有安裝carthage,使用下面的命令安裝:
brew install carthage
當(dāng)然還可以下載carthage.pkg文件安裝,下載官方地址。
然后按照Python環(huán)境。
brew install python
安裝Node環(huán)境,命令如下:
brew install node
基本軟件環(huán)境安裝好之后,就需要安裝WebDriverAgent了。
安裝WebDriverAgent
首先,使用git clone命令將WebDriverAgent項(xiàng)目克隆到本地。
git clone https://github.com/facebook/WebDriverAgent
下載完畢后,進(jìn)入到 WebDriverAgent 目錄,執(zhí)行如下腳本。
cd ./WebDriverAgent/ //執(zhí)行腳本 ./Scripts/bootstrap.sh
如果出現(xiàn)錯誤,那么重新打開一個終端, 再輸入一次。該腳本會使用Carthage下載所有的依賴,使用npm打包響應(yīng)的js文件。
執(zhí)行完成后,直接雙擊打開WebDriverAgent.xcodeproj這個文件。
安裝證書
因?yàn)榘惭b到真機(jī)上都是需要證書簽名的,需要先在xcode中設(shè)置賬號。
如圖所示,選擇Team那一欄,選擇你的開發(fā)者證書帳號(個人開發(fā)者賬戶也行)。接著在TARGETS里面選中WebDriverAgentRunner,用同樣的方法設(shè)置好證書。
如果是免費(fèi)版的個人證書,還需要修改下WebDriverAgent的BundleID,主要不和別人的重名就行。
運(yùn)行與測試
到此,基本環(huán)境就搭建好了,為了驗(yàn)證是否能夠真正的運(yùn)行,下面進(jìn)行簡單的運(yùn)行測試。
然后,Scheme選擇WebDriverAgentRunner。
最后運(yùn)行 Product -> Test選項(xiàng),一切正常的話,手機(jī)上會出現(xiàn)一個無圖標(biāo)的WebDriverAgent應(yīng)用。
測試WebDriverAgent
打開瀏覽器safari,在地址欄輸入 :127.0.0.1:8100/inspector 回車 看到 下圖說明正確。
ATX安裝和使用
ATX(AutomatorX的簡稱)的安裝比較簡單,主要有兩個命令。
pip install --pre --upgrade atx pip install opencv_python
ATX的編寫都在 python 實(shí)現(xiàn),例如:
import atx d = atx.connect('http://localhost:8100', platform='ios') print d.status() #命令行執(zhí)行 python test.py
其他問題
當(dāng)然,在搭建WebDriverAgent環(huán)境的可能會遇到一些問題,這里總結(jié)了以下,可能出現(xiàn)的問題。
1,F(xiàn)ailed to authorize rights (0x1) with status: -60007。
2,The bundle “WebDriverAgentRunner” couldn't be loaded because it is damaged or missing necessary resources。
關(guān)于這兩個問題,直接刪除文件,重新下載源碼即可,關(guān)于這兩個問題的緣由,搭建可以查看官方文檔。
附:Python自動化框架地址ATX
WebDriverAgent源碼
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IOS Xib控件拖拽與頁面跳轉(zhuǎn)實(shí)例
下面小編就為大家分享一篇IOS Xib控件拖拽與頁面跳轉(zhuǎn)實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01一篇文章讓你看懂IOS中的block為何再也不需要WeakSelf弱引用
這篇文章主要給大家介紹了關(guān)于IOS中block為何再也不需要WeakSelf弱引用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01Objective-C基礎(chǔ) 自定義對象歸檔詳解及簡單實(shí)例
這篇文章主要介紹了Objective-C基礎(chǔ) 自定義對象歸檔詳解及簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-04-04IOS 獲取網(wǎng)絡(luò)圖片大小實(shí)例詳解
這篇文章主要介紹了IOS 獲取網(wǎng)絡(luò)圖片大小實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06ios的手勢操作之UIGestureRecognizer淺析(推薦)
本篇文章主要介紹了ios的手勢操作之UIGestureRecognizer淺析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。2016-12-12IOS開發(fā)筆記整理49之詳解定位CLLocation
在項(xiàng)目功能中有一個定位CLLocation的需求,遇到了一些知識難點(diǎn),經(jīng)過各位大俠的幫助,問題解決,特此分享供大家學(xué)習(xí),希望大家共同學(xué)習(xí)進(jìn)步2015-11-11iOS 防止按鈕多次點(diǎn)擊造成多次響應(yīng)的方法
這篇文章主要介紹了iOS 防止按鈕多次點(diǎn)擊造成多次響應(yīng)的方法的相關(guān)資料,這里對多次點(diǎn)擊造成的響應(yīng)提供了解決辦法,需要的朋友可以參考下2016-11-11