Device Farm — egy felhőszolgáltatás, amely távoli hozzáférést biztosít több száz valódi mobileszközhöz alkalmazások automatikus és kézi teszteléséhez. A fejlesztők APK vagy IPA fájlokat töltenek fel, kiválasztják az eszközkonfigurációkat és párhuzamosan futtatják a teszteket anélkül, hogy fizikai eszközöket vásárolnának. A Perfecto, 2025 jelentése szerint a Device Farm-ot használó csapatok 73%-kal csökkentik a regressziós tesztelés idejét a helyi eszközfarmokhoz képest.
Főbb pontok
Device Farm — egy infrastrukturális megoldás mobilalkalmazások teszteléséhez, amely interneten keresztül biztosít távoli hozzáférést fizikai és virtuális eszközökhöz. Ellentétben a saját eszköz laboratórium megvásárlásával és karbantartásával, a fejlesztők időt bérelnek mások eszközein, és csak a tényleges használatért fizetnek.
A mobileszköz-piac több mint 24 000 egyedi Android okostelefon modellt foglal magában az OpenSignal, 2025 szerint. Az összes népszerű modell fizikai beszerzése teszteléshez lehetetlen — ez több millió dollár befektetést és a flotta folyamatos frissítését igényelné. A Device Farm megoldja ezt a problémát azáltal, hogy előfizetéssel hozzáférést biztosít aktuális eszközökhöz.
Az emulátorok és szimulátorok csak a tesztforgatókönyvek 60–70%-át fedik le. Valódi eszközök szükségesek az érzékelők, kamera, GPS, akkumulátorszint, gyenge hardveren nyújtott teljesítmény és bejövő hívások alatti viselkedés ellenőrzéséhez. A Device Farm ötvözi mindkét megközelítést: emulátorokat a gyors smoke-tesztekhez és fizikai eszközöket a teljes ellenőrzéshez.
A Device Farm alkalmas az első alkalmazásukat indító startupok, rendszeres kiadásokkal rendelkező érett termékcsapatok és enterprise projektek számára, amelyek tucatnyi alkalmazással rendelkeznek. A használat célszerűsége nő a célzott eszközök számának és a kiadások gyakoriságának növekedésével — minél több konfigurációt kell ellenőrizni, annál előnyösebb a felhőmodell.
A Device Farm-mal való tipikus munka öt szakaszból áll: a build feltöltése, eszközök kiválasztása, tesztek konfigurálása, futtatás, eredmények elemzése. Minden szakasz API-n keresztül automatizálható, ami lehetővé teszi a Device Farm beágyazását a CI/CD csővezetékbe kézi beavatkozás nélkül.
A fejlesztő feltölti az elkészített APK (Android), AAB vagy IPA (iOS) fájlt a szolgáltató felhőtárhelyére. Egyes szolgáltatások, mint a Firebase Test Lab, közvetlenül is elfogadják az Xcode vagy Android Studio projektet. A fájlméret korlátozott: az AWS Device Farm legfeljebb 200 MB-ot, a BrowserStack legfeljebb 500 MB-ot támogat.
Az eszközkatalógusból kiválasztásra kerülnek a célmodellek és OS-verziók. A modern Device Farm-ok támogatják a csoportosítást: „összes zászlóshajó 2024–2025” vagy „olcsó Android készülékek Android 13–14-gyel”. A párhuzamos végrehajtás lehetővé teszi egy teszt egyidejű futtatását 10–50 eszközön, a teljes időt percekre csökkentve.
A tesztek valódi eszközökön futnak a szolgáltató adatközpontjaiban. A fejlesztő valós időben követi nyomon a folyamatot a webkonzolon keresztül: naplók, képernyőképek, a teszt videófelvétele. A teszt sikertelensége esetén a Device Farm képernyőképet készít és összegyűjti a crash naplót a diagnosztikához.
// Device Farm konfiguráció példája a Jenkinsfile-ban
pipeline {
agent any
stages {
stage('Build') {
steps {
sh './gradlew assembleDebug'
}
}
stage('Device Farm Tests') {
steps {
sh '''aws device-farm schedule-run
--project-arn arn:aws:devicefarm:us-west-2:123:project:1
--app-arn arn:aws:devicefarm:us-west-2:123:app:1
--device-pool-arn arn:aws:devicefarm:us-west-2:123:pool:1
--test-arn arn:aws:devicefarm:us-west-2:123:test:1'''
}
}
}
}
A modern Device Farm nemcsak tesztek futtatását, hanem segédeszközöket is biztosít diagnosztikához, teljesítményfigyeléshez és más fejlesztői szolgáltatásokkal való integrációhoz. A funkciókészlet szolgáltatónként változik, de a mag közös marad.
Az összes fő keretrendszer támogatott: Espresso és UI Automator Androidhoz, XCTest és XCUITest iOS-hez, Appium és Calabash platformok közötti projektekhez. A Device Farm kódmódosítás nélkül futtatja a teszteket — elég megadni a teszt keretrendszert a konfigurációnál.
A fejlesztő távoli hozzáférést kap egy valódi eszközhöz a böngészőn keresztül: érintések, csúsztatások, képernyő elforgatása, gombnyomások — minden művelet valós időben kerül továbbításra. Az interaktív mód nélkülözhetetlen a ritka hibák reprodukálásához, amelyeket az automatikus tesztek nem fednek le. Az AWS Device Farm legfeljebb 60 perc kézi munkamenetet biztosít külön díj nélkül.
Minden futtatás után a Device Farm jelentést készít: a teszt videófelvétele, lépésről lépésre képernyőképek, eszköznaplók (logcat Androidhoz, syslog iOS-hez), teljesítményadatok (CPU, memória, hálózat) és a crash stack. Ezek az adatok segítenek a probléma lokalizálásában anélkül, hogy azt helyi eszközön kellene reprodukálni.
Az összes nagy Device Farm szolgáltató kínál bővítményeket Jenkins, GitLab CI, GitHub Actions és CircleCI számára. A Webhook értesítések tájékoztatják a csapatot a teszteredményekről Slack, Telegram vagy e-mail útján. A CI/CD integráció konfigurálása szokásos gyakorlat a folyamatos szállítást alkalmazó csapatok számára.
| Funkció | AWS Device Farm | BrowserStack | Firebase Test Lab |
|---|---|---|---|
| Fizikai eszközök | Igen | Igen | Igen |
| Emulátorok | Igen | Igen | Igen |
| Kézi tesztelés | Igen | Igen | Nem |
| Hibakeresés | Videó + naplók | Videó + naplók | Csak naplók |
| Ingyenes korlát | 1000 perc/hónap | 60 perc próbaidő | Tesztek a Firebase-ben — ingyenes |
A Device Farm piacot három fő kategória képviseli: általános célú felhőszolgáltatók (AWS), speciális tesztelési szolgáltatások (BrowserStack) és a platform ökoszisztémáján belüli eszközök (Firebase). A választás a technológiai veremtől és a csapat költségvetésétől függ.
Integrálva az Amazon Web Services ökoszisztémával. Azok a fejlesztők, akik már használják az AWS-t hostingra és CI/CD-re, egységes szerződést és zökkenőmentes integrációt kapnak a CodePipeline-lel és a CodeBuild-del. Az AWS Device Farm támogatja Android, iOS és webalkalmazások tesztelését fizikai eszközökön és emulátorokon.
A legnagyobb független szolgáltató több mint 3 000 valódi eszközből álló flottával. A BrowserStack kényelmes webes felületéről, az eszköz gyors biztosításáról (10–15 másodperc) és az Appium támogatásáról ismert összetett konfiguráció nélkül. A szolgáltatás automatikusan frissíti az eszközflottát egy héten belül az új modell megjelenése után.
Ingyenes szolgáltatás a Google-tól Android-alkalmazásokhoz, korlátozott iOS tesztelési lehetőséggel. A Firebase Test Lab különösen vonzó a startupok számára: az alapvető tesztelési forgatókönyvek előfizetés nélkül is elérhetők. A Firebase Console és Crashlytics integráció lehetővé teszi a teszthibák összekapcsolását a valós éles üzemi összeomlásokkal.
A piacon jelen van a Samsung Remote Test Lab (ingyenes hozzáférés Samsung eszközökhöz), a Kobiton (enterprise-orientált on-premise telepítéssel), a Perfecto (a Perforce által felvásárolva, pénzügyi szektorra fókuszálva) és a Sauce Labs (az egyik legrégebbi szolgáltatás, ma a Tricentis része).
Tekintsük át a Firebase Test Lab parancssorral való integrációját egy Android alkalmazáshoz. A Firebase Test Lab a gcloud CLI-n keresztül futtatja a teszteket, ami lehetővé teszi a futtatás beágyazását bármely CI csővezetékbe további bővítmények nélkül. A példa egy minimális smoke-teszt konfigurációt mutat be három eszközön.
# A gcloud CLI telepítése és hitelesítés
gcloud auth login
gcloud config set project my-android-app
# APK feltöltése a Firebase Test Labbe
gcloud firebase test android run \
--app app-debug.apk \
--test app-debug-test.apk \
--type instrumentation \
--device model=Pixel7,version=34 \
--device model=SamsungS23,version=33 \
--device model=OnePlus12,version=34 \
--timeout 30m \
--results-bucket gs://my-app-test-results
A parancs két fájlt tölt fel: magát a build-et és a teszt APK-t az Espresso instrumentációs tesztjeivel. A Firebase Test Lab automatikusan kiválasztja a legújabb elérhető OS-verziót minden modellhez, ha a version nincs kifejezetten megadva. Az eredmények a Google Cloud Storage-ban XML és HTML formátumban kerülnek mentésre a böngészőben való megtekintéshez.
Az automatikus futtatáshoz minden push-nál a GitHub Actions használatos. A munkafolyamat összeállítja az alkalmazást, elindítja a Firebase Test Lab-ot és visszaadja az ellenőrzés állapotát.
name: Android CI with Device Farm
on: [push]
jobs:
test-on-devices:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- run: ./gradlew assembleDebug assembleDebugAndroidTest
- uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- run: gcloud firebase test android run
--app app/build/outputs/apk/debug/app-debug.apk
--test app/build/outputs/apk/androidTest/debug/app-debug-test.apk
--device model=Pixel8,version=35
A Device Farm költsége több paraméterből tevődik össze: a párhuzamos munkamenetek száma, az eszköz típusa (fizikai vagy emulátor), a tesztelés időtartama és a kiegészítő funkciók. Fontos megérteni a költségszerkezetet a szolgáltató kiválasztása előtt, hogy elkerüljük a váratlan kiadásokat a méretezés során.
A legtöbb szolgáltató a tényleges eszközhasználati idő alapján számláz. A fizikai eszközök 2–5-ször drágábbak, mint az emulátorok. Az AWS Device Farm 1000 ingyenes percet kínál havonta új fiókok számára, a BrowserStack — 60 perc próbaidőt. Egy perc átlagos költsége fizikai Android-eszközön $0.05–0.17.
Rendszeres teszteléshez a fix előfizetés előnyösebb. A BrowserStack Team csomagot kínál havi 299 dollárért 3 felhasználónak korlátlan percekkel fizikai eszközökön. Az AWS Device Farm-nak nincs fix előfizetése — a fizetés percenként történik, ami rendszertelen terhelés esetén kényelmes, de intenzív használatnál drágább.
A költségvetés kiszámításakor vegye figyelembe: a tesztelési artefaktumok tárolását (videó, képernyőképek, naplók) — az AWS Device Farm 90 napig tárolja az eredményeket külön díj nélkül, a BrowserStack 30 napig; a hálózati forgalmat nagy APK/IPA fájlok feltöltésekor; a párhuzamos munkamenetek számát — a párhuzamosság növelése drágább csomagot igényelhet.
Gyakran Ismételt Kérdések
Az emulátor szoftveresen utánozza az eszközt a számítógépén, míg a Device Farm hozzáférést biztosít egy valódi fizikai eszközhöz eredeti firmware-rel, processzorral és érzékelőkkel. Csak egy valódi eszközön ellenőrizhető a kamera, GPS, ház hőmérséklete és a hálózati üzemeltetővel való interakció.
Igen, az összes nagy szolgáltató támogatja az iOS-t. A teszteléshez development tanúsítvánnyal épített IPA fájl szükséges. A BrowserStack és az AWS Device Farm fizikai iPhone-t és iPad-et biztosít, a Firebase Test Lab az iOS-t macOS szimulátorokon keresztül támogatja az adatközpontban.
A Jenkins bővítményeken (például AWS Device Farm Plugin) vagy a build szakaszban futtatott CLI parancsokon keresztül integrálódik. A bővítmény automatikusan feltölti a build artefaktumokat, futtatja a teszteket a kiválasztott eszközökön és visszaadja az eredményt a Jenkins csővezetékbe.
Startupok számára a Firebase Test Lab az optimális — az alapfunkciók ingyenesek, az Android Studio integráció a dobozból működik. iOS projektekhez a BrowserStack 60 perc ingyenes tesztelést kínál. Ahogy a csapat növekszik, áttérnek a fizetős előfizetésekre teljes eszközflottával.
A nagy szolgáltatók betartják a SOC 2 tanúsítványt és titkosítják az adatokat átvitel és tárolás közben. Az AWS Device Farm elkülönített AWS fiókokon belül működik, a BrowserStack eldobható eszközöket használ minden munkamenethez. Az érzékeny adatokat (API kulcsok) ajánlott a build konfigurációba helyezni.
Összefoglalá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