Appium知多少


Appium我想大家都不陌生,這是主流的移動自動化工具,但你對它真的了解么?為什么很多同學搭建環境時碰到各種問題也而不知該如何解決。

appium為什么英語詞典查不到中文含義?

appium是一個合成詞,分別取自“application”的前三個字母和“Selenium”的后三個字母。application為“應用”,我們一般把移動平台上的應用簡稱為App,而Selenium是當前主流的Web UI自動化測試工具;而appium與Selenium之間有着許多聯系。appium是寓意為:移動端的Selenium自動化測試工具。因為appium是合成詞,所以未找到標准讀音,個人更傾向於發音:[ æpi'ʌm ]

appium為什么支持iOS和Android兩大平台?

我們知道iOS和Android是兩個完全不同的系統。iOS屬於類Unix的商業操作系統,而Android是一種基於Linux的自由及開放源代碼的操作系統;iOS的開發主要使用的objective-c和swift語言,而Android開發主要使用的Java和Kotlin。為什么appium 可以做到對這兩大平台的支持?

  • XCUITest

XCUITest蘋果公司在iOS 9.3版推出的自動化框架。從iOS 10及更高版本開始,它是唯一受支持的自動化框架。

Appium 1.6.0使用蘋果新的XCUITest框架,它支持iOS 10/Xcode 8。Appium內部使用Facebook的WebDriverAgent項目來支持XCUITest。 對於較舊的iOS版本(<= 9.3),Appium使用Apple的UIAutomation庫。典型用法是在所需功能中傳遞以下內容:

automationName:XCUITest

Facebook WebDriverAgent是iOS的WebDriver服務器實現。它用於遠程控制連接的設備或模擬器,並允許啟動應用程序,執行命令(如點擊和滾動),並終止應用程序。

  • UIAutomator 2

UIAutomator 2是基於Android工具的自動化框架,允許用戶構建和運行UI測試。Appium使用Google的UIAutomator在真實設備和模擬器上執行命令。UIAutomator是Google在UI級別為本地應用程序自動化測試框架。典型的用法是在所需的功能中傳遞以下內容:

automationName:uiautomator2

在Appium 1.6版本中,Appium為UiAutomator 2提供了支持。Appium使用appium-android-bootstrap模塊與UIAutomator進行交互。它允許將命令發送到設備,然后使用Android的UIAutomator測試框架在真實設備上執行命令。

當Appium客戶端請求創建新的AndroidDriver會話時,客戶端將所需的功能傳遞給Appium節點服務器。 UIAutomator2驅動程序模塊創建會話。然后,在連接的Android設備上安裝UIAutomator2服務器APK,啟動Netty服務器並啟動會話。Netty服務器會話啟動后,UIAutomator2服務器繼續在設備上偵聽請求並作出響應。

appium 為什么即支持Web應用,又支持原生應用,還支持混合應用?

移動應用的類型主要分以下幾類:

  • Native App:原生應用

  • Mobile Web app:移動Web應用

  • Hybrid App:混合應用

如果不知道什么是原生應用,請打開你的手機計算器。appium將操作解析為UIAutomator測試庫的方法並執行(僅Android)。

如果不知道什么是web應用,請打開你的手機瀏覽器。appium將操作交給chromedriver執行。熟悉Selenium的同學知道,它是Chrome瀏覽器驅動,因為appium也遵循 webdriver 規范,在appium處理之后把請求轉發給chromedriver執行(僅Android)。

如果不知道什么是混合應用,請打開支付寶,關掉網絡在“我的”和“口碑”頁面切換。在它下面運行測試會兼具用到UIAutomator和Chromedriver 來解析和運行腳本。

appium 為什么支持多語言?

appium是針對每一種語言都開發了相應的client庫,方便不同的語言用戶的使用。這些都不同語言編寫的腳本的執行最終會由appium Server/Desktop 進行解析,並交由驅動相應的環境運行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM