Appium是 c/s模式的
appium是基於 webdriver 協議添加對移動設備自化api擴展而成的
webdriver 是基於 http協議的,第一連接會建立個 session 會話,並通過 post發送一個 json 告知服務端相關測試信息
IOS 原理圖( 來源於:百度 )
appium ios封裝了 封裝了 封裝了 apple 的 Instruments I框架,主要用了 框架,主要用了 Instrument里的 UIAutomation(Apple 的自動化測試框架),然后在設備中注 自動化測試框架),然后在設備中注 入 bootstrap.js 進 行監 聽。
Client ent是我們編寫的 webdriver腳本 ,中間是 appium啟動 server (默認監聽 4723 端口 ),
appium server 調用 instruments.js啟動 ⼀一個 socket server ,同時分出一個 ,子進程運⾏instruments.app 將 bootstrap.js(一個 UIAutomation 腳本)注 ⼊入到 devices⽤於和外界進行交 。
最后 Bootstrap.js將執行的結果返回給 將執行的結果返回給 appium server ,appium server再將結果返 回給 appium client 。
Android原理圖( 來源於:百度)
4.2 以后是基於 uiautomator框架實現查找注入事件的, 框架實現查找注入事件的,框架實現查找注入事件的, 4.2 以前則是 instrumentation i框架的,並封裝成一個叫 框架的, Selendroid 這玩意提供服務
Client ent是我們編寫的 webdriver 腳本。中間是 appium啟動 server (默認監聽 4723 端口 ),
appium server 會把請求轉發給中間件 會把請求轉發給中間件 Bootstrap.jar ,它是用java寫的,安裝在 手機上 .Bootstrap監聽 4723端口並接收appium 的命令,最終通過調 的命令過調 用 UiAutomator U 的命令來實現。
Bootstrap將執行的結果返回給 將執行的結果返回給 appium server 。
Appiumserver再將結果返回給 client端。