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