Appium – 移動應用的卓越測試工具
在尋找任何用於測試移動應用程式的自動化工具時,首先要考慮的是 - 它應該簡單易用,並且在您的專案預算之內。但是,當您的應用程式執行在多個平臺(例如 Android 和 iOS)上時,則需要一個可以在這兩個平臺上使用的工具。雖然您可以為每個平臺使用單獨的工具,但這可能會在維護和資源利用方面增加專案成本。因此,選擇一個平臺無關的工具來在多個平臺上測試您的應用程式不是一個好主意嗎?
最好有一個功能強大的工具來同時用於 Android 和 iPhone 應用程式,而不是為每個應用程式使用兩個不同的工具。這樣一個流行的開源工具,它彌合了這兩個平臺之間的差距,被稱為 Appium。它不僅允許我們在多個平臺上測試我們的應用程式,而且還具有許多有用的功能來滿足我們的大部分測試需求。
什麼是 Appium?
Appium 是一款免費的開源 UI 測試框架,廣泛用於 Android 和 iPhone 移動應用程式。它支援多種語言,前提是這些語言支援 HTTP 請求和 Selenium 客戶端庫,例如 Java、JavaScript(使用 Node.js)、PHP、Ruby、Python、C#、Perl 等。
Appium 不依賴於用於移動裝置的作業系統,因此它允許我們使用移動裝置而無需擔心 OS 的型別。這是因為 Appium 框架將 Selenium WebDriver 命令轉換為 UIAutomator 命令(Android)和 UIAutomation 命令(iOS),因此它也取決於裝置型別,而不是作業系統型別。
它**支援原生、混合和 Web 應用程式測試**,以及在真實裝置以及模擬器和模擬器上的自動化測試。它還支援基於平臺的應用程式測試,我們可以在多個平臺(如 Android、iOS 和 Windows)上使用相同的 API。
讓我們討論一些 Appium 的流行特性,這些特性使其在眾多工具中脫穎而出。
Appium 的獨特賣點
- 首先,Appium 是一款**擁有積極貢獻的龐大社群支援的開源工具**。
- **測試即將釋出到市場上的相同應用程式。**無需擔心維護和釋出應用程式的正確版本,測試同一個版本,然後提交。
- 它是一個簡單且**輕量級的應用程式,佔用測試過程的記憶體很少**。簡單的架構充當測試機器和自動化工具包之間的代理。
- 測試原生應用程式不需要 SDK,它配備了**可以在所有平臺上使用的標準自動化 API**,因此證明了其重用和採用現有標準的理念。
- 測試指令碼可以用任何你喜歡的與 Selenium WebDriver 相容的語言編寫,例如 Java、C#、Ruby、JavaScript(使用 Node.js)、PHP、Python 或 Perl,並且可以使用你選擇的任何測試框架。
支援的平臺
- iOS
- Android
- Windows
- Firefox-OS
機器準備情況
對於 iOS
- Mac OS X 10.7+ Xcode 4.5+ 及其命令列工具
對於 Android
- Mac OS X 10.7+ 或 Windows 7+ 或 Linux Android SDK ≥ 16(在 Selendroid 模式下 SDK < 16)
Appium 究竟是如何工作的?
Appium 使用**客戶端-伺服器架構**。一旦連線建立,它就會監聽命令,在連線的移動裝置上執行這些命令,然後透過 HTTP 響應返回命令的執行結果。由於它具有客戶端-伺服器架構,因此我們可以自由地用任何語言編寫測試指令碼,前提是它具有 HTTP 客戶端 API。
對於 iOS 平臺,Appium 使用 UIAutomation 庫,而對於較新版本的 Android 平臺,它使用 UiAutomator 框架。它還透過使用 Selendroid 支援舊版本的 Android。對於 Windows,它使用 Microsoft 的 WinAppDriver。
C#、JAVA、Ruby、PHP 或 Python 等程式語言的客戶端庫支援 Appium 對 Selenium WebDriver 協議的擴充套件,因此,您可以選擇使用這些程式語言的客戶端庫,而不是 WebDriver 客戶端。
Appium Inspector – 它的作用是什麼?
Appium 有一個非常有用的便捷工具,稱為 Appium Inspector,用於錄製和回放。它理解元素層次結構。與任何其他錄製和回放自動化工具一樣,它也錄製和回放原生應用程式的行為並生成測試指令碼。
因此,無論何時您想將手動操作錄製到指令碼中,或者想查詢要用於 XPath 命令的元素的值、名稱、描述或其他屬性,Appium Inspector 都可以解決您所有這些問題。
Appium 的一些侷限性
世界上沒有什麼是完美的,儘管 Appium 具有許多有助於我們自動化工作的優秀特性,但它也有一些侷限性。
讓我們討論一些 Appium 的侷限性。
- Appium 支援 Android 4.2 及更高版本,低於此版本不支援。這意味著對於**低於 Android 4.2 的較低版本**,它使用另一個名為**Selendroid 的開源庫**,而不是 UIAutomator。
- 有用的 Appium Inspector 工具無法在 Microsoft Windows 上執行,但在其他平臺上執行良好。
- 在 iOS 平臺上,我們**無法使用一臺 Mac 機器同時執行多個 iOS 裝置**。因此,要在多個 iPhone 裝置上進行測試,我們需要將它們分別連線到多臺 Mac 機器。這肯定是一項昂貴的設定多臺 Mac 機器以同時測試多個裝置的方案。
可以透過在 Sauce Lab 的移動雲上執行指令碼來解決 iOS 平臺的此限制。
讓我們看看**在 Sauce Labs 移動雲上使用 Appium 的優勢**
- 無需在本地機器上設定 Appium,從而節省寶貴的時間
- 無需安裝和配置模擬器和模擬器
- 您可以同時在多個 iOS 模擬器上測試您的指令碼
最後,Appium 是一款優秀的移動自動化工具,可用於使用標準自動化 API 在多個平臺上測試您的移動應用程式。並且可以使用多種程式語言的自由以及與 Selenium WebDriver 的關聯增強了其流行度。