Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

開始使用 Robo 測試

Robo 測試是與 Firebase 測試實驗室集成的測試工具。 Robo 測試分析您的應用程序 UI 的結構,然後有條不紊地探索它,自動模擬用戶活動。與UI/Application Exerciser Monkey測試不同,當您使用 Robo 測試在具有相同設置的特定設備配置上測試應用程序時,Robo 測試始終以相同的順序模擬相同的用戶活動。這讓您可以使用 Robo 測試來驗證錯誤修復並以一種在使用UI/Application Exerciser Monkey test 進行測試時無法實現的方式來測試回歸。

Robo 測試捕獲日誌文件,保存一系列帶註釋的屏幕截圖,然後根據這些屏幕截圖創建一個視頻,向您展示它執行的模擬用戶操作。這些日誌、屏幕截圖和視頻可以幫助您確定應用崩潰的根本原因,還可以幫助您查找應用 UI 的問題。

Robo 測試爬取統計信息

為幫助您解讀 Robo 測試結果,Robo 會在每次測試抓取期間記錄統計數據。測試實驗室在測試結果頁面的 Robo 選項卡頂部顯示統計信息:

  • Actions:爬行期間執行的動作總數,包括 Robo 腳本動作、猴子動作和 Robo 指令。
  • 活動:爬行期間涵蓋的不同活動的數量。
  • 屏幕:抓取期間訪問的不同屏幕的數量。

測試實驗室還使用統計數據以爬行圖的形式創建 Robo 爬行的可視化表示。該圖以屏幕為節點,以動作為邊。通過跟踪屏幕之間的邊緣,您可以了解 Robo 在整個抓取過程中如何遍歷您的應用程序。

機器人測試超時

根據應用 UI 的複雜程度,Robo 測試可能需要五分鐘或更長時間才能完成一組完整的 UI 交互。我們建議將大多數應用的測試超時設置為至少 120 秒(2 分鐘),將中等複雜的應用設置為 300 秒(5 分鐘)。對於從 Android Studio 和 Google Developer Console 運行的測試,超時的默認值為 300 秒(5 分鐘),對於從gcloud命令行運行的測試,超時的默認值為 1500 秒(25 分鐘)。

應用程序啟動超時錯誤

如果您的應用需要很長時間才能啟動,Robo 可能會拋出錯誤,並且無法抓取您的應用。這只發生在啟動時間極長的情況下,並且只能通過修改您的應用程序使其啟動更快來解決。

使用 Robo 腳本進行更多控制

有時您需要對測試進行更多控制。例如,您可能想要測試一個常見的用戶旅程或提供特定的 UI 輸入,如用戶名和密碼。 Robo 腳本可以提供幫助。

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

通過 Android Studio 中的 Firebase 工具開始使用 Robo 腳本:

  1. 打開安卓工作室。
  2. 在主菜單中,選擇工具> Firebase
  3. 選擇Test Lab並單擊Record Robo Script 並使用它來指導 Robo 測試
  4. 按照工具中的其餘步驟記錄您的 Robo 腳本。
  5. 將該 Robo 腳本上傳到測試實驗室並開始您的測試。

Robo 腳本錯誤

如果 Robo 腳本在任何時候失敗,測試實驗室將放棄腳本中的所有進一步步驟,並恢復常規 Robo 爬行。大多數情況下,Robo 腳本失敗是因為測試實驗室無法在屏幕上找到必要的元素。為避免失敗,請確保您的應用導航是可預測的,並且您的屏幕不會以某種不確定的順序顯示。

Robo 測試和非 Android UI 小部件

Robo 測試使用 Android API 直接在 Android UI 小部件上執行操作。這有助於測試自動探索您的 UI,但也意味著他們需要能夠提取屏幕的 Android UI 層次結構,以便在其上運行測試。

如果您應用中的某個屏幕不使用 Android UI 小部件,則 Robo 測試會使用 Monkey Actions 來測試該屏幕。與更有條理的 Robo 動作不同,Monkey Actions 只是在設備屏幕上的半隨機位置模擬點擊事件。

