Appium
- 1、簡介
- 2、作業原理
- 2.1 Android
- 2.2 ios
- 3、查看啟動日志分析
1、簡介
appium是c/s模式的,基于webdriver協議添加對移動設備自動化api擴展而成的,所以具有和webdriver一樣的特性,比如多語言支持,webdriver是基于http協議的,第一連接會建立一個session會話,并通過post發送一個json告知服務端相關測驗資訊.對于Android來說,4.2以后是基于uiautomator框架實作查找注入事件的,4.2以前則是instrumentation框架的,并封裝成,個叫Selendroid這玩意提供服務,客戶端只需要發送http請求實作通訊,意味著客戶端就是多語言支持,appium服務端是node.js寫的,所以你安裝的時候無論哪個平臺都是先裝node,
2、作業原理
2.1 Android
在Android端,appium基于WebDriver協議,利用Bootstrap.jar,最后通過調?用UiAutomator的命令,實作App的自動化測驗,UiAutomator測驗框架是Android SDK自帶的App UI自動化測驗Java庫,另外由于UiAutomator對H5的支持有限,appium引入了chromedriver以及safaridriver等來實作基于H5的自動化,
appium 在android端作業流
client端也就是我們 test script是我們的webdriver測驗腳本,
中間是起的Appium的服務,Appium在服務端起了一個Server(4723埠),跟selenium Webdriver測驗框架類似, Appium?持標準的WebDriver JSONWireProtocol,在這里提供它提供了一套REST的介面,Appium Server接收web driver client標準rest請求,決議請求內容,調?用對應的框架回應操作,
appium server會把請求轉發給中間件Bootstrap.jar ,它是用java寫的,安裝在手機上.Bootstrap監聽4724埠并接收appium 的命令,最終通過調?用UiAutomator的命令來實作,
最后Bootstrap將執行的結果回傳給appium server,
appium server再將結果回傳給 appium client,
2.2 ios
在IOS端,appium同樣使?WebDriver的一套協議,
與Android端測驗框架不同的是,appium ios封裝了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple的?自動化測驗框架),然后在設備中注?入bootstrap.js進?行監聽,
appium 在ios端作業流
client端 依然是 test script是我們的webdriver測驗腳本,
中間是起的Appium的服務,Appium在服務端起了一個Server(4723埠),跟selenium Webdriver測驗框架類似, Appium?持標準的WebDriver JSONWireProtocol,在這里提供它提供了一套REST的介面,Appium Server接收web driver client標準rest請求,決議請求內容,調?用對應的框架回應操作,
appium server呼叫instruments.js 啟動?一個socket server,同時分出一個?子行程運?instruments.app,將bootstrap.js(一個UIAutomation腳本)注?入到device?于和外界進行互動
最后Bootstrap.js將執行的結果回傳給appium server
appium server再將結果回傳給 appium client,
所以我們可以看到android與ios區別在于appium 將請求轉發到bootstrap.js或者bootstrap.jar.然后由bootstrap 驅動UIAutomation和UiAutomator去devices上完成具體的動作,
3、查看啟動日志分析
Appium運行原理
appium可以理解為一個c/s架構軟體,在pc端安裝的appium server端,通過appium client發送操作命令到app端
;在啟動時,appium會將bootstrap推送到app上,通過并在app端建立埠為4724的socket埠,接受來自Appium的
json命令,通過UIautomaticer操控app上的控制元件,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/190245.html
標籤:其他
上一篇:Android Retrofit2.0+RxJava3.0 基本使用
下一篇:android7藍牙筆記
