Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

運行 Robo 測試

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

Robo 測試是與 Firebase Test Lab 集成的測試工具。 Robo 測試分析應用程序用戶界面 (UI) 的結構,然後有條不紊地探索它,自動模擬用戶活動。當您使用 Robo 測試在具有相同設置的特定設備配置上測試應用程序時,它總是以相同的順序模擬相同的用戶活動。這種可重複的測試方法讓您可以使用 Robo 測試來驗證錯誤修復和回歸測試。

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

除了運行常規 Robo 測試之外,您還可以使用 Robo 腳本自定義測試,這是 Robo 測試的一項功能。要了解更多信息,請參閱運行 Robo 腳本

Robo 測試抓取統計信息

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

  • Actions:抓取過程中執行的動作總數,包括Robo腳本動作、猴子動作和Robo指令。

  • 活動:爬網期間涵蓋的不同活動的數量。

  • Screens:抓取期間訪問的不同屏幕的數量。

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

機器人測試超時

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

應用啟動超時錯誤

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

使用 Robo 腳本進行更多控制

有時您需要更多地控制您的測試。例如,您可能想要測試一個常見的用戶旅程或提供特定的 UI 輸入,如用戶名和密碼。機器人腳本可以提供幫助。要了解有關 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 Test Lab Game Loop Tests將 Monkey Action 的任意點擊替換為一組腳本化點擊和交互。

與 Google Play 集成

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

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

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

登入

Robo test有兩種互斥的方法來支持簽到:

  • 自定義登錄:如果您提供測試帳戶憑據,則需要告訴 Robo 測試在哪裡輸入它們,並提供這些憑據。

  • 自動登錄:如果您的應用程序有一個使用 Google 帳戶進行身份驗證的登錄屏幕,Robo 測試將使用 Google 測試帳戶,除非您提供測試帳戶憑據以進行自定義登錄。

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

  1. 選擇維度頁面上,選擇其他選項

  2. Test account credentials (Optional)下,輸入用戶名和密碼資源名稱以及測試帳戶的用戶名和密碼。

預定義文本輸入

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

  1. 選擇維度頁面上,選擇其他選項

  2. Additional fields (Optional)下,輸入一個或多個資源名稱,以及要在相應文本字段中輸入的字符串。

預定義文本輸入錯誤

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 測試無法繞過需要額外用戶操作的登錄屏幕,除了輸入憑據才能登錄,例如,完成驗證碼。

下一步

,

Robo 測試是與 Firebase Test Lab 集成的測試工具。 Robo 測試分析應用程序用戶界面 (UI) 的結構,然後有條不紊地探索它,自動模擬用戶活動。當您使用 Robo 測試在具有相同設置的特定設備配置上測試應用程序時,它總是以相同的順序模擬相同的用戶活動。這種可重複的測試方法讓您可以使用 Robo 測試來驗證錯誤修復和回歸測試。

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

除了運行常規 Robo 測試之外,您還可以使用 Robo 腳本自定義測試,這是 Robo 測試的一項功能。要了解更多信息,請參閱運行 Robo 腳本

Robo 測試抓取統計信息

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

  • Actions:抓取過程中執行的動作總數,包括Robo腳本動作、猴子動作和Robo指令。

  • 活動:爬網期間涵蓋的不同活動的數量。

  • Screens:抓取期間訪問的不同屏幕的數量。

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

機器人測試超時

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

應用啟動超時錯誤

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

使用 Robo 腳本進行更多控制

有時您需要更多地控制您的測試。例如,您可能想要測試一個常見的用戶旅程或提供特定的 UI 輸入,如用戶名和密碼。機器人腳本可以提供幫助。要了解有關 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 Test Lab Game Loop Tests將 Monkey Action 的任意點擊替換為一組腳本化點擊和交互。

與 Google Play 集成

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

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

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

登入

Robo test有兩種互斥的方法來支持簽到:

  • 自定義登錄:如果您提供測試帳戶憑據,則需要告訴 Robo 測試在哪裡輸入它們,並提供這些憑據。

  • 自動登錄:如果您的應用程序有一個使用 Google 帳戶進行身份驗證的登錄屏幕,Robo 測試將使用 Google 測試帳戶,除非您提供測試帳戶憑據以進行自定義登錄。

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

  1. 選擇維度頁面上,選擇其他選項

  2. Test account credentials (Optional)下,輸入用戶名和密碼資源名稱以及測試帳戶的用戶名和密碼。

預定義文本輸入

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

  1. 選擇維度頁面上,選擇其他選項

  2. Additional fields (Optional)下,輸入一個或多個資源名稱,以及要在相應文本字段中輸入的字符串。

預定義文本輸入錯誤

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 測試無法繞過需要額外用戶操作的登錄屏幕,除了輸入憑據才能登錄,例如,完成驗證碼。

下一步