為了更好地測試不使用 Android UI 小部件的屏幕,您可以通過Firebase 測試實驗室遊戲循環測試將 Monkey Action 的任意點擊替換為一組腳本化點擊和交互。

與 Google Play 集成

當您使用 Alpha 或 Beta 頻道上傳和發布應用的 APK 文件時,您可以在 Google Play 管理中心中使用 Robo 測試。 Robo 測試在一組來自不同地理位置的流行物理設備上運行,提供跨各種外形和硬件配置的測試覆蓋範圍。要了解更多信息,請參閱使用發布前報告來確定問題

測試帳戶登錄和預定義的文本輸入

Robo 測試支持測試帳戶登錄,還允許您在應用程序的字段中輸入預定義文本。對於自定義登錄和其他預定義文本輸入,Robo 測試可以在您的應用程序的EditText字段中輸入文本。對於每個字符串,您需要使用 Android 資源名稱來標識EditText字段。要了解更多信息,請參閱訪問資源

登入

Robo 測試有兩種互斥的方法來支持登錄:

  • 自定義登錄:如果您提供測試帳戶憑據,則需要告訴 Robo test 在哪裡輸入它們,並提供這些憑據。
  • 自動登錄:如果您的應用的登錄屏幕使用 Google 帳戶進行身份驗證,則 Robo 測試使用 Google 測試帳戶,除非您提供用於自定義登錄的測試帳戶憑據。

要為自定義登錄提供測試帳戶憑據,請執行以下操作:

  1. 選擇維度頁面上,選擇其他選項
  2. 測試帳戶憑據(可選)下,輸入用戶名和密碼資源名稱以及測試帳戶的用戶名和密碼。

預定義文本輸入

您可以為應用程序使用的其他文本字段提供自定義輸入文本。要為其他字段提供文本輸入,請執行以下操作:

  1. 選擇維度頁面上,選擇其他選項
  2. 其他字段(可選)下,輸入一個或多個資源名稱,以及要在相應文本字段中輸入的字符串。

預定義的文本輸入錯誤

Robo 使用與提供的正則表達式匹配的 Android 資源名稱搜索EditText字段。如果 Robo 找不到匹配的字段,它不會輸入您的文本,但會像往常一樣繼續抓取。

您最多可以提供應用支持的三個深層鏈接以進行測試。深層鏈接作為 Android ACTION_VIEW發佈到您的應用。因此,每個鏈接都必須匹配您應用中的一個意圖過濾器。

如果提供了一個或多個深層鏈接,應用程序首先會正常啟動(使用ACTION_MAIN意圖)並爬行到指定的超時時間。在主爬取之後,每個深層鏈接都會額外爬取 30 秒。

如果 Robo 找不到與您的深層鏈接匹配的活動,測試實驗室將忽略該鏈接。深層鏈接問題通常是由提供的深層鏈接與其在應用中的定義之間的差異造成的。檢查提供的 URL 和您的應用程序是否有拼寫錯誤或其他不一致之處。

應用許可支持

測試實驗室支持使用 Google Play 提供的應用許可服務的應用。要在使用測試實驗室測試您的應用程序時成功檢查許可,您必須將您的應用程序發佈到 Play 商店中的生產渠道。要使用測試實驗室在 Alpha 或 Beta 頻道中測試您的應用,請在將您的應用上傳到測試實驗室之前取消許可檢查。

已知的問題

Robo 測試目前具有以下已知限制:

  • UI 框架支持。 Robo 測試僅與使用 Android UI 框架中的 UI 元素的應用兼容(包括ViewViewGroup對象,但不包括WebView對象)。如果您使用 Robo 測試來練習使用其他 UI 框架的應用程序,包括使用 Unity 遊戲引擎的應用程序,則測試可能會退出而不會超出第一個屏幕。
  • 登錄驗證碼。 Robo 測試無法繞過除了輸入憑據才能登錄(例如完成驗證碼)之外還需要其他用戶操作的登錄屏幕。