A Firebase Test Lab egy Google-felhőszolgáltatás mobilalkalmazások automatizált tesztelésére valós eszközökön, amelyek a Google adatközpontjaiban találhatók. A Test Lab lehetővé teszi instrumentális tesztek, képernyőfelvétel-tesztek és robot tesztek futtatását eszközök százain, Android és iOS különböző verzióival, anélkül hogy saját eszközparkot kellene fenntartani. A Firebase Documentation, 2026 szerint a Firebase robot tesztelés automatikusan végigmegy az alkalmazás összes képernyőjén, és crash-eket, ANR-eket és UI-problémákat tár fel anélkül, hogy egyetlen sor tesztkódot kellene írni. A szolgáltatás támogatja a CI/CD rendszerekkel való integrációt, és részletes jelentéseket biztosít videókkal és naplókkal.
Főbb pontok
Firebase Test Lab a Google felhőinfrastruktúrája mobilalkalmazások automatizált tesztelésére fizikai eszközökön, amelyek a Google globális adatközpontjaiban találhatók. Ellentétben a helyi gépen futó emulátorokkal, a Test Lab valós Android-eszközökön és iOS-eszközökön futtat teszteket különböző operációs rendszer verziókkal, képernyőfelbontásokkal, RAM-mennyiségekkel és API-szintekkel. A szolgáltatás automatikusan feldolgozza a teszteredményeket, videót biztosít a végrehajtásról, képernyőképeket a lépésekről és részletes naplókat.
Saját eszközpark fenntartása jelentős tőkebefektetést igényel a fizikai eszközök beszerzéséhez és karbantartásához. Firebase Test Lab hozzáférést biztosít több ezer eszközhöz használatarányos fizetési (pay-per-use) alapon, ingyenes korláttal a Spark csomagon. A Test Lab automatikusan frissíti az eszközparkot a legújabb modellekre, beleértve a legújabb zászlóshajó Google Pixel, Samsung Galaxy, Xiaomi és iPhone készülékeket. A tesztek párhuzamosan futnak több eszközön, ami csökkenti az alkalmazás ellenőrzésének teljes idejét.
Android esetén a Test Lab támogatja a tesztelést 21-es API-szinttől a legújabb stabil Android-verzióig terjedő eszközökön. iOS-támogatás magában foglalja a valós iPhone és iPad eszközöket iOS 15-től a legújabb stabil verzióig. iOS-hez robot tesztelés és XCTest érhető el. Minden teszt futtatható fizikai eszközökön vagy emulátorokon — a legpontosabb eredmények érdekében a Google fizikai eszközök használatát ajánlja, mivel ezek feltárják az érzékelőkkel, kamerával és hálózati interfészekkel kapcsolatos problémákat.
Firebase Test Lab több tesztelési típust támogat, amelyek mindegyike a saját feladatát látja el a fejlesztési ciklusban: robot tesztek a stabilitás gyors ellenőrzéséhez, instrumentális tesztek a funkcionális ellenőrzéshez és képernyőkép-tesztek a vizuális regressziók észleléséhez. A teszt típusának kiválasztása a fejlesztés fázisától és az adott futtatás céljaitól függ.
A robot tesztek a Firebase Test Lab egyedülálló képessége, amely nem igényel tesztkód írását. Firebase Crawler automatikusan feltérképezi az alkalmazást: megtalálja az összes interaktív UI-elemet, rájuk kattint, űrlapokat tölt ki tesztadatokkal, képernyők között navigál, és rögzíti az esetleges meghibásodásokat (crash, ANR, kivételek). A robot tesztek a kritikus hibák akár 80%-át is észlelik egyetlen sor tesztkód nélkül, ami ideális eszközzé teszi őket az alkalmazás alapstabilitásának felmérésére a fejlesztés korai szakaszaiban.
Az instrumentális tesztek a fejlesztő által írt tesztek az Espresso (Android) vagy XCTest (iOS) keretrendszerek használatával. A Test Lab futtatja a tesztelési APK-t a cél-eszközön, és összegyűjti a végrehajtás eredményeit. A tesztek lehetnek egyszerűek (elemek megjelenítésének ellenőrzése) vagy összetettek (end-to-end forgatókönyvek: bejelentkezés, kosárba helyezés, rendelés leadása). A Firebase Test Lab támogatja az Android Test Orchestrator-t a tesztek egymástól való elkülönítésére, ami megakadályozza, hogy egy sikertelen teszt befolyásolja a többit.
A képernyőkép-tesztek vizuális regressziók észlelésére szolgálnak az alkalmazásban. Game loop egy speciális teszt típus, amely intent-en keresztül forgatókönyvek listáját küldi az alkalmazásnak, amelynek végre kell hajtania ezeket a forgatókönyveket, és képernyőképeket kell készítenie a kulcsfontosságú képernyőkről. A Test Lab összegyűjti a képernyőképeket a mátrix összes eszközéről, és lehetővé teszi azok összehasonlítását referenciaképekkel az eltérések észleléséhez. Ez a teszttípus különösen népszerű játékalkalmazásokban a renderelés ellenőrzésére különböző GPU-kon.
| Teszt típusa | Kód | Mit ellenőriz | Mikor használjuk |
|---|---|---|---|
| Robot teszt | Nem szükséges | Crash, ANR, kivételek | Gyors stabilitásellenőrzés |
| Instrumentális | Espresso / XCTest | Forgatókönyvek funkcionalitása | Regressziós tesztelés |
| Képernyőkép | Game loop | Vizuális regressziók | UI ellenőrzése különböző eszközökön |
Tesztmátrix a Firebase Test Lab-ban egy eszközkonfiguráció-készlet, amelyen a kiválasztott teszt fut. Minden konfiguráció tartalmazza az eszköz modelljét, az OS verzióját, a képernyő tájolását (álló/fekvő) és a regionális beállításokat (nyelv, terület). A teszt párhuzamosan fut az összes kiválasztott konfiguráción, ami jelentősen csökkenti a teljes végrehajtási időt az egyes eszközökön történő szekvenciális futtatáshoz képest.
A Google azt ajánlja, hogy a mátrixba különböző jellemzőkkel rendelkező eszközöket vegyünk fel: zászlóshajó modell (Google Pixel, Samsung Galaxy S), költségvetési eszköz (Moto G, Xiaomi Redmi), az alkalmazás által támogatott minimális API-verzióval rendelkező eszköz. Az optimális mátrix 5–10 konfigurációt tartalmaz, amelyek lefedik az alkalmazás által támogatott összes OS-verziót. iOS esetén különböző generációjú iPhone és iPad készülékek (pl. iPhone SE, iPhone 14, iPad Air) kerülnek kiválasztásra különböző iOS-verziókkal.
A Test Lab automatikusan elosztja a teszteket a kiválasztott eszközökön, minden tesztet minden konfiguráción végrehajtva. A teljes mátrix végrehajtási ideje megegyezik a leglassabb teszt végrehajtási idejével a leglassabb eszközön — az összes többi párhuzamosan fut. Ha egy teszt minden eszközön meghiúsul, a Test Lab leállítja a végrehajtását a fennmaradó konfigurációkon az erőforrások megtakarítása érdekében. Az eredmények teszt és eszköz szerint csoportosíthatók, ami lehetővé teszi annak gyors meghatározását, hogy a hiba egy adott konfigurációra jellemző-e.
Robot tesztelés a Firebase Test Lab zászlóshajó képessége, amely lehetővé teszi az alkalmazás automatikus feltérképezését egyetlen teszt megírása nélkül. A Firebase Crawler (robot) elemzi az alkalmazás UI-hierarchiáját, megtalálja az összes interaktív elemet (gombok, szövegmezők, listák, menük), és interakcióba lép velük, szimulálva egy valós felhasználó viselkedését. A robot tesztelés különösen hatékony a fejlesztés korai szakaszaiban, amikor a tesztek még nincsenek megírva, vagy örökölt kód ellenőrzésére.
Robot teszt futtatásához elegendő feltölteni az APK-t vagy IPA-t a Firebase Console-ba, és kiválasztani a Robo test opciót. A robot automatikusan bejelentkezhet az alkalmazásba előre konfigurált hitelesítő adatokkal (felhasználónév/jelszó) az engedélyezés mögött rejtőző képernyők eléréséhez. Beállítható a feltérképezés mélysége (max depth) a robot lépéseinek korlátozására, vagy megadhatók konkrét elemek, amelyekre a robotnak prioritással kell kattintania.
<!-- res/xml/robo_directives.xml -->
<!-- A robot kitölti a bejelentkezési és jelszó mezőket -->
<?xml version="1.0" encoding="utf-8"?>
<robo-directives
xmlns:android="http://schemas.android.com/apk/res/android">
<directive
android:resourceName="@id/et_email"
android:inputValue="test@example.com" />
<directive
android:resourceName="@id/et_password"
android:inputValue="password123" />
<directive
android:resourceName="@id/btn_login"
android:clickAction="CLICK" />
</robo-directives>
A robot tesztek nem helyettesítik a kézi tesztelést és a megírt instrumentális teszteket összetett forgatókönyvek esetén. A robot nem tudja ellenőrizni az üzleti logikát: sorban rákattint az összes elemre, de nem tudja, hogy az eredmény helyes-e. A robot nem tud interakcióba lépni olyan egyedi nézetekkel, amelyek nem a szabványos ViewGroup-ból származnak, és nem dolgozza fel a WebView-t. Ezekben az esetekben instrumentális teszteket vagy Game loop-ot kell használni.
Firebase Test Lab integrációja CI/CD rendszerekkel lehetővé teszi a tesztek automatikus futtatását minden egyes push-nál a tárolóba. A Test Lab támogatja a Gradle feladatokat Androidhoz és a Fastlane-t mindkét platformhoz. A CI/CD csővezeték beállítása magában foglalja az alkalmazás összeállítását, az APK/IPA feltöltését a Google Cloud Storage-ba, a tesztek futtatását a Firebase CLI-n keresztül, és a jelentések visszafogadását a CI-rendszerbe az építési állapot megjelenítéséhez.
A Google biztosítja a gcloud-test-lab bővítményt a Gradle-hez, amely automatizálja a tesztek feltöltését és futtatását. Az assembleAndroidTest feladat összeállítja az APK-t a tesztekkel, a gcloud feladatok pedig feltöltik a Test Lab-ba és elindítják a mátrixot. A teszteredmények pass/fail formában kerülnek vissza a Gradle-be, ami lehetővé teszi a Test Lab integrációját bármely Gradle-t támogató CI-csővezetékbe. Az engedélyezéshez egy Firebase szolgáltatásfiók használatos Test Lab jogosultságokkal.
// build.gradle (module: app)
task runTestLab() {
exec {
commandLine "gcloud", "firebase", "test", "android", "run",
"--type", "robo",
"--app", "build/outputs/apk/debug/app-debug.apk",
"--device", "model=Pixel7,version=33",
"--device", "model=GalaxyS23,version=34",
"--device", "model=RedmiNote12,version=31",
"--timeout", "15m",
"--results-dir", "firebase/test-lab/robo"
}
}
A Fastlane biztosítja a firebase_test_lab bővítményt az iOS és Android tesztekkel való integrációhoz. Fastlane lane végrehajtja az összeállítást, elindítja a teszteket, és feldolgozza az eredményeket. Az iOS XCTest-hez a Test Lab xctestrun fájlt igényel, amely automatikusan létrejön a tesztcél összeállításakor. A Fastlane a teszteredményeket feltöltheti Slack-be vagy más üzenetküldőkbe is, hogy értesítse a csapatot a tesztelés állapotáról minden egyes futtatás után.
A tesztek befejezése után a Firebase Test Lab átfogó jelentést biztosít, amely elérhető a Firebase Console-ban és a gcloud CLI-n keresztül. A jelentés tartalmaz egy gyors összefoglalót (sikeres, sikertelen és kihagyott tesztek száma), részletes információkat minden teszt eszközönként, videót a végrehajtásról, képernyőképeket a kulcsfontosságú lépésekről és az eszköz naplóit (logcat Androidhoz, system log iOS-hez). A sikertelen tesztekhez stack trace áll rendelkezésre a hiba pontos helyének megjelölésével.
Robot teszt esetén a jelentés eltér az instrumentálistól: tesztesetenkénti pass/fail helyett a jelentés a feltérképezés statisztikáját mutatja. Kulcsfontosságú metrikák — a talált és meglátogatott képernyők száma, a robot interakcióinak száma (kattintások, csúsztatások, szövegbevitel), észlelt crash-ek és ANR-ek, valamint az alkalmazáson által bejárt útvonal. A robot végrehajtásának videója lehetővé teszi annak vizuális értékelését, hogy mely képernyők kerültek tesztelésre, és melyek maradtak lefedetlenül.
A teszteredmények a Google Cloud Storage-ban tárolódnak a projekthez kapcsolt bucket-ben. Az adatok elérhetők exportálásra és külső analitikai rendszerekkel való integrációra. Hosszú távú tároláshoz és az eredmények futtatások közötti összehasonlításához ajánlott a BigQuery export beállítása vagy a Firebase Test Lab API használata az eredmények programozott lekéréséhez. A Google lehetővé teszi egy ZIP-archívum letöltését az eredmények teljes készletével minden egyes tesztfuttatáshoz.
Gyakran ismételt kérdések
A Spark csomag napi 10 Robo tesztet és havi 5 óra instrumentális tesztet tartalmaz ingyenesen. A Blaze csomag idő alapján díjazott: ~1 USD eszközóránként a Robo tesztekért és ~5 USD az instrumentálisokért. A pontos ár a régiótól és az eszköz típusától függ.
A fizikai eszközök pontosabb eredményeket adnak, beleértve az érzékelőkkel, kamerával, GPS-szel, Bluetooth-tal és a valós teljesítménnyel kapcsolatos problémákat. Az emulátorok gyorsabban indulnak és olcsóbbak, de nem tárják fel a hardverjellemzőkkel kapcsolatos problémákat. A Google fizikai eszközöket ajánl a megjelenés előtti teszteléshez.
Hozzon létre egy robo_directives.xml XML-fájlt beviteli mezőkkel (felhasználónév, jelszó) és kattintandó gombokkal. Töltse fel a fájlt az APK-val együtt a teszt Firebase Console-on vagy CLI-n keresztüli futtatásakor. A robot a megadott műveleteket hajtja végre a feltérképezés megkezdése előtt.
Igen, a Firebase Test Lab 2024 óta támogatja az iOS-t. Robo tesztek (automatikus feltérképezés) és XCTest (instrumentális tesztek) érhetők el valós iPhone és iPad eszközökön. A feltöltéshez IPA-fájl szükséges tesztcélal.
Használja a Firebase CLI-t a GitHub Actions-ban: állítsa be a hitelesítést Service Account JSON segítségével, telepítse a gcloud SDK-t, futtassa a firebase test android run parancsot az APK és a konfigurációk megadásával. A teszteredmények a Firebase Console-on vagy a gcloud CLI-n keresztül érhetők el.
Összegzés
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is