Screengrab (Fastlane) — mi ez, képességek és képernyőképek automatizálása

Szerző: IT Sectr Megjelenés: 2026-04-15 Olvasási idő: 8 perc

A Screengrab egy segédprogram a Fastlane ökoszisztémából a mobilalkalmazások képernyőképeinek automatizált készítéséhez Android és iOS rendszerekhez. Ahelyett, hogy a fejlesztő manuálisan görgetné a képernyőket több tucat eszközön, elindít egy parancsot, és a Screengrab önállóan elkészíti az összes szükséges képernyő felvételét. A Fastlane Docs, 2026 szerint az eszköz egyszerre akár 30 nyelvet és bármilyen, a konfigurációban megadott képernyőfelbontást támogat.

A lényeg

  • Screengrab — Fastlane eszköz mobilalkalmazások képernyőképeinek automatikus készítéséhez Android és iOS rendszerekhez.
  • Automatizálás helyettesíti a képernyőképek manuális készítését egyetlen paranccsal a terminálban.
  • Lokalizáció — képernyőképek egyidejű generálása több tucat nyelven további beállítások nélkül.
  • CI/CD — integráció bármilyen pipeline-nal: Jenkins, GitHub Actions, GitLab CI.
  • Rugalmasság — több eszköz, tájolás és nyelv támogatása egyetlen futtatásban.

Mi az a Screengrab és miért van rá szükség

Screengrab — a Fastlane ökoszisztéma egyik komponense, amely mobilalkalmazások képernyőképeinek automatizált készítésére szolgál. Az eszköz 2015-ben jelent meg válaszként a problémára: a Google Play és App Store publikáláshoz nyelvenként 4–10 képernyőkép szükséges. 30 nyelv támogatása esetén ez 120–300 manuálisan készített felvételt jelent.

A képernyőképek manuális készítésének problémája

A fejlesztő manuálisan indítja el az alkalmazást egy szimulátoron vagy eszközön, a szükséges képernyőre görget, képernyőképet készít, átviszi a számítógépre, levágja és elmenti a megfelelő mappába. Az eljárás megismétlődik minden nyelv és minden tájolás esetén. A Google Play Console szerint az átlagos alkalmazás két hetente frissül, ami a képernyőképeket rendszeres rutinná teszi.

Az automatizálás előnyei

A Screengrab radikálisan oldja meg a problémát: a fejlesztő leírja a tesztforgatókönyveket az UI-keretrendszerben (Espresso Androidhoz, XCTest iOS-hez), a Screengrab pedig automatikusan futtatja azokat az összes szükséges eszközön és nyelven. A Fastlane koordinálja a folyamatot: összeállítja a build-et, futtatja a teszteket, összegyűjti a képernyőképeket és becsomagolja a megfelelő mappastruktúrába.

Az eredmény — száz képernyőkép 10–15 perc alatt, több óra manuális munka helyett. A Google javasolja a képernyőképek frissítését minden jelentős felületi változáskor, és automatizálás nélkül ezt a tanácsot gyakran figyelmen kívül hagyják.

Hogyan működik a Screengrab: architektúra és működési elv

Architektúra A Screengrab két kulcskomponens köré épül: az eszközön lévő kliens (screengrab-lib) és a runner, amely a tesztek futtatását és az eredmények gyűjtését kezeli. Androidon az instrumentális tesztkeretrendszer, iOS-en az XCTest használatos.

Egy futtatás életciklusa

A Fastlane meghívja a screengrab akciót, amely beolvassa a Screengrabfile konfigurációs fájlt. A runner összeállítja a teszt APK-t a csatolt screengrab-lib könyvtárral, telepíti a csatlakoztatott eszközökre vagy emulátorokra, és elindítja a képernyőképekhez annotációkkal megjelölt UI teszteket.

ruby
# Fastfile — lane leírása képernyőképekhez
lane :screenshots do
  capture_android_screenshots(
    output_directory: "fastlane/metadata/android/screenshots",
    locales: ["ru-RU", "en-US", "de-DE"],
    devices: ["pixel_6", "pixel_tablet"],
    use_tests_external_storage: true
  )
end

A kimeneti fájlok struktúrája

A Screengrab mappahierarchiát hoz létre: nyelv → eszköz → képernyőképek. A struktúra teljes mértékben megfelel a Google Play Console és App Store Connect követelményeinek. Az App Store szigorúan meghatározott méreteket követel meg minden eszköztípushoz, és a Screengrab pontosan a specifikációknak megfelelően generálja a képeket.

Több eszköz támogatása

Az eszköz párhuzamosan tudja futtatni a teszteket az összes csatlakoztatott eszközön és emulátoron. Az Android emulátorok automatikusan elindulnak, ha nem aktívak. Az iOS-hez a Screengrab Xcode szimulátorokat használ.

A Screengrab telepítése és konfigurálása Androidhoz

