萬物有源_Appium框架原理淺析

其實我以爲Appium的Log已經格外人性化了,直接看debugLog,就能夠了解流程和原理了。java

1、安卓平臺圖解

Appium原理

2、原理

Appium是由Nodejs編寫的,集成了現有優秀框架,以Selenium WebDriver的協議統一塊兒來,遵循RESTful設計風格web服務器,它接受客戶端的鏈接,接收客戶端的命令,在手機設備上執行命令,而後經過HTTP的響應收集命令執行的結果。web

(1)最上面的Client端能夠是多種語言編寫,它相似於selenium webdriver,封裝了selenium的API,並添加了部分的新的API,咱們能夠依據這些API編輯自動化腳本。服務器

(2)Json Wire Protocol是一種協議,遵循REST風格,以JSON方法進行傳輸,是一系列的鍵值對,遵循W3C WebDriver Spec設計風格。app

(3)中間是起的Appium的服務,Appium在這邊起了一個Server(4723端口),在這裏提供了一套web服務,Appium Server接收web driver標準請求,解析請求內容,調⽤用對應的uiautomator響應操做。框架

(4)Appium server能夠把請求接收並轉義轉發給中間件Bootstrap.jar,它是用java寫的,安裝在手機上。Bootstrap 接收appium 的命令(4724端口),最終經過調⽤用UiAutomator的命令來實現對手機的操做。socket

(5)Bootstrap能夠理解爲它是一個uiautomator的測試腳本,它的入口類Bootstrap繼承於UiAutomatorTestCase,因此UiAututomator能夠正常運行它,它也能夠正常的使用uiautomator的方法,這個就是appium的命令能夠轉換成uiautomator的命令的關鍵;其次,它是一個socket服務器,它專門監聽4724端口過來的appium的鏈接和命令數據,並把appium的命令轉換成uiautomator的命令來讓uiautomator進行處理;最後,它處理的是appium從pc端過來的命令,是一系列的請求。測試

(6)最後執⾏行的結果以Json Wire Protocol,由Bootstrap返回給appium server,再返回給Client端,Client會彙總操做結果。ui

相關文章
相關標籤/搜索