古詩詞大全網 - 成語故事 - 做iOS自動化測試必須知道的壹些知識

做iOS自動化測試必須知道的壹些知識

2015年Facebook 開源了壹款 iOS 移動測試框架 WebDriverAgent ,WebDriverAgent 在 iOS 端實現了壹個 WebDriver server ,借助這個 server 我們可以遠程控制 iOS 設備。妳可以啟動、殺死應用,點擊、滾動視圖,或者確定頁面展示是否正確。它通過鏈接 XCTest.framework 並調用蘋果的 API 直接在設備上執行命令。這使得它成為應用程序端到端測試或通用設備自動化的完美工具

wda作為任何UITest的捆綁軟件啟動,WebDriverAgentRunner作為壹個後臺應用運行在iOS手機上,

ServerURLHere->http://[SOME_IP]:8100<-ServerURLHere 即在手機上8100端口啟動壹個HTTP server,內部就是壹個死循環,監聽網絡傳輸過來的webdriver協議的數據,解析並處理點擊事件

但該項目已經存檔(archived),不再維護。2019年5月,Facebook開源了 IDB ,即“ iOS Development Bridge”,這是壹個用於使iOS模擬器和設備自動化的命令行界面。他們正在將自己的內部項目從WDA遷移到IDB,並建議將其檢查出來作為替代方案

由於facebook wda已經停止維護,現在壹般推薦使用fork自 facebook wda的 appuim wda

iOS-Tagent 也是基於 facebook 的 WebDriverAgent 項目上進行開發的 , 目的是為了對 Airtest Project 提供iOS平臺的測試支持,該項目在原項目的基礎上進行了定制化的優化和功能調整

XCTestWD 是WebDriver server的Swift版本實現,主要用於 Macaca 自動化項目,這裏不做過多介紹,更多可參考官方文檔 Macaca面向多端的自動化測試

綜上,WDA會在iOS 端實現了壹個 WebDriver server,並監聽網絡傳輸過來的webdriver協議的數據,通過電腦與手機端口的映射,我們就可以通過電腦發送網絡請求到手機上的server,server就能解析並處理點擊事件了

因此我們需要做的是安裝並啟動WDA,設置端口轉發。在tidevice出現之前,WDA只能通過xcodebuild來啟動,而運行xcodebuild則必須有壹臺Mac才行。tidevice沒有通過xcodebuild,而是通過usbmuxd直接跟手機上的服務進行直接通信完成手機上WDA的啟動。usbmux在不同的平臺都有開源的實現,所以tidevice不僅能在Mac上運行,也能在Linux、Windows上運行

更多關於tidevice可參看 tidevice