appium介紹


移動自動化測試工具appium。appium目前在移動UI自動化測試領域占有重要地位,不僅支持Android和IOS兩大平台,還支持多種編程,因而得到廣泛的應用。

移動應用類型

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

  • Native App:原生應用。
  • Mobile Web App:移動Web應用。
  • Hybrid App:混合應用。
    圖12-1 移動應用類型移動應用類型
  1. Native App
    Native App(原生應用)是為特定移動設備或平台開發的應用程序(如Android、iOS或Windows)。例如,iPhone應用程序是用Swift寫的,Android應用程序是用Java寫的。原生應用的可靠性極高,因為它們使用的是底層系統的架構和設備的內置功能。
  2. Mobile Web App
    Mobile Web App(移動應用)是通過移動瀏覽器訪問的應用程序,可以通過內置瀏覽器輕松訪問。例如,iOS上的Safari,Android上的Chrome。它們主要使用HTML5、JavaScript等技術開發,可以提供定制功能。Mobile Web App基本來自服務器,並且不能在設備的任何地方離線存儲。
  3. Hybrid App
    Hybrid App(混合應用)主要使用網絡技術(HTML5、CSS和JavaScript)開發,但嵌入在App中運行,從而感覺它像是原生應用程序。
    對於擁有網頁的公司來說,混合應用最受青睞。這些公司通常將混合應用作為封裝來構建網頁。PhoneGap和Sencha Touch等工具可以為用戶構建一個混合應用,混合應用可以通過各自的應用程序商店下載。

appium支持以上三種類型應用(Native App、Mobile Web App和Hybrid App)的自動化測試。

appium的架構

appium基於客戶端/服務器架構。服務器執行給定順序的動作:
(1)從客戶端接收連接並啟動會話。
(2)偵聽發出的命令。
(3)執行這些命令。
(4)返回命令執行狀態。
圖12-2 appium工作方式appium工作方式

  1. XCUITest
    XCUITest是蘋果公司於iOS9.3版本推出的自動化框架,從iOS 10開始,它是唯一的自動化框架。
    appium1.6.0使用蘋果公司的XCUTest框架,它支持iOS IO/Xcode 8。appium內部使用Facebook公司的WebDriverAgent項目支持XCUTest。
    Facebook公司的WebDriverAgent項目是一個為iOS實現的WebDriver服務,用於對連接的設備或模擬器進行遠程控制。通過它可以啟動應用程序、執行命令(如點擊、滾動)、或終止應用程序。對於較舊的iOS版本(9.3以下版本),appium使用Apple的UIAutomation庫,典型用法是在所需功能中傳遞以下內容:
    automationName:XCUTest
    UIAutomation庫與移動設備或模擬器內運行的bootstrap.js進行通信,執行由appium客戶端收到的命令。
    圖12-3 iOS平台工作方式iOS平台工作方式

  2. UIAutomator2
    UIAutomator2是基於Android的自動化框架,允許用戶構建和運行UI測試。appium使用Google公司的UIAutomator2在真實設備或模擬器上執行命令。UIAutomator2是Google公司針對App設計的UI自動化測試框架。典型的用法是在所需的功能中傳遞以下內容:
    automationName:uiautomator2
    在appium1.6版本中,appium為UIAutomator2提供支持。appium使用appium-android-bootstrap模塊與UIAutomator2進行交互。它允許將命令發送到設備,使用Android的UIAutomator2測試框架在真實設備上執行命令。
    當appium客戶端請求創建新的AndroidDriver會話時,appium客戶端會將所需的功能傳遞給appium節點服務器。首先,UIAutomator2驅動程序模塊創建會話。然后,在連接的Android設備上安裝UIAutomator2服務器apk。接着啟動Netty服務器。在Netty服務啟動后,UIAutomator2服務器在設備上偵聽請求並做出響應。
    圖12-4 Android平台工作方式Android平台工作方式
    注意:以上關於appium工作方式的介紹摘自appium essentials一書。

appium的工作過程

圖12-5 appium的工作過程appium的工作過程

  1. appium Client
    appium Client支持多種語言/框架,它針對主流的編程語言分別開發了相應的appium測試庫,我們可以選擇自己熟悉的語言或框架來編寫appium測試腳本。appium Client支持的語言/框架如表所示。
語言/框架 Github項目地址
ruby https://github.com/appium/ruby_lib
Python https://github.com/appium/python-client
Java https://github.com/appium/java-client
JavaScript(Node.js) https://github.com/admc/wd
Objective C https://github.com/appium-boneyard/selenium-objective-c
PHP https://github.com/appium-boneyard/php-client
C#(.NET) https://github.com/appium/appium-dotnet-driver
Robot Framework https://github.com/serhatbolsu/robotframework-appiumlibrary
  1. appium Server
    appium需要在PC上啟動一個Server,監聽客戶端自動化測試的運行,並將請求發送到對應的移動設備或模擬器中運行。
    appium Server支持macOS和Windows兩大平台。我們可以在不同的平台編寫並運行appium自動化測試。需要特別說明的是,appium Server項目已經停止更新,由appium Desktop替代。

  2. 移動設備
    移動設備用於運行appium自動化測試的環境,既可以是一台連接到PC的手機,也可以是在PC上運行的iOS模擬器或Android模擬器。


免責聲明!

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



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