Firebase Test Lab 可讓您在各種裝置和設定中測試應用程式。這份入門指南會提供導入路徑,以及 Test Lab 的 Android 產品介紹。
如要瞭解 Test Lab 配額和定價方案,請參閱「用量、配額和定價」。
基本概念
當您針對所選裝置和設定執行測試或一組測試案例時,Test Lab 會針對應用程式執行批次測試,然後以測試矩陣的形式顯示結果。
裝置 × 測試執行次數 = 測試矩陣
- 裝置
- 您用來執行測試的實體或虛擬裝置 (僅限 Android),例如手機、平板電腦或穿戴式裝置。測試矩陣中的裝置會根據裝置型號、作業系統版本、螢幕方向和語言代碼 (也稱為地理位置和語言設定) 進行識別。
- 測試、測試執行
- 要在裝置上執行的測試 (或一組測試案例)。您可以為每部裝置執行一項測試,也可以選擇將測試分割,並在不同裝置上執行其測試案例。
- 測試矩陣
- 包含測試執行作業的狀態和測試結果。如果矩陣中的任何測試執行作業失敗,整個矩陣都會失敗。
步驟 1:準備要上傳至 Test Lab 的測試
可用的測試類型
您可以使用 Test Lab 執行下列測試。請注意,所有測試類型在實體裝置上執行的時間上限為 45 分鐘,在虛擬裝置上則為 60 分鐘。所有未偵測到的例外狀況都會導致測試失敗。
檢測設備測試或檢測設備單元測試:您使用 Espresso 或 UI Automator 架構編寫的測試。透過這項測試,您可以明確斷言應用程式的狀態,藉此使用 AndroidJUnitRunner API 驗證正確的功能。
請參閱「執行檢測設備測試」一文,瞭解如何準備在 Test Lab 中執行的測試。
如需建構檢測設備測試的操作說明,請參閱 Android 開發人員說明文件。
Robo 測試:自動化測試,可分析應用程式的 UI,然後模擬使用者活動,有系統地探索 UI,無需編寫任何程式碼。詳情請參閱「關於 Robo 測試」。
遊戲迴圈測試:這項測試會使用「示範模式」模擬遊戲應用程式中的玩家動作。以快速且可擴充的方式驗證遊戲對使用者而言執行效能良好。選擇執行遊戲迴圈測試時,您可以:
編寫遊戲引擎原生測試
避免為不同的 UI 或測試架構編寫相同的程式碼
您可以選擇建立多個迴圈,在單一測試執行期間執行 (請參閱「關於遊戲迴圈測試」瞭解詳情)。您也可以使用標籤整理迴圈,以便持續追蹤及重新執行特定迴圈。
如要瞭解如何使用 Test Lab 執行這項測試,請參閱「執行遊戲迴圈測試」一文。
執行測試的工具
您可以選擇下列工具執行測試:
適合初次使用的使用者:Firebase 控制台可讓您上傳應用程式,並透過網路瀏覽器啟動測試。如要瞭解如何使用這項工具執行測試,請參閱「使用 Firebase 控制台進行測試」一文。
Android Studio 整合功能可讓您在不離開開發環境的情況下測試應用程式。如要瞭解如何使用這項工具執行測試,請參閱「使用 Android Studio 進行測試」。
gcloud 指令列介面可讓您透過互動式指令列執行測試,也非常適合用於自動化建構和測試程序的指令碼。如要瞭解如何使用這項工具執行測試,請參閱「使用 gcloud CLI 進行測試」一文。
您也可以使用 Test Lab 免費測試應用程式,方法是使用 Alpha 版或 Beta 版頻道將應用程式的 APK 檔案上傳並發布至 Play 商店。詳情請參閱「透過正式發布前測試報告找出問題」和「Robo 測試」。
步驟 2:選擇測試裝置
Test Lab 支援在 Google 資料中心安裝及執行的多個 Android 裝置品牌和型號進行測試。在 Test Lab 裝置上執行測試有助於偵測使用 Android Studio 中的模擬器測試應用程式時,可能不會發生的問題。詳情請參閱「可用的裝置」。
步驟 3:查看測試結果
無論您如何啟動測試,所有測試結果都是由 Test Lab 管理,並能在線上檢視。
系統會自動儲存測試結果摘要,您可以在 Firebase 主控台中查看。這份報告包含測試最相關的資料,包括測試案例專屬影片、螢幕截圖、通過、失敗或出現不穩定結果的測試次數等等。
原始測試結果包含測試記錄和應用程式失敗的詳細資料,並會自動儲存在 Google Cloud 值區中。如果您指定值區,就必須負擔儲存空間費用。如果您未指定值區,Test Lab 會免費為您建立一個。
詳情請參閱「分析 Firebase Test Lab 結果」。
從 Android Studio 啟動測試時,您也可以在開發環境內部查看測試結果。
裝置清理
Google 十分重視應用程式資料的安全性。我們會遵循業界標準的最佳做法,在每次測試結束後移除實體裝置的應用程式資料,並重設系統設定,確保裝置可執行新的測試。對於可透過自訂復原映像檔進行刷機的裝置,我們會進一步在測試執行期間刷新這些裝置。
對於 Test Lab 使用的虛擬裝置,裝置執行個體會在使用後刪除,因此每次測試執行作業都會使用新的虛擬裝置執行個體。
Test Lab 和 Google Play 服務
Test Lab 裝置通常會執行最新版的 Google Play 服務 SDK,但有些裝置可能需要幾天才能更新至新版 SDK。請注意,部分裝置可能會發生相容性問題。
允許測試裝置存取私人後端伺服器
部分行動應用程式需要與私人後端服務通訊,才能在測試期間正常運作。如果您的後端伺服器受防火牆規則保護,您可以使用下列 IP 位址區塊透過防火牆開啟路徑,允許 Test Lab 的實體和虛擬裝置存取。
行動廣告
Test Lab 提供可自動執行應用程式測試的可擴充基礎架構,但不幸的是,這項功能可能會遭到惡意應用程式濫用,用於產生不當廣告收益。
如要緩解這個問題,請按照下列步驟操作:
如果您使用或與第三方數位廣告供應商 (例如廣告聯播網或需求端平台) 合作,建議您在應用程式開發和測試期間使用測試廣告,而非實際廣告。
如果您必須在測試中使用真實廣告,請通知您合作的數位廣告供應商,使用下方 IP 位址區塊篩除由 Test Lab 產生的收益和所有相關流量。您不需要通知 Google 自有廣告供應商,Test Lab 會為您處理這項作業。
Test Lab 裝置使用的 IP 位址
Test Lab 裝置產生的所有網路流量都來自下列IP 位址區塊。您也可以在 gcloud CLI 中使用 gcloud beta firebase test ip-blocks list
指令存取這份清單。這份清單平均每年更新一次。
平台和裝置類型 | CIDR IP 位址區塊 |
---|---|
Android 和 iOS 實體裝置、Arm 虛擬裝置 |
70.32.128.0/19 (2022 年 2 月新增) 108.177.6.0/23 108.177.18.192/26 (新增於 2022 年 2 月) 108.177.29.64/27 (將於 2022 年 2 月展開) 108.177.31.160/27 (於 2022 年 2 月新增) 199.36.156.8/29 (新增於 2022 年 2 月) 199.36.156.16/28 (新增於 2022 年 2 月) 209.85.131.0/27 (新增於 2022 年 2 月) 2001:4860:1008::/48 (新增 02-2022) 2001:4860:1018::/48 (2022 年 2 月新增) 2001:4860:1019::/48 (新增 02-2022) 2001:4860:1020::/48 (新增 02-2022) 2001:4860:1022::/48 (2022 年 2 月新增) 70.32.128.48/28 (新增 04 至 2024) |
Android 虛擬裝置 (非 Arm) |
34.68.194.64/29 (2019 年 11 月新增) 34.69.234.64/29 (2019 年 11 月新增) 34.73.34.72/29 (2019 年 11 月新增) 34.73.178.72/29 (2019 年 11 月新增) 34.74.10.72/29 (新增於 2022 年 2 月) 34.136.2.136/29 (新增於 2022 年 2 月) 34.136.50.136/29 (於 2022 年 2 月新增) 34.145.234.144/29 (新增於 2022 年 2 月) 35.192.160.56/29 35.196.166.80/29 35.196.169.240/29 35.203.128.0/28 35.234.176.160/28 35.243.2.0/27 (於 2019 年 7 月新增) 35.245.243.240/29 (2022 年 2 月新增) 199.192.115.0/30 199.192.115.8/30 199.192.115.16/29 |
不再使用裝置 IP 封鎖 |
74.125.122.32/29 (已於 2022 年 2 月移除) 216.239.44.24/29 (已於 2022 年 2 月移除) |