用於移動應用測試的 Appium 架構

已發表: 2020-06-26

目錄

Appium 概述

Appium 是一個免費的移動應用程序測試工具/框架,為 iOS 和 Android 移動應用程序提供自動化。 Appium 是一種客戶端-服務器架構,可以接受用 Java、Python、Ruby、JavaScript 等編寫的測試代碼。

Appium 的核心是一個用 Node.js 編程語言編寫的 Web 服務器,它使用 JSON 有線協議創建 iOS 和 Android 會話。

Appium 服務器執行以下操作

  • 通過 HTTP 以 JSON 對象的形式從客戶端接收連接
  • 啟動會話,然後返回會話 ID
  • 監聽發出的命令
  • 在移動設備上執行這些命令
  • 使用 HTTP 響應進行響應

資源

Appium 關鍵概念

在深入研究Appium 架構之前,讓我們首先了解與Appium 架構相關的關鍵概念

Appium客戶端

Appium 客戶端是一個自動化的腳本代碼,可以用您熟悉的任何語言(如 PHP、 Java 、Phyton 等)編寫。 Appium 客戶端保存移動設備和應用程序的配置細節以及運行測試用例的邏輯/代碼。

Appium 服務器

Appium 服務器是一個用 Node.js 編程語言編寫的 HTTP 服務器,它以 JSON 格式接收來自 Appium 客戶端的連接和命令請求,並在移動設備上執行這些命令。 Appium Server 在調用自動化代碼之前啟動。

服務器與 iOS 和 Android 平台交互並創建會話以與移動應用程序的終端設備交互。

閱讀:面向初學者的 20 大熱門 Android 項目創意和主題

終端設備

終端設備大多是實時移動設備或模擬器。 Appium 服務器通過客戶端的命令在終端設備中執行自動化腳本。

JSON 有線協議

在 Appium 架構中,JSON 有線協議是一種傳輸機制,用於在 Appium 客戶端和 Appium 服務器之間建立通信。 該協議控制不同移動設備在會話中的行為。 它是一組通過 RESTful API 公開的預定義端點。 例如,如果客戶端要向服務器發送數據,則客戶端將其轉換為 JSON 對象並將其推送到服務器。 然後服務器解析接收到的 JSON 對象並將其轉換回數據以供使用。

Appium架構

現在讓我們了解Appium 架構

如上所述,Appium 服務器是一個 HTTP 服務器,它以 JSON 格式從客戶端庫中讀取 HTTP 請求,並將這些請求發送到相應的平台。 Appium 服務器識別這些請求並創建與相應終端設備的自動化會話。 創建會話後,Appium 服務器開始在終端設備中執行測試用例。

Appium 服務器對 iOS 和 Android 的請求處理方式不同,具體取決於它運行的平台。 以下部分將解釋 Appium 如何在這些平台上以不同的方式運行命令。

Appium 在 iOS 設備上工作

在 iOS 設備上,Appium 使用 UIAutomation API(Apple 公司提供的 JavaScript 庫)連接應用程序的用戶界面元素。

上面的 Appium iOS 架構圖描述了iOS 自動化的Appium 架構 讓我們一步步解碼 iOS Appium 架構圖:

  • Appium 客戶端使用 JSON 有線協議與 Appium 服務器通信,並將 JSON 格式的命令發送到服務器。
  • 然後服務器與客戶端建立連接並將請求轉發到 ICS(儀器命令服務器)。 Appium 服務器還將 bootstrap.js 文件推送到 iOS 設備。 ICC(儀器命令客戶端)然後獲取命令並在 iOS 設備環境中的 bootstrap.js 文件中運行它。
  • 一旦完成上述操作,客戶端將執行命令的日誌詳細信息發送回服務器。

Appium 在 Android 設備中運行

在 Android 設備上,Appium 將使用 Android 開發人員開發的 UIAutomator 框架與應用程序的用戶界面元素進行交互。 UI Automator 是一個用於測試用戶界面的框架。

上面的 Appium Android 架構圖描述了用於 Android 自動化的 Appium 架構。 上圖將 bootstrap.js 替換為 bootstarp.jar。

學習: Android SDK:初學者詳細教程

讓我們一步步解碼Android Appium架構圖

  • Appium 客戶端使用 JSON 有線協議與 Appium 服務器通信,並將 JSON 格式的命令發送到服務器。
  • Appium 服務器然後與客戶端建立連接並將請求轉發到 ICS UiAutomator 控制器。 Appium 服務器還將 bootstrap.jar 文件推送到 Android 設備。 UiAutomator 命令客戶端然後拾取命令並在 Android 設備環境中的 bootstrap.jar 文件中運行它。
  • 一旦完成上述操作,客戶端將執行命令的日誌詳細信息發送回 Appium 服務器。

另請閱讀:全棧與 Android 開發人員:您應該選擇哪個

結論

Appium 無疑是最流行的移動應用測試平台之一。 到目前為止,您已經了解了Appium架構、工作流程以及 Appium 在 iOS 和 Android 平台上的工作的概述。

如果您有興趣了解有關全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發 PG 文憑,該文憑專為在職專業人士設計,提供 500 多個小時的嚴格培訓、9 個以上的項目,以及任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。

為未來的職業做準備

升級和 IIIT-BANGALORE 的 PG 文憑在全棧軟件開發中
現在申請