A Screengrab telepítése két részből áll: a könyvtár hozzáadása a projekthez és a konfigurációs fájl beállítása. Androidhoz szükség van az Espresso UI-keretrendszerre és a screengrab-lib könyvtárra a Fastlane tárházból.

Függőségek csatlakoztatása

Az alkalmazásmodul build.gradle fájljában hozzáadásra kerül a screengrab-lib függőség. A könyvtár biztosítja a ScreenCapturer osztályt, amely a hívás pillanatában készít képernyőképet.

groovy
// build.gradle (modul: app)
androidTestImplementation(
  'tools.fastlane:screengrab-lib:2.1.0'
)

Teszt írása képernyőképekkel

Az UI teszt a szükséges pontokon Screengrab.screenshot() annotációval van jelölve. Minden hívás képernyőképet készít az aktuális képernyőről és elmenti a megadott néven.

kotlin
import tools.fastlane.screengrab.Screengrab
import tools.fastlane.screengrab.locale.LocaleTestRule

class ScreenshotTest {

    @get:Rule
    val localeTestRule = LocaleTestRule()

    @Test
    fun testTakeScreenshots() {
        Screengrab.screenshot("main_screen")
        // Műveletek: kattintson a bejelentkezés gombra
        Screengrab.screenshot("login_screen")
    }
}

Screengrabfile konfiguráció

A Screengrabfile fájl tárolja a futtatás paramétereit: eszközök listája, nyelvek, időtúllépések és a mentési útvonal. A fájl általában a fastlane mappában található a Fastfile mellett.

Képernyőképek lokalizációja és több nyelv

Lokalizáció — a Screengrab kulcsfontosságú képessége, ami miatt leggyakrabban választják. Az eszköz automatikusan átkapcsolja az alkalmazás nyelvét minden tesztfuttatás előtt, és az összes megadott nyelven készít felvételeket.

Nyelvek beállítása

A nyelvek a Screengrabfile-ban a locales paraméterrel adhatók meg. Minden nyelvhez a Screengrab újratelepíti az alkalmazást a megfelelő erőforrásokkal, és elindít egy teljes tesztciklust. A LocaleTestRule Androidon automatikusan átkapcsolja az eszköz területi beállítását.

ruby
# Screengrabfile
locales [
  "ru-RU",
  "en-US",
  "de-DE",
  "fr-FR",
  "es-ES",
  "ja-JP",
  "ko-KR"
]

Mappastruktúra lokalizált képernyőképekhez

A Screengrab könyvtárakat hoz létre a következő séma szerint: screenshots/{locale}/{device_name}/{screenshot_name}.png. Ez a struktúra közvetlenül megfelel a Google Play követelményeinek, lehetővé téve a képernyőképek feltöltését a Fastlane deliver segítségével egyetlen paranccsal.

Az iOS esetében az App Store Connect a képernyőképeket lapos struktúrában várja nyelvek szerint. A Fastlane automatikusan konvertálja a Screengrab hierarchiát a szükséges formátumba a publikálás során.

A Screengrab integrálása CI/CD pipeline-ba

CI/CD integráció a Screengrab egyik fő előnye. Az eszköz parancssorból indul, és nem igényel grafikus felületet, ami ideálissá teszi szerveroldali build-ekhez.

GitHub Actions

CI környezetben el kell indítani az Android emulátort vagy iOS szimulátort, majd meg kell hívni a lane-t képernyőképekkel. A GitHub Actions támogatja az AVD gyorsítótárazását, ami felgyorsítja az ismételt futtatásokat.

CI paraméterek

A CI konfigurációban fontos figyelembe venni a memória- és időkorlátokat. Az Android emulátorok legalább 2 GB RAM-ot igényelnek eszközönként, és egy teljes futtatás 7 nyelven és 2 eszközön 20–40 percet vesz igénybe.

ruby
# Fastfile — lane CI-hoz időtúllépésekkel
lane :ci_screenshots do
  capture_android_screenshots(
    locales: ["en-US", "ru-RU"],
    devices: ["pixel_6"],
    clear_previous_screenshots: true,
    tests_timeout: "600",
    output_directory: "screenshots/ci"
  )
end

Jenkins Pipeline

A Jenkinshez a sh lépés használatos a bundle exec fastlane hívással. Javasolt a képernyőképek éjszakai futtatása vagy a főágba történő merge utáni triggerrel, hogy ne lassítsa a fejlesztési ciklust.

Screengrab vs alternatívák: eszközök összehasonlítása

Screengrab — nem az egyetlen eszköz a képernyőképek automatizálására. Léteznek alternatívák különböző megközelítésekkel: beépített operációsrendszer-eszközök, kereskedelmi platformok és könyvtárak képernyőképek készítéséhez kódban.

EszközPlatformLokalizációCI/CD
ScreengrabAndroid, iOSAutomatikusNatív
ADB ShellAndroidManuálisScriptekkel
XCTestiOSManuálisxcodebuild-del
Firebase Test LabAndroidBeállítást igényelIgen
AppiumKeresztplatformosManuálisWebDriver-rel

