# 📱 手機自動化怎麼做?用 Appium 一行行指令操控 App 你是否曾經想過,能不能讓電腦自動幫你點開 App、輸入帳號密碼、查詢資料,甚至每天定時幫你完成這些重複性的操作? 這時候,Appium 就是你的好幫手! Appium 作為一款開源的跨平台自動化測試工具,提供了強大的功能與靈活的架構,成為眾多企業與開發者的首選。 ## 🔍 Appium 是什麼? ![image](https://hackmd.io/_uploads/HyBEKQmbel.png) >https://appium.io/docs/en/latest/ Appium 是一個開源的自動化測試工具,主要用來控制手機上的 App(不管是 Android 還是 iOS),讓你可以透過程式碼自動操作 App 的各種功能。 簡單來說,它就像是手機的「遙控器」,你可以用程式語言(例如 Python、Java、JavaScript 等)寫下指令,讓 Appium 幫你在手機上自動點擊、輸入、滑動等操作。 ## ⚙️ Appium 的核心架構 Appium 採用的是 Client-Server 架構,主要分為三個部分: 1. **Appium 客戶端(Client)**: 開發者使用各種程式語言(如 Java、Python、JavaScript 等)撰寫測試腳本,透過 Appium 提供的客戶端庫與 Appium Server 通訊。 2. **Appium 伺服器(Server)**: 一個基於 Node.js 的伺服器,負責接收來自客戶端的指令,並將其轉換為行動裝置可以理解的命令,進而控制裝置上的應用程式。 3. **行動裝置(Device)**: 實際執行測試指令的設備,可以是實體裝置或模擬器。Appium Server 會在裝置上部署必要的代理程式(如 `appium-uiautomator2-server` 或 `WebDriverAgent`),這些代理程式負責接收指令並與裝置的自動化框架互動。 整個流程就像是:你(Client)告訴 Appium Server 要做什麼,Appium Server 再指揮手機去執行。 ## 🔄 Appium 的工作流程 Appium 的工作流程如下: 1. **初始化會話(Session)**: 客戶端發送一個包含「預期能力(Desired Capabilities)」的 `POST /session` 請求給 Appium Server,指定測試的裝置類型、平台版本、應用程式等資訊。 2. **建立會話並選擇驅動程式**: Appium Server 根據預期能力中的 `automationName`(如 `UiAutomator2` 或 `XCUITest`)選擇相應的驅動程式,並在裝置上啟動對應的代理程式。 3. **執行測試指令**: 客戶端透過 API 發送測試指令(如點擊某個元素)給 Appium Server。 Appium Server 將指令轉發給裝置上的代理程式。 代理程式使用裝置的自動化框架執行指令,並將結果返回給 Appium Server,再由 Appium Server 傳回客戶端。 4. **結束會話**: 測試完成後,客戶端發送結束會話的請求,Appium Server 關閉與裝置的連線,並清理相關資源。 ## 🧩 支援的自動化框架 Appium 根據不同的平台,使用相應的自動化框架: * **Android**: * **UIAutomator2**:適用於 Android 5.0(API 21)及以上版本,提供對原生應用的自動化支援。 * **Espresso**:Google 提供的 Android UI 測試框架,適用於原生應用的白盒測試。 * **iOS**: * **XCUITest**:Apple 提供的官方 UI 測試框架,適用於 iOS 9.3 及以上版本。 ## 🛠️ 為什麼選擇 Appium? * 跨平台支援:一次撰寫的測試腳本,可以同時在 Android 和 iOS 上執行。 * 多語言支援:支援多種程式語言,讓你可以用最熟悉的語言開發。 * 無需修改 App:不需要對 App 進行任何修改或重新編譯。 * 活躍的社群:有大量的教學資源和社群支援,遇到問題不怕找不到答案。 ## 🚀 實際應用場景 Appium 適用於多種測試場景,包括: * **功能測試**:驗證應用程式的功能是否符合需求。 * **回歸測試**:在應用程式更新後,確保現有功能未受影響。 * **跨平台測試**:確保應用程式在不同平台上的一致性。 * **持續整合(CI)**:與 Jenkins 等工具整合,實現自動化測試流程。 ## 📚 小結 Appium 是一個功能強大且易於上手的自動化測試工具,無論你是開發者還是測試人員,都可以透過它來提升工作效率。 如果你對自動化操作手機 App 有興趣,不妨試試看 Appium,相信你會發現它的強大與便利 ###### tags: `更新上部落格`