app自動測試-微信web-1
appium 是一個用於app自動測試的工具。目前支持測試iOS, Android, Windows上的app。(github: https://github.com/appium/appium)
其工作方式:在測試服務器上(可以是開發者的PC)安裝appium server,然後測試代碼通過使用 appium client和appium server通信,而appium server通過已安裝的驅動控制已經連接在server上的設備(手機或PC)。
本篇從安裝appium開始,到寫一個簡單的測試程序操控微信web頁面,作為一個簡單的自動測試樣例。
本篇用的機器為mac OS,但除了安裝appium server及驅動等在不同的操作系統上需安裝不同版本,測試方法及測試代碼並無不同。
1. 下載和安裝appium (server)
server有NPM版和desktop版,這裏下載的desktop版本。詳見 官方快速入門文檔(https://github.com/appium/appium/blob/master/docs/en/about-appium/getting-started.md) 。
啟動桌面版啟動後會進入控制臺界面,如圖:
這裏僅測試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的截屏。
app自動測試-微信web-1