Az ADB Shell teljes irányítást ad, de scriptek írását igényli minden forgatókönyvhöz. Az XCTest beépített az Xcode-ba, de nem kezeli automatikusan a lokalizációt. A Firebase Test Lab valódi eszközökön futtatja a teszteket a felhőben, maximális lefedettséget nyújtva, de percenkénti fizetést igényel.

A Screengrab a kombinációnak köszönhetően nyer: a Fastlane kezeli a build teljes életciklusát — a fordítástól a publikálásig. A Google Play közvetlenül fogadja a Screengrab mappastruktúráját a Fastlane deliver segítségével.

Tipikus problémák és megoldásaik

A Screengrab használata során a fejlesztők leggyakrabban néhány ismétlődő problémával találkoznak. A tipikus hibák ismerete csökkenti a hibakeresési időt az első futtatáskor.

A képernyőképek üresek vagy feketék

A probléma akkor jelentkezik, amikor a Screengrab a képernyő renderelésének befejeződése előtt készít felvételt. Megoldás — Thread.sleep() késleltetés hozzáadása a screenshot() hívás előtt, vagy IdlingResource használata az Espressoból az aszinkron műveletek várakozásához.

Verzió-inkompatibilitási hiba

A screengrab-lib könyvtárnak meg kell felelnie a Fastlane verziójának. A Fastlane havonta frissül, és a régi könyvtár esetleg nem támogatja az új konfigurációs paramétereket. Megoldás — verziók szinkronizálása a Gemfile és gradle.properties segítségével.

Hosszú futtatási idő CI-ban

A futtatás 30 nyelven 5 eszközön több mint egy órát is igénybe vehet. Megoldás — a futtatások szétválasztása: egy az áruháznak minden nyelven, egy másik a belső igényekhez két nyelven. A GitHub Actions lehetővé teszi a stratégiák mátrixának használatát párhuzamos futtatásokhoz.

Problémák az emulátorral CI-ban

Az Android emulátor hardvervirtualizációt igényel, ami nem mindig elérhető a CI szervereken. A KVM-nek engedélyezve kell lennie, különben az emulátor nem indul el. Megoldás — x86 rendszerképek használata GPU-gyorsítás nélkül vagy Firebase Test Lab.

Gyakran ismételt kérdések

Miben különbözik a Screengrab a szokásos ADB képernyőképtől?

Az ADB képet készít arról, ami éppen a képernyőn látható. A Screengrab integrálódik az UI tesztekkel, automatikusan váltja a nyelveket és eszközöket, és forgatókönyv szerint készít egy sorozat felvételt emberi beavatkozás nélkül.

Használható a Screengrab Fastlane nélkül?

Nem, a Screengrab a Fastlane ökoszisztéma komponense, és annak infrastruktúráját használja a fordításhoz, telepítéshez és koordinációhoz. A screengrab-lib könyvtár önmagában nem fut — a Fastlane szükséges orkesztrátorként.

Mennyi ideig tart a képernyőképek generálása 10 nyelven?

Egy eszközön a futtatás 10 nyelven 15–25 percet vesz igénybe. Minden nyelv az alkalmazás újratelepítését és egy teljes UI tesztciklust igényel. A párhuzamos futtatás több eszközön arányosan csökkenti az időt.

Támogatja a Screengrab az iOS alkalmazásokat?

Igen, a Screengrab támogatja az iOS-t az XCTest és Xcode szimulátorok segítségével. A konfiguráció hasonló az Androidhoz: nyelvek és eszközök hozzáadása, az UI tesztek Swift-ben íródnak XCTest használatával és képek XCUIScreenshot segítségével.

Hogyan frissíthetők a képernyőképek csak az új nyelvekhez?

A Screengrab nem támogatja a növekményes módot — minden futtatás teljes képernyőképkészletet generál. Javasolt egy külön lane beállítása a CI számára korlátozott nyelvlistával, hogy ne írja felül a meglévő képeket a fő futtatásból.

Összegzés

  • Screengrab — Fastlane komponens mobilalkalmazások képernyőképeinek automatizálásához Android és iOS rendszereken.
  • Automatizálás helyettesíti a képernyőképek manuális készítését egyetlen paranccsal a terminálban.
  • Lokalizáció — az eszköz automatikusan átkapcsolja az alkalmazás nyelvét minden tesztfuttatás előtt.
  • CI/CD — integráció Jenkins, GitHub Actions, GitLab CI és más pipeline-okkal grafikus felület nélkül.
  • Struktúra a kimeneti fájlok megfelelnek a Google Play és App Store követelményeinek a közvetlen feltöltéshez.
  • Rugalmasság — több eszköz, képernyőtájolás és egyéni tesztforgatókönyv támogatása.
  • Megtakarítás — száz képernyőkép 15 perc alatt, több óra manuális munka helyett minden frissítésnél.

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.

Projekt megbeszélése

Olvassa el is