本文件說明如何使用 Robo 指令碼,這是用於自動執行行動應用程式的手動 QA 工作,並啟用持續整合 (CI) 和正式發布前測試策略的測試。舉例來說,您可以使用 Robo 指令碼測試一般使用者歷程,或提供特定使用者介面 (UI) 輸入內容,例如使用者名稱和密碼。Robo 指令碼是 Robo 測試的功能。
您可以使用 Robo 指令碼,記錄自己在應用程式中逐步操作工作流程,然後將該記錄上傳至 Firebase 主控台,以便在 Robo 測試中執行。當您執行附有指令碼的 Robo 測試時,Robo 會先執行您預先寫好的動作,再照常檢索應用程式。
Robo 指令碼會使用 Robo 測試做為測試引擎。在最基本的形式中,Robo 指令碼包含一系列 UI 動作,例如「輸入文字 'username'」,然後「輕觸「確定」按鈕」。Robo 指令碼也可以包含等待元素顯示、輕觸元素內的特定位置,以及執行 Android Debug Bridge (adb
) 殼層指令等動作。
相較於傳統測試架構,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 忽略某些 UI 小工具或應用程式畫面。
- 在 Robo 從特定畫面回溯時,提供要執行的自訂動作。
- 在檢索期間遇到特定應用程式畫面時,讓 Robo 執行特定動作。
- 完全自訂 Robo 執行檢索的方式。舉例來說,您可以結合條件式和非條件式動作,在整個檢索期間將測試中的應用程式保持在背景中,同時執行裝置操作,並關閉隨時顯示的任何彈出式對話方塊。
請注意,Robo 指令碼無法取代所有類型的測試。您仍需要單元測試來找出應用程式中的低階邏輯錯誤;這些測試通常不需要 Android 或 iOS 環境。建議您透過指定的檢測工具測試補充 Robo 指令碼測試,這些測試可針對業務邏輯提供具體詳細的斷言,而這類斷言最適合以程式碼表示。
在 Android Studio 中使用 Test Lab 記錄 Robo 指令碼
您可以透過 Android Studio 中的 Robo 指令碼錄製器,直接與裝置上的應用程式互動來記錄 Robo 指令碼。請按照下列操作說明,透過 Android Studio 中的 Firebase 工具開始使用 Robo 指令碼:
開啟 Android Studio,然後依序選取「Tools」->「Firebase」。
在 Firebase 窗格中,按一下「記錄 Robo 指令碼並用於引導 Robo 測試」。
按一下「錄製 Robo 指令碼」。「Select Deployment Target」對話方塊隨即顯示。
選取要記錄 Robo 指令碼的裝置。
在裝置中記錄完 Robo 指令碼後,請將檔案儲存為 JSON 檔案並儲存在所需位置。
在 Firebase 控制台中開啟「Test Lab」頁面,然後上傳 JSON 指令碼檔案和應用程式 APK。
按一下「繼續」按鈕。系統會提示您選取裝置和 API 級別。測試指令碼完成後,Test Lab 會產生測試報告。
(選用) 如要複製或下載測試報告和影片的 Logcat,請按一下「View Source Files」。
根據預設,Robo 指令碼健全機制可避免指令碼提早失敗。如果您選擇 strict
執行模式,而 Robo 指令碼在任何時間點失敗,Test Lab 就會放棄指令碼中的所有後續步驟,並恢復定期的 Robo 檢索。大多數情況下,Robo 指令碼會失敗,是因為 Robo 無法在畫面上找到必要的元素。為避免發生錯誤,請確保應用程式導覽可預測,且畫面以確定順序顯示。
在 Test Lab 中執行 Robo 指令碼
如要在 Test Lab 中執行 Robo 指令碼,請按照下列操作說明進行:
在 Firebase 控制台中開啟「Test Lab」頁面。
在「應用程式 APK 或 AAB」欄位中上傳應用程式的 APK 或 AAB。
在「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>
替換為本機檔案系統或 Cloud Storage 中 Robo 指令碼檔案的路徑。例如:
gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>
後續步驟
- 如要瞭解 Robo 指令碼的結構、功能、用途和動作,請參閱 Robo 指令碼參考指南。
- 執行 Robo 測試。