Appium 客户端簡介
由於在 主要概觀 中討論的所有原因,Appium 是基於 W3C WebDriver 規範。這表示 Appium 實作了客戶端-伺服器架構。伺服器(包含 Appium 本身以及您用於自動化的任何驅動程式或外掛程式)會連線到測試中的裝置,並實際負責在這些裝置上執行自動化。客戶端(由您,也就是 Appium 測試作者驅動)負責透過網路將指令傳送給伺服器,並接收伺服器回傳的回應。這些回應可用於判斷自動化指令是否成功,或可能包含您查詢的應用程式狀態資訊。此文件是對此等式的客戶端概念性介紹。
資訊
如需瞭解等式的伺服器端(亦即 Appium 實際如何控制裝置?),請查看我們的 Appium 驅動程式簡介。如需跳至 Appium 客戶端程式庫連結清單,請查看 客戶端清單。
有哪些自動化指令可用?這取決於您在任何特定階段使用的特定驅動程式和外掛程式。標準指令集會包含下列指令,例如
- 尋找元素
- 按一下元素
- 取得頁面原始碼
- 擷取螢幕截圖
如果您在 WebDriver 規範中查看這些指令,您會注意到它們並未定義為任何特定程式語言。它們不是 Java 指令、JavaScript 指令或 Python 指令。相反地,它們構成 HTTP API 的一部分,可從任何程式語言(或沒有!如果您願意,您只需使用 cURL)存取。
因此,例如,尋找元素
指令對應於傳送至 HTTP 端點 /session/:sessionid/element
的 HTTP POST
要求(其中,:sessionid
是伺服器在先前呼叫 建立階段
時產生的唯一階段 ID 的佔位符)。
此資訊主要對開發使用 WebDriver 規範技術的人員有用。對於嘗試撰寫 Appium 或 Selenium 測試的人員來說,這並不太有用。當您撰寫 Appium 測試時,您會想要使用您熟悉的程式語言。幸運的是,有一組 Appium 客戶端程式庫1,負責與 Appium 伺服器對話的 HTTP 責任。相反地,它們公開一組特定程式語言的「原生」指令,因此,對於測試作者而言,感覺上就像您正在撰寫 Python、JavaScript 或 Java。
舉例來說,以下是五種不同程式語言中相同的簡單 Appium 指令集,使用每種語言建議的 Appium 客戶端繫結(請注意,這不是包含所有適當匯入的運作範例程式碼;請參閱每個客戶端程式庫的設定和指令參考說明)
這些腳本儘管使用不同的語言,但本質上執行相同的操作
- 呼叫
Find Element
,其中using
參數為xpath
,而value
參數表示用於尋找元素的 XPath 查詢。(如果您對這些術語感到困惑,您可能會覺得 Appium 或 Selenium 簡介很有用) - 呼叫
Click Element
,其中 ID 為先前呼叫中找到的元素 ID。 - 呼叫
Get Element Text
,其中 ID 為相同元素的 ID,並將其列印至主控台。 - 呼叫
Get Page Source
以擷取頁面/應用程式來源,並將其列印至主控台。
在選擇或使用客戶端之前,唯一需要記住的另一件事是,每個客戶端都是獨立維護的。僅因為某個功能在一個客戶端中可用,並不表示它在另一個客戶端中可用(儘管所有客戶端都至少支援標準 W3C 協定加上任何常見的 Appium 延伸功能)。僅因為一個客戶端具有一組不錯的輔助函式,並不表示另一個客戶端也有。有些客戶端會非常頻繁地更新,而有些則不會!因此,在考慮選擇程式庫時,第一個考量因素是您想要使用的語言,而第二個考量因素則是該程式庫的功能齊全程度和維護良好程度!
若要了解如何使用 Appium 客戶端,請前往該客戶端的主頁以進一步了解。在許多情況下,針對特定語言的 Appium 客戶端建構在該語言的 Selenium 客戶端之上,因此某些 Appium 客戶端可能只記錄 Appium 客戶端新增至 Selenium 客戶端之上的功能。總而言之,若要取得完整參考,您可能需要同時參閱 Appium 客戶端文件和 Selenium 客戶端文件。
這就是您需要了解 Appium 客戶端的所有資訊!前往 客戶端 頁面查看客戶端的目前清單。
-
這些程式庫交替稱為「客戶端」、「客戶端程式庫」或「客戶端繫結」。它們的意思都相同! ↩