Firebase Test Lab — bu nima, qurilmalarda test turlari va avtomatlashtirish

Muallif: IT Sectr Nashr etilgan: 2026-04-29 O'qish vaqti: 9 daq

Firebase Test Lab — Google ma'lumot markazlarida joylashgan real qurilmalarda mobil ilovalarni avtomatlashtirilgan sinovdan o'tkazish uchun Google bulut xizmatidir. Test Lab Android va iOS ning turli versiyalari bilan yuzlab qurilma konfiguratsiyalarida instrumental testlar, ekran tasviri testlari va robot testlarini ishga tushirish imkonini beradi, o'zingizning qurilma fermangizga ega bo'lish talab qilinmaydi. Firebase Documentation, 2026 ma'lumotlariga ko'ra, Firebase robot testi avtomatik ravishda ilovaning barcha ekranlaridan o'tadi, hech qanday test kodi satrini yozmasdan crash, ANR va UI muammolarini aniqlaydi. Xizmat CI/CD tizimlari bilan integratsiyani qo'llab-quvvatlaydi va video va jurnallar bilan batafsil hisobotlarni taqdim etadi.

Asosiy ma'lumotlar

  • Firebase Test Lab — faqat foydalanilgan vaqt uchun to'lov bilan Google ma'lumot markazlarida real qurilmalarda mobil ilovalarni sinash uchun bulut xizmati.
  • Robot testlari — ilovani avtomatik tadqiq qilish: Firebase Crawler barcha ekranlardan o'tadi, tugmalarni bosadi va formalarni to'ldiradi, kod yozmasdan xatolarni qayd etadi.
  • Instrumental testlar — Espresso, XCTest va UI Automator testlarini real qurilmalarda turli konfiguratsiyalarda parallel bajarish bilan ishga tushirish.
  • Qurilma matritsasi — testlar bir vaqtning o'zida turli OS versiyalari, ekran yo'nalishlari va tillari bilan tanlangan qurilmalar to'plamida bajariladi.
  • Hisobotlar — sinovdan so'ng jurnallar, ekran tasvirlari, test videolari va topilgan xatolar bilan ishlash xulosasi mavjud.

Firebase Test Lab nima

Firebase Test Lab — Google'ning global ma'lumot markazlarida joylashgan fizik qurilmalarda mobil ilovalarni avtomatlashtirilgan sinovdan o'tkazish uchun bulut infratuzilmasi. Mahalliy mashinadagi emulyatorlardan farqli o'laroq, Test Lab real Android qurilmalari va iOS qurilmalarida turli operatsion tizim versiyalari, ekran o'lchamlari, RAM hajmi va API darajalari bilan testlarni ishga tushiradi. Xizmat avtomatik ravishda test natijalarini qayta ishlaydi, bajarish videosi, qadam ekran tasvirlari va batafsil jurnallarni taqdim etadi.

Bulutli sinovning afzalliklari

O'zingizning qurilma fermangizga ega bo'lish jismoniy qurilmalarni sotib olish va saqlash uchun katta kapital xarajatlarni talab qiladi. Firebase Test Lab Spark rejasida bepul limit bilan haqiqiy foydalanish uchun to'lov (pay-per-use) asosida minglab qurilmalarga kirishni ta'minlaydi. Test Lab qurilmalar parkini avtomatik ravishda eng so'nggi modellarga, jumladan eng yangi flagman Google Pixel, Samsung Galaxy, Xiaomi va iPhone'larga yangilaydi. Testlar bir nechta qurilmalarda parallel bajariladi, bu esa ilovani tekshirishning umumiy vaqtini qisqartiradi.

Qo'llab-quvvatlanadigan platformalar

