appium 是一個用於app自動測試的工具。目前支持測試iOS, Android, Windows上的app。(github: https://github.com/appium/appium)ios
其工做方式:在測試服務器上(能夠是開發者的PC)安裝appium server,而後測試代碼經過使用 appium client和appium server通訊,而appium server經過已安裝的驅動控制已經鏈接在server上的設備(手機或PC)。git
本篇從安裝appium開始,到寫一個簡單的測試程序操控微信web頁面,做爲一個簡單的自動測試樣例。github
本篇用的機器爲mac OS,但除了安裝appium server及驅動等在不一樣的操做系統上需安裝不一樣版本,測試方法及測試代碼並沒有不一樣。web
1. 下載和安裝appium (server)npm
server有NPM版和desktop版,這裏下載的desktop版本。詳見 官方快速入門文檔(https://github.com/appium/appium/blob/master/docs/en/about-appium/getting-started.md) 。bootstrap
啓動桌面版啓動後會進入控制檯界面,如圖:xcode
這裏僅測試iOS設備,因此僅須要iOS驅動。據iOS驅動主頁上所描述,appium1.6以上已經帶有iOS驅動。瀏覽器
2. 安裝 WebDriverAgent (https://github.com/appium/WebDriverAgent)服務器
(1) 安裝Carthage微信
拉取源代碼(https://github.com/Carthage/Carthage), 進入源代碼目錄,執行 make install,編譯成功後,編譯生成的 carthage 會自動copy至 /usr/local/bin/
(2) 安裝npm,略過。
(3) 拉取WebDriverAgent,執行 ./Scripts/bootstrap.sh。
3. debug 微信裏的webview (WebDriverAgent 文檔: https://github.com/facebook/WebDriverAgent/wiki/Starting-WebDriverAgent)
(1) xcode打開 WebDriverAgent.xcodeproj,在xcode中執行菜單 Product -> Test。
啓動成功後,能夠xcode的output的日誌中看到:
(2) 上面output中的 ServerURLHere->http://10.10.10.247:0<-ServerURLHere是inspector的URL,把該URL貼入瀏覽器執行。
可是端口0是有問題的,沒法訪問的。遇到這樣的狀況,能夠在運行配置裏,把USE_PORT的配置去除,若是沒有該配置項,則會使用默認端口8100:
而後再次運行,就出現如下日誌了:
ServerURLHere->http://10.10.10.247:8100<-ServerURLHere
訪問 http://10.10.10.247:8100,失敗,此時安裝iOS的代理試試:
brew install libimobiledevice
iproxy 8100 8100
http://localhost:8100 訪問成功的話,能夠看到狀態信息:
(3) inspector界面 http://localhost:8100/inspector
能夠看到手機上此時的webview的截屏。