Firebase Test Lab 完整指南 — Android QA 免費神器(Robo / Instrumentation / Game Loop)
Firebase Test Lab 完整指南。3 種測試類型、跨真機矩陣、Robo auto-explorer、CI 整合(gcloud + GitHub Actions)、vs BrowserStack 對比、iOS 限制、成本控制、常見坑。
💡 本文原刊於 qa.9niche.com,2026-08 併入 9niche.com 懶人包,內容照原文完整搬遷。
目錄
1. 前言
「我們 app 只在 Pixel 上測、Samsung Galaxy S 上就爆」 — 跨真機是 Android QA 永恆痛點。Firebase Test Lab(FTL)是 Google 維護的真機池、免費起跳、跑 100+ 設備矩陣。這篇給你完整 setup + workflow。
2. 為什麼 FTL 是 Android 首選
3. 3 種測試類型
1. Instrumentation Test(Espresso)
@RunWith(AndroidJUnit4::class)
class LoginTest {
@get:Rule
val rule = ActivityScenarioRule(LoginActivity::class.java)
@Test
fun loginWithValidCredentials() {
onView(withId(R.id.email)).perform(typeText("[email protected]"))
onView(withId(R.id.password)).perform(typeText("Test@123"))
onView(withId(R.id.loginBtn)).perform(click())
onView(withId(R.id.welcomeText)).check(matches(isDisplayed()))
}
}
Build APK + 上傳:
./gradlew assembleDebug assembleAndroidTest
gcloud firebase test android run \
--type instrumentation \
--app app/build/outputs/apk/debug/app-debug.apk \
--test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
--device model=Pixel7,version=33 \
--device model=SamsungGalaxyS22,version=33 \
--device model=motox4,version=27
2. Robo Test — 不寫 code 神器
gcloud firebase test android run \
--type robo \
--app app/build/outputs/apk/debug/app-debug.apk \
--device model=Pixel7,version=33 \
--timeout 5m \
--robo-directives [email protected],loginPassword=Test@123
會發生什麼:
- FTL 安裝 APK
- AI 自動點擊 / 滑動 / 輸入、像猴子一樣探索
- 5 分鐘內試圖覆蓋每個 screen
- 抓 crash、ANR、UI freeze
- 產出影片 + 截圖 + activity graph
5 分鐘設定 = 一週手動測試覆蓋。
3. Game Loop Test
遊戲開發者用、app 跑「demo mode」、FTL 評估 FPS / crash。本文不深入。
4. 跨設備矩陣
列設備池
gcloud firebase test android models list
# 列出所有可用設備
Matrix run 範例
gcloud firebase test android run \
--type instrumentation \
--app app-debug.apk \
--test app-debug-androidTest.apk \
--device model=Pixel7,version=33,locale=en,orientation=portrait \
--device model=SamsungGalaxyS22,version=33,locale=zh_TW,orientation=portrait \
--device model=Pixel3,version=28,locale=ja,orientation=landscape \
--num-flaky-test-attempts 1
5. CI 整合 — GitHub Actions
name: Android E2E (Firebase Test Lab)
on:
pull_request:
push:
branches: [main]
jobs:
ftl-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Build APK + Test APK
run: |
./gradlew assembleDebug assembleAndroidTest
- name: Auth Google Cloud
uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Setup gcloud
uses: google-github-actions/setup-gcloud@v2
with:
project_id: my-firebase-project
- name: Run on Firebase Test Lab
run: |
gcloud firebase test android run \
--type instrumentation \
--app app/build/outputs/apk/debug/app-debug.apk \
--test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
--device model=Pixel7,version=33 \
--device model=SamsungGalaxyS22,version=33 \
--results-bucket my-test-results \
--timeout 15m \
--no-record-video
Service Account 設置:
- Google Cloud Console → IAM → Service Accounts
- 建 SA、grant
Firebase Test Lab Admin+Firebase Analytics Viewer - 下載 JSON key → 存 GitHub Secrets
GCP_SA_KEY
6. 結果分析
7. 跟 Crashlytics 串連
FTL 抓到 crash → 自動上傳 Crashlytics → 跟 production crash 同 dashboard 看。
// Initialize Crashlytics in test mode
class TestApp : Application() {
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
FirebaseCrashlytics.getInstance().setCustomKey("env", "ftl")
}
}
}
Production crash + FTL crash 都看得到趨勢。
8. 跟 Detox 整合
# 1. Local 跑 Detox
detox build -c android.emu.debug
# 2. 上傳到 FTL 跑跨設備
gcloud firebase test android run \
--type instrumentation \
--app android/app/build/outputs/apk/debug/app-debug.apk \
--test android/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
--device model=Pixel7,version=33 \
--device model=SamsungGalaxyS22,version=33
Local Detox 快 debug + FTL 跨真機驗證。
9. iOS 支援 — 警告
✗ iOS 設備少(< 20 個)
✗ 大多舊版(iOS 16-17)
✗ 沒 iPad Pro 最新版
✗ 只支援 XCUITest(不支援 Detox iOS)
iOS 為主 → BrowserStack。
10. 成本控制
| Plan | Virtual | Physical | 月費 |
|---|---|---|---|
| Spark (free) | 5 hr/day | 1 hr/day | $0 |
| Blaze (pay-as-you-go) | $1/hr | $5/hr | 按用量 |
Cost 計算
Matrix run: 5 設備 × 10 分鐘 = 50 device-minutes ≈ 0.83 hr
Daily cost: 0.83 × $5 = $4.15
每天跑 4 次 (PR + nightly):
$4.15 × 4 = $16.60/day
$500/month
省錢策略:
- 80% virtual + 20% physical
- 只在 main / release 跑 full matrix
- PR 只跑 Pixel + Samsung 兩個
- Robo Test 替代部分 Instrumentation
11. Robo Test 進階
Robo Directives — 引導測試
gcloud firebase test android run \
--type robo \
--app app-debug.apk \
--device model=Pixel7,version=33 \
--robo-directives \
"[email protected],loginPassword=Test@123,IGNORE_skipBtn=,CLICK_loginBtn="
[email protected]— text 欄位自動填IGNORE_skipBtn=— 跳過某按鈕CLICK_loginBtn=— 強制點某按鈕
Robo Script — 錄製手動操作
# 1. 錄製
gcloud firebase test android run --type robo \
--robo-script myscript.json
Android Studio 內可以「錄製」操作 → 存成 script → 上傳跑。
12. 反模式
13. 跟 BrowserStack / Sauce Labs 對比
| 維度 | Firebase Test Lab | BrowserStack | Sauce Labs |
|---|---|---|---|
| Android 設備 | 100+ 真機 | 100+ | 100+ |
| iOS 設備 | < 20、老 | 100+ 含最新 | 100+ |
| 起跳價 | 免費 5h/day | $39/month | 企業向 |
| Robo Test | ✓ 內建 | ✗ | ✗ |
| Crash 整合 | Crashlytics | Manual | Manual |
| CI 體驗 | gcloud CLI | REST API | API |
| Game testing | Game Loop | ✗ | ✗ |
| 真機 vs 雲端 | 真實設備 | 真實設備 | 真實設備 |
14. 給 Android QA 的 5 句
- Android 為主、FTL 是首選
- Robo Test 是 baseline 探索神器、必用
- 80% virtual + 20% physical 省錢
- CI 串 gcloud CLI、SA key 用 Secrets
- iOS 為主請另尋 BrowserStack
15. 最後
Firebase Test Lab 是 Android QA 最被低估的免費神器。Robo Test 一鍵跨 5 個設備、5 分鐘抓 crash、配合 Crashlytics + Crashlytics + Performance Monitoring 串成完整 Android quality 體系。從每天免費跑 5 hr 起步、半年後你會問「為什麼以前沒早點用」。
延伸:
相關連結
Mobile QA 完整入門。原生 / 跨平台 / hybrid 三種 app 差異、Appium vs Detox 取捨、跟 Web testing 不同的坑、雲端 device farm 選擇。
Cross-browser 測試完整策略。Browser matrix 怎麼決定、Playwright 跨瀏覽器、BrowserStack / Sauce Labs 比較、何時用真機、何時用 emulator、CI 整合。
從零配出 production-ready 的 Playwright CI。完整 yml、失敗截圖/trace 自動上傳、PR 自動留言報告、平行 sharding 加速。
相關懶人包
2026 QA 趨勢實戰:我看到的 5 個轉變(AI、Shift-Left、Observability)
從手動 QA 到 AI 輔助、從測試金字塔到測試獎盃。這篇分享我這 10+ 年看 QA 從「測完才知道」到「shift-left + AI」的真實觀察。
2026 QA 面試的 AI 題 — 12 題 + 答題框架(面試官想聽什麼)
2026 QA 面試新增一整類「你怎麼用 AI」的問題。這篇整理 12 個高頻 AI 面試題、每題附面試官真正想聽的點與答題框架,從「你用過哪些 AI 工具」到「AI 生的 test 怎麼信任」。
AI / LLM 功能 Spec Review — 幻覺 / 評估 / 成本 / 法遵 8 個必問
AI 功能 spec review 完整指南。LLM 不確定性處理、評估指標、Prompt versioning、成本控制、安全護欄、法遵(EU AI Act / GDPR)、Fallback、人工 review 流程。
一般聲明
本站提供之資訊僅供參考,不保證其完整性與正確性。使用者應自行判斷資訊之適用性。