Android uchun Test Lab API darajasi 21 dan eng so'nggi barqaror Android versiyasigacha bo'lgan qurilmalarda testni qo'llab-quvvatlaydi. iOS qo'llab-quvvatlashi iOS 15 dan eng so'nggi barqaror versiyagacha real iPhone va iPad qurilmalarini o'z ichiga oladi. iOS uchun robot testi va XCTest mavjud. Har bir test jismoniy qurilmalarda yoki emulyatorlarda bajarilishi mumkin — maksimal aniq natijalar olish uchun Google jismoniy qurilmalardan foydalanishni tavsiya qiladi, chunki ular sensorlar, kamera va tarmoq interfeyslari bilan bog'liq muammolarni aniqlaydi.

Firebase Test Lab'da test turlari

Firebase Test Lab bir nechta test turlarini qo'llab-quvvatlaydi, ularning har biri ishlab chiqish siklida o'z vazifasini hal qiladi: barqarorlikni tez tekshirish uchun robot testlari, funksional tekshirish uchun instrumental testlar va vizual regressiyalarni aniqlash uchun ekran tasviri testlari. Test turini tanlash ishlab chiqish bosqichiga va aniq ishga tushirish maqsadlariga bog'liq.

Robot testlari (Robo tests)

Robot testlari Firebase Test Lab'ning noyob imkoniyati bo'lib, test kodi yozishni talab qilmaydi. Firebase Crawler avtomatik ravishda ilovani tadqiq qiladi: barcha interaktiv UI elementlarini topadi, ularni bosadi, formalarni test ma'lumotlari bilan to'ldiradi, ekranlar o'rtasida o'tadi va har qanday nosozlikni (crash, ANR, istisnolar) qayd etadi. Robot testlari hech qanday test kodi satrisiz kritik xatolarning 80% gacha aniqlaydi, bu ularni ishlab chiqishning dastlabki bosqichlarida ilovaning asosiy barqarorligini baholash uchun ideal vositaga aylantiradi.

Instrumental testlar (Instrumentation tests)

