發佈時間:5月12,2020
Appium:可擴展行動測試的綜合指南
Appium 已成為行動測試自動化領域的基石近 15 年。在瞬息萬變的行動應用開發領域,這幾乎可以算是漫長的歲月。 Appium 的普及率很高,因為它有助於確保跨各種裝置的一致性品質。它的主要用途是簡化跨真實設備和虛擬設備的測試流程,從而幫助開發團隊實現可擴展且穩健的軟體品質。
Appium 伺服器作為一個強大的 HTTP 伺服器,能夠將測試命令轉換為特定於裝置的指令,並與 xcuitest(iOS)和 UI Automator/Espresso(Android)等原生框架進行互動。這使得用戶互動能夠無縫自動化,並驗證各種設備配置下的功能和效能。
除了核心功能之外,Appium 的開源特性仍然是一項顯著優勢。這催生了一個充滿活力且活躍的社區。此外,它還支援廣泛的定制,並可與流行的 CI/CD 流水線和測試框架整合。隨著 AI 驅動的測試和雲端設備叢集的日益普及,Appium 的適應性比以往任何時候都更加重要。
將 Appium 伺服器與持續測試策略整合對於實現快速反饋循環和保持高品質的行動版本至關重要。利用 Appium 可以自動執行回歸測試、效能測試和 UI 測試,從而確保在分散的行動生態系統中提供一致的使用者體驗。若要探索 Appium 的進階功能和企業級解決方案,請深入了解以下解決方案: Digital.ai Continuous Testing這些功能透過人工智慧驅動的洞察力和基於雲端的可擴展性來增強 Appium,使組織能夠在競爭激烈的行動市場中保持領先地位。
Appium 的持久價值: 彌合現代 Web 和行動測試之間的差距
自軟體測試誕生之初以來,數位化格局已經發生了翻天覆地的變化。 W隨著各種行動裝置、整合和漸進式 Web 應用 (PWA) 的激增,強大且可擴展的測試解決方案比以往任何時候都更加重要。 Appium 仍然是現代測試策略的基石。
手動測試和自動化測試範式
在智慧型手機時代初期,手動測試是軟體品質測試的主要方法。雖然手動測試對於基本功能檢查很有效,但隨著時間的推移,它已被證明既耗時又難以持續。隨著軟體複雜性和設備多樣性的不斷增加,亟需一種更先進的測試方法。這催生了腳本測試,即使用工具來自動化使用者操作。然而,傳統的腳本測試方法往往難以實現跨平台相容性和可擴展性。
Appium之所以持續流行,是因為它能夠應對現代行動和Web應用程式測試的關鍵挑戰:
- 跨平台兼容性: 設備生態系統仍高度分散。 Appium 的框架無關性使測試人員能夠編寫可在 iOS、Android 甚至 Web 瀏覽器上執行的腳本,從而顯著降低開發工作量。能夠利用廠商提供的測試框架(例如 xcuitest 和 Espresso)也是一大優點。
- 可擴展性和效率: Appium 提供與雲端裝置叢集的集成,支援跨眾多裝置和配置的平行測試。這種可擴展性對於在敏捷開發中實現快速回饋循環至關重要。 DevOps 環境。
- 開源的靈活性和社群: Appium 的開源特性孕育了一個活躍的社區,鼓勵持續創新。這體現在其豐富的插件、整合和最佳實踐中,這些都增強了測試能力。
- AI驅動的測試整合: 人工智慧驅動的測試正逐漸成為主流。 Appium 的靈活性使其能夠與人工智慧驅動的測試工具集成,從而輔助進行視覺化測試和編寫自癒腳本。
- 遠端設備存取: Appium 控制遠端設備的能力比以往任何時候都更重要。隨著遠端辦公和雲端測試的興起,遠端設備存取已成為一項基本要求。
Appium 的統一自動化框架
在瞬息萬變的Web和行動應用測試領域,Appium憑藉其重要的開源自動化框架脫穎而出。它經久不衰的原因在於,它能夠為不同平台和技術的測試提供統一的方法。
跨平台自動化的力量
Appium 的核心優勢在於其平台無關性。借助 WebDriver 協議,Appium 使測試人員能夠編寫一套測試腳本,這些腳本既可以在 iOS 和 Android 平台上執行,也可以在各種 Web 瀏覽器上執行。這消除了為每個平台維護單獨測試工具的需要,從而顯著降低了開發和維護成本。
超越原生應用程式:Web 與混合應用程式測試
Appium 的功能遠不止於原生行動應用程式。它還能無縫支援 Web 應用和混合應用的測試,確保對整個數位生態系統進行全面覆蓋。這一點在 PWA 和跨平台 Web 體驗日益普及的今天尤其重要。
語言靈活性和設備多樣性
Appium 支援多種程式語言,包括 Python、Java、JavaScript 等,讓測試人員能夠使用他們偏好的工具和工作流程。此外,Appium 還支援在真機、模擬器和模擬器上進行測試,為測試環境提供了靈活性。隨著雲端設備叢集的日益普及,能夠針對大量真機進行測試已成為一項必備功能。
現代建築與增強性能
Appium 的架構是基於 WebDriver 協議,確保測試腳本與目標裝置之間穩健可靠的通訊。該協定已取代 JSON Wire 協定。現代 Appium 實作還注重效能最佳化,從而實現更快的測試執行速度和更短的回饋週期,這對於敏捷開發至關重要。
從命令列介面到圖形使用者介面及其他
Appium 最初是一款命令列介面 (CLI) 工具,如今已發展成為一款用戶友好的桌面應用程序,並擁有適用於 Windows、macOS 和 Linux 的圖形用戶界面 (GUI)。 Appium 與雲端平台和 AI 驅動的測試工具的整合進一步增強了其功能,使其成為現代測試自動化策略的重要組成部分。能夠同時使用 Appium 和其他基於 GUI 的工具是一項巨大的優勢。
Appium 的現代化、可擴展架構
以下是Appium核心元件的詳細介紹:
- Appium伺服器:
- Appium 的核心-伺服器,是基於 Node.js 建置的,可以部署到本機或雲端基礎設施。
- 透過 WebDriver 協定接收來自 Appium 用戶端庫的測試請求,取代了舊的 JSON Wire 協定。
- 然後伺服器將這些請求路由到對應的裝置驅動程式(例如,XCUITest 驅動程式、UIAutomator2 驅動程式),以便與原生測試框架進行互動。
- Appium Server 支援並發會話,因此可以在多個裝置上進行平行測試。
- Appium客戶端程式庫:
- Appium 用戶端程式庫支援多種程式語言(Python、Java、JavaScript、C# 等),簡化了測試腳本的建立。
- 他們使用 WebDriver 協定與 Appium 伺服器通信,發起測試會話並接收測試結果。
- 用戶端程式庫會不斷更新,以與最新的 Appium 伺服器功能相容。
- WebDriver協定:
- Appium 利用 WebDriver 協定(一種標準化的通訊協定)進行客戶端-伺服器互動。
- 它提供了一種強大而可靠的方式來實現 Web 和行動應用程式的自動化。
- 該協議相比舊的JSON Wire協議,能夠實現更現代化的交互,並具有更好的穩定性。
- Appium 驅動程式:
- Appium 的平台無關性得益於其使用裝置特定的驅動程式:
- UIAutomator2 是現代 Android 測試的主要驅動力。
- 表示 是另一個越來越受歡迎的安卓驅動程式。
- XCUI測試 是 iOS 測試的驅動程式。
- 驅動程序 用於 Windows 應用程式測試。
- 這些驅動程式充當橋樑,將 WebDriver 命令轉換為裝置原生指令。
- Appium 的平台無關性得益於其使用裝置特定的驅動程式:
- 原生自動化框架:
- Appium 依賴原生自動化框架與裝置互動:
- UIAutomator/Espresso(Android): 提供對 Android 使用者介面元素和功能的存取權限。
- XCUITest(iOS): 支援對 iOS 應用程式進行測試。
- 這些框架由作業系統供應商提供,以確保相容性和效能。
- Appium 依賴原生自動化框架與裝置互動:
Appium 的工作原理:
- 使用 Appium 用戶端程式庫編寫的測試腳本向 Appium 伺服器傳送 WebDriver 命令。
- 伺服器根據所需的功能(設備名稱、平台等)將命令路由到相應的設備驅動程式。
- 驅動程式將這些命令轉換為本地自動化框架可以執行的指令。
- 測試結果透過驅動程式、伺服器和客戶端程式庫發送回去。
- Appium 仍透過設備是否具備所需功能來區分設備類型。
- 移除 bootstrap.js/bootstrap.jar 也是一項重大變更。 Appium 現在直接與原生測試框架通訊。
Appium 實際應用
Appium 能夠無縫地在 Android 和 iOS 裝置上實現自動化測試,這是其關鍵優勢。以下是它在每個平台上的運作方式:
安卓裝置上的 Appium:
- 會話啟動:
- 用戶端機器透過 WebDriver 協定使用 Appium 用戶端程式庫向 Appium 伺服器傳送請求,以啟動新的測試自動化會話。
- 伺服器路由:
- Appium 伺服器分析請求中指定的所需功能,並將目標平台識別為 Android。
- 然後伺服器將命令路由到相應的 Android 驅動程序,通常是 UIAutomator2 或 Espresso。
- 原生框架互動:
- Android 驅動程式直接與 UIAutomator2 或 Espresso 框架交互,它們都是原生 Android 測試框架。
- 現在不再需要 bootstrap.jar 檔案。 Appium 可以直接與原生測試框架通訊。
- 測試執行及結果:
- UIAutomator2 或 Espresso 在 Android 裝置(真機、模擬器或模擬器)上執行測試指令。
- 測試結果和日誌隨後被轉送回 Appium 伺服器,Appium 伺服器再將它們傳送給客戶端。
iOS 裝置上的 Appium:
- 會話啟動:
- 與 Android 類似,用戶端機器會向 Appium 伺服器傳送 WebDriver 協定請求以啟動測試會話。
- 伺服器路由:
- Appium 伺服器在辨識出所需功能中的 iOS 後,會將指令導向至 XCUITest 驅動程式。
- 原生框架互動:
- XCUITest 驅動程式直接與 XCUITest 框架(蘋果公司的原生 iOS 測試框架)進行互動。
- 現在不再需要 bootstrap.js 檔案。 Appium 可以直接與原生測試框架通訊。
- 測試執行及結果:
- XCUITest 框架在 iOS 裝置(真機或模擬器)上執行測試。
- 測試結果和日誌會傳回 Appium 伺服器,然後再傳送給客戶端。
了解 Appium 的 WebDriver 協議
隨著 Appium 的發展, WebDriver協定 它已成為客戶端庫與 Appium 伺服器之間通訊的標準。它取代了舊的 JSON Wire 協議,使 Appium 與現代 Web 自動化標準保持一致。
這是一個細分:
- WebDriver協定:
- 是 W3C(萬維網聯盟)的標準,旨在提供一種與平台和語言無關的方式來自動化 Web 瀏覽器。
- Appium 採用了 WebDriver 協議,將其自動化功能擴展到行動應用程式。
- 它定義了一組命令和回應,使客戶端庫能夠與 Appium 伺服器進行互動。
- 這是一個 RESTful Web 服務。
- 為什麼要進行轉變?
- WebDriver 協定比 JSON Wire 協定更現代、更標準化、更強大。
- 它與網路自動化工具和框架具有更好的兼容性。
- 為Appium自動化帶來更高的穩定性和效能。
- Appium架構與WebDriver:
- 現在,客戶端庫和 Appium 伺服器之間的通訊是透過基於 HTTP REST 請求的 WebDriver 協定實現的。
- 這使得 Appium 能夠保持其跨平台和語言無關的功能,因為伺服器負責處理協定層級的通訊。
- 怎麼運行的:
- 客戶端程式庫向 Appium 伺服器傳送包含 WebDriver 命令的 HTTP 請求。
- 伺服器處理這些命令,並將它們路由到相應的裝置驅動程式。
- 驅動程式在目標裝置上執行命令並將回應傳回伺服器,伺服器再將回應轉送給客戶端。
- 互動範例包括建立新會話或在被測應用程式中尋找元素。
安裝 Appium:伺服器和桌面選項
Appium 的核心功能維持不變,但安裝方式和使用模式有所演變。它提供靈活的部署方式,既能滿足互動式開發的需求,也能滿足自動化 CI/CD 管線的需求。
Appium Server 與 Appium:
- Appium 伺服器(CLI):
- 這是基礎元件:一個處理測試自動化請求的 Node.js 伺服器。
- 對於將 Appium 整合到 CI/CD 管道中至關重要,其中自動化腳本管理測試執行。
- 安裝通常透過 Node 套件管理器 (npm) 完成。
- Appium(圖形使用者介面):
- 提供使用者友善的圖形介面,用於管理 Appium 會話和檢查應用程式元素。
- 包含 Appium,這是用於分析 UI 元素和產生測試定位器的寶貴工具。
- 簡化了初始設定和調試,使其成為開發和故障排除的理想選擇。
- 值得注意的是,在使用最新功能時,Appium 伺服器是最可靠的。
安裝最佳實踐
- Node.js 和 npm: 請確保您已安裝最新穩定版本的 Node.js 和 npm。 Appium Server 的運作依賴它們。
- 環境變量: 正確配置環境變數(例如, JAVA_HOME, ANDROID_HOME)以確保 Appium 可以找到必要的依賴項。
- 驅動安裝: 根據目標平台安裝所需的裝置驅動程式(例如 UIAutomator2、XCUITest)。
- 雲集成: 許多團隊都在基於雲端的設備叢集中運行 Appium。
- CI/CD 整合: 對於 CI/CD 管線,請使用 npm 將 Appium Server 安裝為相依性。
- 建立腳本以在建置和測試過程中啟動和停止 Appium 伺服器。
- 阿皮姆: Appium 是一個非常有用的工具,在建立新測試時應該使用它。
步驟1:安裝Node.js
由於 Appium 是用 Node.js 編寫的,因此您需要先安裝 Node.js 才能使用 Appium。請造訪 Node.js 官網下載該軟體。
有關 MacOS 和 Windows 的詳細安裝說明和下載,請參閱 以下資源。 根據您的電腦型號,從下拉式選單中選擇相應的作業系統。
步驟二:從命令提示字元安裝 Appium
- 以管理員身份開啟命令提示符,然後輸入以下命令: npm install -g Appium
- npm 套件管理器將啟動安裝程序。
- 安裝成功後,即可開始使用 Appium。
- 若要從命令列開啟 Appium,請鍵入 Appium,後面接著 IP 位址和伺服器連接埠號碼。
基於圖形使用者介面的 Appium 安裝
- 下載並安裝 Appium:若要下載並安裝 Appium,請造訪 Appium 網站: https://Appium.io/
- 安裝成功後,開啟 Appium。
- Appium 會在啟動畫面上提示您輸入主機 IP 位址和伺服器連接埠號碼。
- Appium 僅是一個 HTTP 伺服器。您需要客戶端庫才能向終端設備發出請求並執行操作。啟動 Appium 時,設定伺服器連接埠至關重要。客戶端透過伺服器連接埠與 Appium 連接並進行通訊。預設伺服器連接埠為 4723。連接到客戶端電腦時,請指定此伺服器連接埠。
- 若要變更伺服器端口,請按一下「進階」選項卡,請查看伺服器配置設定畫面。輸入詳細資訊並啟動伺服器。
- 如果您想要儲存這些設定以便下次使用,請將其儲存為預設,並在下次開啟 Appium 時選擇預設標籤設定。
- Appium 僅是一個 HTTP 伺服器。您需要客戶端庫才能向終端設備發出請求並執行操作。啟動 Appium 時,設定伺服器連接埠至關重要。客戶端透過伺服器連接埠與 Appium 連接並進行通訊。預設伺服器連接埠為 4723。連接到客戶端電腦時,請指定此伺服器連接埠。
- Appium 已準備就緒,可以使用了。
利用 Appium 推動 SDLC 成功 Continuous Testing
對於致力於交付高品質 Web 和行動應用的企業而言,持續測試至關重要。 Appium 在過程中扮演關鍵角色,協助企業實現無縫且有效率的持續測試工作流程。它與 CI/CD 管線的無縫集成,使得在軟體開發生命週期 (SDLC) 的每個階段都能實現自動化測試,從而快速獲得回饋並確保及早發現問題。基於雲端的 Appium 設備叢集還支援跨多個裝置進行平行測試,顯著加快了整體測試流程。
持續測試工具已超越了基本的功能檢查,涵蓋性能測試、功能測試和可訪問性測試,所有這些測試都實現了無縫自動化,並整合到 CI/CD 管線中。結合 Appium,基於雲端的測試平台可按需存取各種真實設備和模擬器,從而支援跨多種配置的全面測試。
Appium 的優勢 Continuous Testing:
- 提高測試覆蓋率: 跨多個裝置和平台的自動化測試確保全面覆蓋。
- 更快的回饋週期: 快速發現問題可以更快解決問題,加快發布週期。
- 提升軟體品質: 持續測試有助於在整個開發過程中保持高品質標準。
- 減少手動工作量: 自動化減輕了人工測試的負擔,從而釋放了資源用於其他任務。
- 增強協作: 共享測試結果和見解有助於開發團隊和品質保證團隊之間更好地協作。
連 Digital.ai Continuous Testing 到 Appium
Digital.ai Continuous Testing 是一個可擴展的 Web 和行動應用程式測試工具,它允許測試團隊在雲端的真實設備和瀏覽器上完全自動化功能、效能和可訪問性場景。
Continuous Testing 它與 Appium 和 Selenium 等工具完全相容,也相容:
- 標準自動化驅動程式
- 持續整合 (CI) 環境
- 自動化框架
- 原生行動測試框架
- 編程語言
- 整合開發環境 (IDE)
- 原生行動應用程式開發工具
以下是連接步驟指南 Digital.ai Continuous Testing 使用 Appium for Windows。
Appium 是一款適用於 Mac、Windows 和 Linux 的開源應用程式。它允許用戶透過靈活的用戶介面自動化行動腳本。整合 Continuous Testing 使用 Appium,用戶可以在真實的 Android 和 iOS 裝置上進行檢查。最新版本的 Appium 可從以下網址下載: Appium Desktop GitHub 頁面.
讓我們學習如何使用 Appium Inspector。 Digital.ai Continuous Testing.
啟動伺服器: 啟動 Appium 應用程式以開啟新的會話窗口,並以「簡單」模式啟動伺服器。

連接到您的 Digital.ai Continuous Testing 雲端* 實例
1。 點擊 ”啟動檢查器會話“
2. 從雲端服務提供者中選擇“Digital.ai Continuous Testing“

3. 填寫您的雲端服務 URL 和 訪問密鑰
4. 設定所需功能 – 我們需要設定功能,以便將 Appium 實例指向我們要操作的裝置。
iOS基本功能
自動化名稱 – XCUITest
deviceName – 目標裝置的名稱,但可以是通用名稱,例如「Samsung」。
平台名稱 – iOS
udid – 裝置序號

iOS應用程式功能
要安裝和啟動應用程序,需要具備以下功能:
應用程式 – 雲端:
bundleId – 應用程式的捆綁包標識符
要啟動應用程序,需要具備以下功能:
bundleId – 應用程式的捆綁包標識符
iOS瀏覽器功能
瀏覽器名稱 – Safari
自動化名稱 – UIAutomator2
deviceName – 目標裝置的名稱,但可以是通用名稱,例如「Samsung」。
平台名稱 – Android
udid – 裝置序號

要安裝和啟動應用程序,需要具備以下功能:
應用 - 雲:
appPackage – 應用程式的包名
appActivity – 應用程式的活動名稱

簡而言之 啟動應用程式需要具備以下能力:
appPackage – 應用程式的包名
appActivity – 應用程式的活動名稱
Android瀏覽器功能
瀏覽器名稱 – Chrome
開始會議
所有必要功能都配置完畢後,我們就可以「開始會話」了。
就這樣。祝您測試愉快!
Appium-一種可擴展的自動化解決方案 Continuous Testing
Appium 強大的架構、跨平台功能以及與現代測試生態系統的無縫集成,鞏固了其作為自動化持續測試基石的地位。它能夠跨各種設備和環境擴展測試工作,並可適應 AI 驅動和基於雲端的測試策略,確保其在未來幾年內繼續保持其重要性。
為了在測試工作流程中充分發揮 Appium 的潛力,請探索能夠增強 Appium 功能的高階解決方案,例如以下代理商提供的解決方案: Digital.ai Continuous Testing我們的工具提供人工智慧驅動的洞察、基於雲端的可擴展性和企業級支持,幫助您實現無與倫比的測試效率和品質。了解這些先進平台如何幫助您的團隊自信地打造卓越的數位體驗。
欲了解更多關於 Digital.ai Continuous Testing, 立即註冊免費試用.