Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

開始使用 Robo 測試

Robo 測試是與 Firebase 測試實驗室集成的測試工具。 Robo 測試分析您的應用程序 UI 的結構,然後有條不紊地探索它,自動模擬用戶活動。不像UI /應用程序訓練器猴子測試,測試機器人模擬總是相同的用戶活動,以相同的順序,當你使用它來使用相同的設置一個特定的設備配置測試的應用程序。這可以讓你的方式與UI /應用程序訓練器猴子試驗測試時這是不可能用機器人測試,以驗證bug修復和測試的回歸。

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

Robo 測試爬行統計數據

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

  • 操作:在爬行過程中執行的操作的總數,包括機器人腳本操作,猴子的動作,和機器人指令。
  • 活動:的爬網過程中涉及不同的活動數量。
  • 屏幕:抓取期間訪問不同的畫面數。

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

機器人測試超時

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

應用程序啟動超時錯誤

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

使用 Robo 腳本進行更多控制

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

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

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

  1. 打開安卓工作室。
  2. 在主菜單中,選擇工具>火力地堡
  3. 選擇測試實驗室,並單擊錄製機器人腳本,並用它來嚮導機器人測試
  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部件更好的測試屏幕,您可以通過一組腳本水龍頭和相互作用的更換猴行動的任意水龍頭火力地堡測試實驗室遊戲循環測試

與 Google Play 集成

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

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

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

登入

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

  • 自定義登錄:如果您提供測試帳戶憑據,你需要告訴機器人試驗中,在進入其中,並提供這些憑證。
  • 自動登錄:如果您的應用程序有一個登錄屏幕,採用的是谷歌帳戶進行身份驗證,機器人測試使用谷歌測試帳戶,除非你自定義登錄提供測試帳戶憑據。

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

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

預定義文本輸入

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

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

預定義的文本輸入錯誤

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

您可以到三提供高達深層鏈接您的應用測試支持。深層鏈接發給您的應用程序由於Android ACTION_VIEW意圖。因此,每個鏈接都必須匹配您應用中的一個意圖過濾器。

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

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

應用許可支持

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

已知的問題

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

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