Instrumental testlar — dasturchi tomonidan Espresso (Android) yoki XCTest (iOS) freymvorklaridan foydalanib yozilgan testlardir. Test Lab testlar bilan APK ni maqsadli qurilmada ishga tushiradi va bajarish natijalarini to'playdi. Testlar oddiy (elementlarni ko'rsatishni tekshirish) yoki murakkab (end-to-end stsenariylar: avtorizatsiya, savatga qo'shish, buyurtmani rasmiylashtirish) bo'lishi mumkin. Firebase Test Lab testlarni bir-biridan izolyatsiya qilish uchun Android Test Orchestrator'ni qo'llab-quvvatlaydi, bu esa bitta muvaffaqiyatsiz testning qolganlariga ta'sirini oldini oladi.

Ekran tasviri testlari (Game loop va ekran tasvirlari)

Ekran tasviri testlari ilovada vizual regressiyalarni aniqlash uchun ishlatiladi. Game loop — ilovaga intent orqali stsenariylar ro'yxatini uzatuvchi maxsus test turi bo'lib, ilova ushbu stsenariylarni bajarib, asosiy ekranlarning tasvirlarini olishi kerak. Test Lab matritsaning barcha qurilmalaridan ekran tasvirlarini to'playdi va farqlarni aniqlash uchun ularni etalonlar bilan solishtirish imkonini beradi. Ushbu test turi turli GPU'larda renderlashni tekshirish uchun o'yin ilovalarida ayniqsa mashhur.

Test turiKodNimani tekshiradiQachon ishlatish
Robot testiTalab qilinmaydiCrash, ANR, istisnolarBarqarorlikni tezkor tekshirish
InstrumentalEspresso / XCTestStsenariylar funksionalligiRegressiya testi
Ekran tasviriGame loopVizual regressiyalarTurli qurilmalarda UI tekshirish

Qurilma matritsasi va konfiguratsiyalari

Test matritsasi Firebase Test Lab'da tanlangan test bajariladigan qurilma konfiguratsiyalari to'plamidir. Har bir konfiguratsiya qurilma modeli, OS versiyasi, ekran yo'nalishi (portret/landshaft) va mintaqaviy sozlamalarni (lokal, til) o'z ichiga oladi. Test barcha tanlangan konfiguratsiyalarda parallel ravishda ishga tushiriladi, bu esa har bir qurilmada ketma-ket ishga tushirish bilan solishtirganda umumiy bajarish vaqtini sezilarli darajada kamaytiradi.

Matritsa uchun qurilmalarni tanlash

Google turli xarakteristikalarga ega qurilmalarni matritsaga kiritishni tavsiya qiladi: flagman model (Google Pixel, Samsung Galaxy S), byudjet qurilmasi (Moto G, Xiaomi Redmi), ilova qo'llab-quvvatlaydigan minimal API versiyasiga ega qurilma. Optimal matritsa ilova qo'llab-quvvatlaydigan barcha OS versiyalarini qamrab oluvchi 5–10 konfiguratsiyani o'z ichiga oladi. iOS uchun turli avlodlardagi iPhone va iPad (masalan, iPhone SE, iPhone 14, iPad Air) turli iOS versiyalari bilan tanlanadi.

Testlarni guruhlash va parallellik

Test Lab avtomatik ravishda testlarni tanlangan qurilmalarga taqsimlaydi, har bir testni har bir konfiguratsiyada bajaradi. Bajarish vaqti butun matritsa uchun eng sekin qurilmadagi eng sekin testning bajarish vaqtiga teng — qolganlarning barchasi parallel bajariladi. Agar bitta test barcha qurilmalarda muvaffaqiyatsiz bo'lsa, Test Lab resurslarni tejash uchun uni qolgan konfiguratsiyalarda to'xtatadi. Natijalar test va qurilma bo'yicha guruhlanadi, bu esa xatoning ma'lum bir konfiguratsiya uchun xos ekanligini tez aniqlash imkonini beradi.

Robot testi: avtomatik tadqiqot

Robot testi — hech qanday test yozmasdan ilovani avtomatik tadqiq qilish imkonini beruvchi Firebase Test Lab'ning flagman imkoniyatidir. Firebase Crawler (robot) ilovaning UI iyerarxiyasini tahlil qiladi, barcha interaktiv elementlarni (tugmalar, matn maydonlari, ro'yxatlar, menyu) topadi va haqiqiy foydalanuvchi xatti-harakatini simulyatsiya qilib, ular bilan o'zaro aloqaga kiradi. Robot testi ayniqsa ishlab chiqishning dastlabki bosqichlarida, testlar hali yozilmaganida yoki legacy kodni tekshirish uchun samaralidir.

Robot testini sozlash

Robot testini ishga tushirish uchun Firebase Console'da APK yoki IPA yuklash va Robo test variantini tanlash kifoya. Robot avtorizatsiya ortida yashirin ekranlarga kirish uchun oldindan sozlangan hisob ma'lumotlari (login/parol) orqali ilovaga avtomatik kirishi mumkin. Shuningdek, robot qadamlari sonini cheklash uchun tadqiqot chuqurligini (max depth) belgilash yoki robot ustuvor ravishda bosishi kerak bo'lgan aniq elementlarni ko'rsatish mumkin.

xml
<!-- res/xml/robo_directives.xml -->
<!-- Robot login va parol maydonlarini to'ldiradi -->
<?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>

Robot testlarining cheklovlari

Robot testlari murakkab stsenariylar uchun qo'lda test qilish va yozilgan instrumental testlarni almashtirmaydi. Robot biznes mantiqni tekshira olmaydi: u barcha elementlarni ketma-ket bosadi, ammo natija to'g'ri yoki yo'qligini bilmaydi. Shuningdek, robot standart ViewGroup'dan meros olmaydigan maxsus ko'rinishlar bilan o'zaro aloqaga kira olmaydi va WebView'ni qayta ishlamaydi. Bunday hollarda instrumental testlar yoki Game loop dan foydalanish kerak.

