『與善仁』Appium基礎 — 8、Appium自動化測試框架介紹

繁華似錦Fighting發表於2021-11-13

提示:我們前面說的Android環境搭建和adb命令都是為移動端自動化測試環境搭建做準備的。

1、主流的移動端自動化測試框架

(1)Robotium

  1. 支援語言:Java
  2. 僅支援Android系統。
  3. 不支援跨應用。

(2)Macaca

  1. 支援語言:JavaPythonNode.js
  2. 支援Android和iOS系統。
  3. 支援跨應用。

(3)Appium

  1. 支援語言:JavaC#PythonphpperlrubyNode.js
  2. 支援Android和iOS系統。
  3. 支援跨應用。

2、自動化測試工具的選擇

自動化測試工具選擇的關注點有以下幾點:

  1. 是否支援nativewebview
  2. 是否支援獲取toast
  3. 是否支援跨應用。

nativewebviewtoast說明(重點):

(1)native:表示APP原生頁面。

  • 使用Android/iOS支援的語言編寫頁面。
    Android是Java語言。
    iOS 是Object-C語言。
  • 優點:頁面開啟速度快。
  • 缺點:更新複雜。
    當你修改了原生頁面,需要重新發布的話,就需要重新發布到應用市場上,無論APP修改了什麼,哪怕是一點點原生頁面,都需要重新發布。需要應用市場平臺稽核,稽核需要一定時間。
    在使用者方面,更新需要使用者升級或重新下載APP。

(2)webview:簡單理解就是APP中的H5頁面。

  • 使用前端技術編寫的頁面。
  • 優點:更新方便。
    進行修改,不需要重新發布應用市場,webview頁面在我們自己的服務端就可以自行更新。
  • 缺點:開啟速度慢,需要載入頁面的很多元素,如jscss等。

(3)toast:就是頁面中的一個標籤。

  • toast的樣子
    比如我在Android虛擬機器中開啟檔案管理器,點選返回按鈕會有一行提示“再次點選即可退出。”,
    如下圖所示:
    image
    這個樣式的提示就叫toast
  • toast並不是彈窗,在頁面中彈窗你不操作的話會一直存在,而toast預設時間就自動消失了。

補充:

  • 我們現在大部分的APP頁面,都是由native頁面和webview頁面混合組成的,既有原生頁面,也有H5頁面。
  • 在APP中區分原生頁面還是H5頁面的基礎辦法(不一定準確),開啟原生頁面是沒有進度條的,開啟H5的頁面是有進度條的。

3、Appium簡介

  1. Appium官網地址:www.Appium.io,由SauceLab公司開發。
  2. Appium是由nodejsexpress框架寫的Http Server,Appium使用WebDriverjson wire協議(該協議可支援多語言),來驅動Apple系統的UIAutomation庫、Android系統的UIAutomator框架。
    Appium對iOS系統的支援得益於Dan Cuellar’s對於iOS自動化的研究。
    Appium也整合了Selendroid,來支援老Android版本。
  3. Appium支援Selenium WebDriver支援的所有語言,如JavaObject-CJavaScriptPhpPythonRubyC#Clojure,或者Perl語言,更可以使用Selenium WebDriver的API。Appium支援任何一種測試框架。如果只使用Apple的UIAutomation,我們只能用JavaScript來編寫測試用例,而且只能用Instruction來執行測試用例。同樣,如果只使用Google的UIAutomation,我們就只能用Java來編寫測試用例。Appium實現了真正的跨平臺自動化測試。
  4. Appium是一個自動化測試開源、跨平臺工具。它允許測試人員在不同的平臺(iOS,Android)使用同一套API來寫自動化測試指令碼,這樣大大增加了 iOS 和 Android 測試套件間程式碼的複用性。
    支援iOS平臺和Android平臺上的原生應用,Web應用和混合應用。
    所謂的“移動原生應用”是指那些用iOS或者Android的SDK編寫的應用。
    所謂的“移動Web應用”是指使用移動瀏覽器訪問的應用(Appium支援iOS上的Safari和Android上的 Chrome)。
    所謂的“混合應用”是指原生程式碼封裝網頁檢視——原生程式碼和Web內容互動。
    比如,像Phonegap,可以幫助開發者使用網頁技術開發應用,然後用原生程式碼封裝,這些就是混合應用。
  5. Appium使用的供應商提供的框架:
    iOS 9.3及以上:蘋果的XCUITest
    iOS 9.3及更低版本:蘋果的UIAutomation
    Android 4.2+:谷歌的UiAutomator/UiAutomator 2
    Android 2.3+:谷歌的InstrumentationInstrumentation由單獨的專案Selendroid提供支援)。
    Windows:微軟的WinAppDriver

下面這段介紹來自於Appium的官網:

Introduction to Appium

Appium is an open-source tool for automating native, mobile web, and hybrid applications on iOS mobile, Android mobile, and Windows desktop platforms. Native apps are those written using the iOS, Android, or Windows SDKs. Mobile web apps are web apps accessed using a mobile browser (Appium supports Safari on iOS and Chrome or the built-in 'Browser' app on Android). Hybrid apps have a wrapper around a "webview" -- a native control that enables interaction with web content. Projects like Apache Cordova make it easy to build apps using web technologies that are then bundled into a native wrapper, creating a hybrid app.

Importantly, Appium is "cross-platform": it allows you to write tests against multiple platforms (iOS, Android, Windows), using the same API. This enables code reuse between iOS, Android, and Windows testsuites.

Appium簡介

Appium 是一個開源工具,用於在 iOS 移動、Android 移動和 Windows 桌面平臺上自動化原生、移動 Web 和混合應用程式。 本機應用是使用 iOS、Android 或 Windows SDK 編寫的應用。 行動網路應用是使用移動瀏覽器訪問的網路應用(Appium 支援 iOS 和 Chrome 上的 Safari 或 Android 上的內建“瀏覽器”應用)。 混合應用有一個圍繞“webview”的包裝器——一種支援與網路內容互動的本機控制元件。 像 Apache Cordova 這樣的專案可以使用 Web 技術輕鬆構建應用程式,然後將這些技術捆綁到本機包裝器中,從而建立混合應用程式。

重要的是,Appium 是“跨平臺的”:它允許您使用相同的 API 針對多個平臺(iOS、Android、Windows)編寫測試。 這可以在 iOS、Android 和 Windows 測試套件之間實現程式碼重用。

Appium Philosophy

Appium was designed to meet mobile automation needs according to a philosophy outlined by the following four tenets:

  1. You shouldn't have to recompile your app or modify it in any way in order to automate it.
  2. You shouldn't be locked into a specific language or framework to write and run your tests.
  3. A mobile automation framework shouldn't reinvent the wheel when it comes to automation APIs.
  4. A mobile automation framework should be open source, in spirit and practice as well as in name!

Appium哲學

Appium是根據以下四個原則概述的理念設計的,以滿足移動自動化需求:

  1. 您不應該需要重新編譯您的應用程式或以任何方式修改它,以使其自動化。
  2. 您不應該被鎖在特定的語言或框架中來編寫和執行測試。
  3. 當涉及到自動化API時,移動自動化框架不應該重新發明輪子。
  4. 一個移動自動化框架應該是開源的,在精神上和實踐上都是開源的!

相關文章