Firebase is back at Google I/O on May 10! Register now

運行 Robo 腳本

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

本文檔介紹瞭如何使用Robo 腳本,這些腳本是自動執行移動應用程序手動 QA 任務的測試,並支持持續集成 (CI) 和預啟動測試策略。例如,您可以使用 Robo 腳本來測試常見的用戶旅程或提供特定的用戶界面 (UI) 輸入,例如用戶名和密碼。 Robo 腳本是Robo 測試的一個特性。

使用 Robo 腳本,您可以記錄自己在應用程序中完成工作流程的過程,然後將該記錄上傳到 Firebase 控制台以在 Robo 測試中運行。當您運行帶有附加腳本的 Robo 測試時,Robo 會首先執行您預先編寫的腳本操作,然後像往常一樣探索應用程序。

Robo 腳本使用Robo 測試作為測試引擎。在最基本的形式中,Robo 腳本由一系列 UI 操作組成,例如輸入文本“用戶名” ,然後點擊“確定”按鈕。 Robo 腳本還可以包括諸如等待元素出現、點擊元素內的特定點以及執行 Android 調試橋 ( adb ) shell 命令等操作。

與傳統測試框架相比,Robo 腳本具有以下優勢:

能力描述
高度堅固Robo 腳本可以容忍應用程序版本和應用程序脆弱性之間的重大結構和行為差異。
開放式Robo 腳本完成後,基礎 Robo 測試可以接管並繼續測試應用程序。這種持續測試方法支持幾個關鍵用例。例如,您可以使用 Robo 腳本通過執行自定義登錄流程使應用程序進入特定狀態。
可錄音您無需手動編寫 Robo 腳本代碼。它們可以使用 Android Studio 中的 Robo 腳本記錄器進行記錄。創建或修改 Robo 腳本通常不需要任何移動開發知識。
靈活的Robo 腳本可以與遊戲中常見的非本機 UI 元素進行交互。

Robo 腳本在 Robo 測試期間有條件地觸發,這讓用戶可以增強 Robo 的行為——通常是為了實現更大的覆蓋範圍或針對特定功能。與傳統的測試框架相比,Robo 腳本支持以下內容:

  • 各種觸發條件,例如,特定應用程序包名稱處於活動狀態(或不處於活動狀態)或特定元素正在屏幕上顯示(或不顯示)。
  • 執行控制,例如最大執行次數、優先級、相關爬行階段。
  • 非常規操作類型(條件、元素忽略、屏幕關閉)。

我們建議您盡可能使用 Robo 腳本,因為它們易於維護。例如,您可以使用 Robo 腳本執行以下操作:

  • 導航重要的工作流程以到達應用程序功能的核心。例如,您可以執行登錄、在首次啟動後設置應用程序的狀態以及註冊新用戶。
  • 將 Robo 專注於應用程序的特定部分,以充分利用 Robo 測試時間。 Robo 腳本引導 Robo 測試到達應用程序的相關部分,Robo 測試在此處恢復全自動爬網。
  • 將應用程序置於特定狀態或屏幕以執行分析,例如,分析應用程序內消息、隱私政策或遊戲的特定級別。
  • 執行端到端儀器測試,無論是否使用 Robo 測試,都會在 Robo 腳本完成後恢復全自動爬網。

使用更高級的 Robo 腳本功能來執行以下操作:

  • 在Robo開始爬取被測應用程序之前或爬取完成後執行操作,例如,在爬取之前清理被測應用程序數據,更改設備設置等。
  • 在爬行期間更改 Robo 行為的各個方面,特別是:
    • 讓 Robo 忽略一些 UI 小部件或應用程序屏幕。
    • 為 Robo 在從特定屏幕回溯時執行自定義操作。
    • 每當在抓取過程中遇到特定應用程序屏幕時,讓 Robo 執行特定操作。
  • 完全自定義 Robo 如何執行爬網。例如,結合使用條件和非條件操作,在整個抓取過程中將待測應用程序保持在後台,同時執行設備操作並消除沿途出現的任何彈出對話框。

請記住,Robo 腳本不會取代所有類型的測試。您仍然需要單元測試來捕獲應用程序中的低級邏輯錯誤;這些測試通常不需要 Android 或 iOS 環境。我們建議您使用有針對性的儀器測試來補充 Robo 腳本測試,這些儀器測試可以具有關於業務邏輯的特定、詳細的斷言,最好用代碼來表達。

在 Android Studio 中使用測試實驗室錄製 Robo 腳本

Android Studio 中的 Robo 腳本記錄器允許您通過直接與設備上的應用程序交互來記錄 Robo 腳本。按照以下說明通過 Android Studio 中的 Firebase 工具開始使用 Robo 腳本:

  1. 打開Android Studio並選擇Tools -> Firebase

  2. 在 Firebase 面板中,點擊Record Robo Script and Use it to Guide Robo Test

  3. 單擊錄製 Robo 腳本。出現“選擇部署目標”對話框。

  4. 選擇要在其中錄製 Robo 腳本的設備。

  5. 在設備中記錄 Robo 腳本後,將文件作為 JSON 文件保存在所需位置。

  6. 在 Firebase 控制台中打開測試實驗室頁面並上傳 JSON 腳本文件和應用程序 APK。

  7. 單擊繼續按鈕。系統會提示您選擇設備和 API 級別。測試腳本完成後,測試實驗室生成測試報告。

  8. (可選)複製或下載測試報告的logcat和視頻,點擊查看源文件

默認情況下,Robo 腳本穩健性機制可防止其過早失敗。如果您選擇strict執行模式並且 Robo 腳本在任何時候失敗,測試實驗室將放棄腳本中的所有進一步步驟並恢復常規 Robo 爬網。大多數情況下,Robo 腳本失敗是因為 Robo 在屏幕上找不到所需的元素。為避免失敗,請確保您的應用程序導航是可預測的,並且您的屏幕以確定的順序顯示。

在測試實驗室中運行 Robo 腳本

要在測試實驗室中運行 Robo 腳本,請按照以下說明操作:

  1. 在 Firebase 控制台中打開測試實驗室頁面。

  2. 在應用 APK 或 AAB字段中上傳應用的 APK 或 AAB

  3. Robo 腳本(可選)字段中上傳您錄製或手動創建的 Robo 腳本文件。

為本地 Robo 測試運行提供 Robo 腳本

要為本地 Robo 測試運行提供 Robo 腳本,請使用以下 Robo 測試選項:

--robo-script-file <robo-script-path>

<robo-script-path>替換為本地文件系統中 Robo 腳本文件的路徑。按照本地 Robo 測試運行的說明進行操作。

在 gcloud CLI 測試調用中指定 Robo 腳本

要在 gcloud CLI 測試調用中指定 Robo 腳本,請使用以下 gcloud CLI 標誌:

--robo-script = <robo-script-path>

使用gs://表示法將<robo-script-path>替換為您的 Robo 腳本文件在本地文件系統或 Cloud Storage 中的路徑。例如:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

下一步