CI/CD va Gradle bilan integratsiya

Firebase Test Lab'ning CI/CD tizimlari bilan integratsiyasi har bir repozitoriyaga push qilinganda avtomatik test ishga tushirish imkonini beradi. Test Lab Android uchun Gradle vazifalarini va ikkala platforma uchun Fastlane'ni qo'llab-quvvatlaydi. CI/CD quvur liniyasini sozlash ilovani yig'ish, APK/IPA ni Google Cloud Storage'ga yuklash, Firebase CLI orqali testlarni ishga tushirish va yig'ish holatini ko'rsatish uchun hisobotlarni CI tizimiga qaytarishni o'z ichiga oladi.

Gradle orqali sozlash (Android)

Google yuklash va test ishga tushirishni avtomatlashtiradigan Gradle uchun gcloud-test-lab plaginini taqdim etadi. assembleAndroidTest vazifasi testlar bilan APK yig'adi, gcloud vazifalari esa uni Test Lab'ga yuklaydi va matritsani ishga tushiradi. Test natijalari Gradle'ga pass/fail sifatida qaytariladi, bu esa Test Lab'ni Gradle'ni qo'llab-quvvatlaydigan istalgan CI quvur liniyasiga integratsiya qilish imkonini beradi. Avtorizatsiya uchun Test Lab'ga huquqlari bo'lgan Firebase xizmat hisobi ishlatiladi.

groovy
// 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"
    }
}

Fastlane orqali sozlash

Fastlane iOS va Android testlari bilan integratsiya uchun firebase_test_lab plaginini taqdim etadi. Fastlane lane yig'ishni bajaradi, testlarni ishga tushiradi va natijalarni qayta ishlaydi. iOS XCTest Test Lab uchun test maqsadini yig'ishda avtomatik yaratiladigan xctestrun fayli talab qilinadi. Fastlane shuningdek, har bir ishga tushirishdan so'ng jamoani test holati haqida xabardor qilish uchun test natijalarini Slack yoki boshqa messenjerlarga yuklashi mumkin.

Test natijalarini tahlil qilish

Testlar tugagandan so'ng Firebase Test Lab Firebase Console va gcloud CLI orqali mavjud bo'lgan keng qamrovli hisobotni taqdim etadi. Hisobot qisqa xulosa (o'tgan, muvaffaqiyatsiz va o'tkazib yuborilgan testlar soni), har bir test haqida har bir qurilmada batafsil ma'lumot, bajarish videosi, asosiy qadamlarning ekran tasvirlari va qurilma jurnallarini (Android uchun logcat, iOS uchun system log) o'z ichiga oladi. Muvaffaqiyatsiz testlar uchun xatoning aniq joyini ko'rsatadigan stack trace mavjud.

Robot testi natijalarini talqin qilish

Robot testi uchun hisobot instrumental testdan farq qiladi: test holatlari bo'yicha pass/fail o'rniga hisobot tadqiqot statistikasini ko'rsatadi. Asosiy ko'rsatkichlar — topilgan va tashrif buyurilgan ekranlar soni, robot o'zaro aloqalari soni (bosishlar, surishlar, matn kiritish), aniqlangan crash va ANR'lar va ilova bo'ylab o'tilgan yo'l. Robotning bajarish videosi qaysi ekranlar sinovdan o'tganini va qaysilari qamrab olinmaganini vizual baholash imkonini beradi.

Natijalarni eksport qilish

Test natijalari Google Cloud Storage'da loyihaga bog'langan bucket'da saqlanadi. Ma'lumotlar eksport va tashqi analitik tizimlar bilan integratsiya uchun mavjud. Uzoq muddatli saqlash va ishga tushirishlar o'rtasida natijalarni solishtirish uchun BigQuery eksportini sozlash yoki natijalarni dasturiy olish uchun Firebase Test Lab API dan foydalanish tavsiya etiladi. Google har bir test ishga tushirish uchun natijalarning to'liq to'plami bilan ZIP arxivini yuklab olish imkoniyatini beradi.

