Appium原理精講

Appium原理精講

目前使用Appium新版本和舊版本的企業(yè)數(shù)目都很多,而兩個版本的安裝過程和api的使用又有較大的區(qū)別。但是無論表面上的東東如何變化,內(nèi)部原理都是一樣的。在這里我給大家介紹一下appium的核心,增進大家對它的理解,相信這會對大家后期的使用有很大的幫助。

Appium概念

Appium是一個開源、跨平臺的自動化測試工具,用于測試原生和輕量移動應(yīng)用,支持 iOS, Android 和 FirefoxOS 平臺。Appium

驅(qū)動蘋果的 UIAutomation 庫和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 協(xié)議。Appinm 的 iOS 支持是基于 Dan Cuellar's 的 iOS Auto. Appium 同時綁定了Selendroid 用于老的 Android 平臺測試(SDK < 16)。

官網(wǎng):http://appium.io/

Github:https://github.com/appium/appium

特性

1. 跨平臺, native/ hybrid/ webview(H5)

2. 跨設(shè)備, android/iOS

3. 跨app,可以在多個app之間交互

4. 不依賴APP開源代碼

5. 支持Selenium WebDriver / Selenium Grid

6. 跨語言, java/python/ruby

7. Open Source



框架介紹

Appium是由nodejs的express框架寫的HttpServer。Appium不是它??創(chuàng)建?套新的測試框架,是將現(xiàn)有的優(yōu)秀的框架進行了集成,以Selenium

WebDriver的協(xié)議(JsonWireProtocol/Restful web service)統(tǒng)?起來.使得這個框架滿?多??的需求。Appium啟動自動化測試后,在被測設(shè)備上啟動?個server,監(jiān)聽來? Appium server的指令。不同的平臺(如IOS,Android)采?不同的運?和交換?式。Appium將某個樁程序“侵入”平臺,用于接受指令,來完成測試腳本的運行。在Android端,appium基于WebDriver,并利用Bootstrap.js,最后通過調(diào)?用UiAutomator的命令,實現(xiàn)App的自動化測試。另外由于UiAutomator對H5的支持有限,appium引入了chromedriver來實現(xiàn)基于H5的自動化。

原理圖(Android)

分析:

1.左邊的Code(WebDriver script)是我們的appium測試腳本。

2.中間是開起的Appium的服務(wù)(不同的系統(tǒng)需要安裝與之對應(yīng)的Appium server,這也就是appium可以同時支持android、ios以及windows應(yīng)用進行自動化測試的原因。在這里以android為例進行說明)Appium在這邊起了一個Server(4723端口),跟selenium Webdriver測試框架類似,Appium支持標(biāo)準(zhǔn)的WebDriver JSONWireProtocol。在這里提供了一套web服務(wù),Appium Server接收webdriver標(biāo)準(zhǔn)請求,解析請求內(nèi)容,調(diào)?用對應(yīng)的框架響應(yīng)操作。如:腳本發(fā)送一個點擊按鈕的請求給appium server。

3. appium server會把請求轉(zhuǎn)發(fā)給中間件Bootstrap.jar ,它是用java寫的,安裝在手機上。Bootstrap接收 appium 的命令(4724端口),最終通過調(diào)?用UiAutomator的命令來實現(xiàn)。

4.最后執(zhí)? 的結(jié)果由Bootstrap返回給appium server。

5.另外,appium還用到了chromedriver來支持基于H5(webview)的測試。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一.Appium框架組成 Appium框架組成是自動化腳本即client端(通過Java編寫的代碼,也可以通過其他...
    Jeff_9021閱讀 28,984評論 0 16
  • 一、什么是Appium Appium是一個開源、跨平臺的測試框架,可以用來測試原生及混合的移動端應(yīng)用。Appium...
    丫丫的簡書_閱讀 558評論 0 0
  • 話不多說,直接上干貨: appium的整體架構(gòu)是C/S模式,整體流程(返回順序為逆向): 腳本請求 ——> 472...
    hellokitty小丸子閱讀 24,371評論 1 22
  • 九月二十六日,越過汽車的門,找尋合適的位置,睡眠不足的早晨在晃晃悠悠的公交車上看書,更讓腦瓜顯得遲鈍起來。今天,周...
    梓瀟_af35閱讀 295評論 0 0
  • 進步,就是向前走,就是今天比昨天好,就是對現(xiàn)狀有所突破,進步也可以是思路清晰一點、效率提高一點,甚至可以是走路比以...
    高高yomie_796d閱讀 405評論 0 0

友情鏈接更多精彩內(nèi)容