Ko'p beriladigan savollar

Firebase Test Lab qancha turadi?

Spark rejasi kuniga 10 Robo testi va oyiga 5 soat instrumental testni bepul o'z ichiga oladi. Blaze rejasi vaqt bo'yicha tariflanadi: Robo testlari uchun qurilma-soati ~1 USD va instrumental testlar uchun ~5 USD. Aniq narx mintaqa va qurilma turiga bog'liq.

Test Lab'da jismoniy qurilmalar emulyatorlardan nima bilan farq qiladi?

Jismoniy qurilmalar sensorlar, kamera, GPS, Bluetooth va real ishlash bilan bog'liq muammolarni o'z ichiga olgan holda aniqroq natijalar beradi. Emulyatorlar tezroq ishga tushadi va arzonroq, ammo apparat xususiyatlari bilan bog'liq muammolarni aniqlamaydi. Google chiqarishdan oldingi test uchun jismoniy qurilmalarni tavsiya qiladi.

Robot testi uchun avtorizatsiyani qanday sozlash mumkin?

Kirish maydonlari (login, parol) va bosish tugmalari bilan robo_directives.xml XML faylini yarating. Testni Firebase Console yoki CLI orqali ishga tushirishda faylni APK bilan birga yuklang. Robot tadqiqotni boshlashdan oldin belgilangan harakatlarni bajaradi.

Firebase Test Lab'da iOS da testlarni ishga tushirish mumkinmi?

Ha, Firebase Test Lab 2024 yildan boshlab iOS ni qo'llab-quvvatlaydi. Haqiqiy iPhone va iPad qurilmalarida Robo testlari (avtomatik tadqiqot) va XCTest (instrumental testlar) mavjud. Yuklash uchun test maqsadi bilan IPA fayli talab qilinadi.

Test Lab'ni GitHub Actions bilan qanday integratsiya qilish mumkin?

GitHub Actions'da Firebase CLI dan foydalaning: Service Account JSON orqali autentifikatsiyani sozlang, gcloud SDK o'rnating, APK va konfiguratsiyalarni ko'rsatib firebase test android run buyrug'ini bajaring. Test natijalari Firebase Console yoki gcloud CLI orqali mavjud.

Xulosa

  • Firebase Test Lab — haqiqiy foydalanish uchun to'lov bilan real qurilmalarda mobil ilovalarni sinash uchun Google bulut xizmati.
  • Uch test turi — robot testlari (kodsiz, avtomatik tadqiqot), instrumental (Espresso, XCTest) va ekran tasviri testlari (Game loop) turli tekshirish vazifalari uchun.
  • Qurilma matritsasi konfiguratsiyalar to'plamida (model + OS versiyasi + yo'nalish) testlarni parallel ishga tushirish imkonini beradi, umumiy tekshirish vaqtini qisqartiradi.
  • Robot testlari (Firebase Crawler) ilovani avtomatik tadqiq qiladi, hech qanday test kodi satrisiz kritik xatolarning 80% gacha aniqlaydi.
  • CI/CD integratsiyasi — Test Lab har bir repozitoriyaga push qilinganda avtomatik test ishga tushirish uchun Gradle, Fastlane va Firebase CLI ni qo'llab-quvvatlaydi.
  • Batafsil hisobotlar har bir muvaffaqiyatsiz test uchun har bir konfiguratsiyada bajarish videosi, ekran tasvirlari, qurilma jurnallari va stack trace ni o'z ichiga oladi.
  • Bepul limit — Spark rejasida kuniga 10 Robo testi, kundalik ishlab chiqish siklida ilovaning asosiy barqarorligini tekshirish uchun etarli.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing