Screengrab (Fastlane) — ce este, capacități și automatizarea capturilor de ecran

Autor: IT Sectr Publicat: 2026-04-15 Timp de citire: 8 min

Screengrab este un utilitar din ecosistemul Fastlane pentru automatizarea creării de capturi de ecran ale aplicațiilor mobile pentru Android și iOS. În loc să derulezi manual ecranele pe zeci de dispozitive, dezvoltatorul lansează o singură comandă, iar Screengrab face independent capturile tuturor ecranelor necesare. Potrivit Fastlane Docs, 2026, instrumentul suportă simultan până la 30 de limbi și orice rezoluții de ecran specificate în configurație.

Principalele

  • Screengrab — instrument Fastlane pentru crearea automată a capturilor de ecran ale aplicațiilor mobile pentru Android și iOS.
  • Automatizarea înlocuiește crearea manuală a sute de capturi de ecran cu o singură comandă în terminal.
  • Localizarea — generarea simultană a capturilor de ecran în zeci de limbi fără setări suplimentare.
  • CI/CD — integrare cu orice pipeline: Jenkins, GitHub Actions, GitLab CI.
  • Flexibilitatea — suport pentru mai multe dispozitive, orientări și limbi într-o singură lansare.

Ce este Screengrab și de ce este necesar

Screengrab — este o componentă a ecosistemului Fastlane destinată creării automatizate a capturilor de ecran ale aplicațiilor mobile. Instrumentul a apărut în 2015 ca răspuns la problemă: pentru publicarea în Google Play și App Store sunt necesare de la 4 la 10 capturi de ecran pentru fiecare limbă. Cu suport pentru 30 de limbi, aceasta înseamnă 120–300 de imagini realizate manual.

Problema creării manuale a capturilor de ecran

Dezvoltatorul lansează manual aplicația pe simulator sau dispozitiv, derulează până la ecranul necesar, face o captură de ecran, o transferă pe computer, o decupează și o salvează în folderul potrivit. Procedura se repetă pentru fiecare limbă și fiecare orientare. Potrivit Google Play Console, aplicația medie se actualizează o dată la două săptămâni, ceea ce transformă capturile de ecran într-o rutină regulată.

Avantajele automatizării

Screengrab rezolvă problema radical: dezvoltatorul descrie scenarii de teste în framework-ul UI (Espresso pentru Android, XCTest pentru iOS), iar Screengrab le rulează pe toate dispozitivele și limbile necesare automat. Fastlane coordonează procesul: compilează build-ul, rulează testele, colectează capturile de ecran și le ambalează în structura de foldere corespunzătoare.

Rezultatul — o sută de capturi de ecran în 10–15 minute în loc de câteva ore de muncă manuală. Google recomandă actualizarea capturilor de ecran la fiecare modificare semnificativă a interfeței, iar fără automatizare acest sfat este adesea ignorat.

Cum funcționează Screengrab: arhitectura și principiul de funcționare

Arhitectura Screengrab este construită în jurul a două componente cheie: clientul pe dispozitiv (screengrab-lib) și runner-ul care gestionează lansarea testelor și colectarea rezultatelor. Pe Android se folosește framework-ul de testare instrumental, pe iOS — XCTest.

Ciclul de viață al unei lansări

Fastlane apelează acțiunea screengrab care citește fișierul de configurare Screengrabfile. Runner-ul compilează APK-ul de test cu biblioteca screengrab-lib conectată, îl instalează pe dispozitivele conectate sau emulatoare și rulează testele UI marcate cu adnotări pentru capturi de ecran.

ruby
# Fastfile — descriere lane pentru capturi de ecran
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

Structura fișierelor de ieșire

Screengrab creează o ierarhie de foldere: limba → dispozitiv → capturi de ecran. Structura corespunde complet cerințelor Google Play Console și App Store Connect. App Store solicită dimensiuni strict definite pentru fiecare tip de dispozitiv, iar Screengrab generează imagini exact conform specificațiilor.

Suport pentru mai multe dispozitive

Instrumentul poate rula teste în paralel pe toate dispozitivele și emulatoarele conectate. Emulatoarele Android se lansează automat dacă nu sunt active. Pentru iOS, Screengrab utilizează simulatoarele Xcode.

Instalarea și configurarea Screengrab pentru Android

Instalarea Screengrab constă din două părți: adăugarea bibliotecii în proiect și configurarea fișierului de configurare. Pe Android este necesar framework-ul UI Espresso și biblioteca screengrab-lib din depozitul Fastlane.

Conectarea dependențelor

În build.gradle modulului aplicației se adaugă dependența screengrab-lib. Biblioteca oferă clasa ScreenCapturer care face o captură de ecran în momentul apelării.

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

Scrierea testului cu capturi de ecran

Testul UI este marcat cu adnotarea Screengrab.screenshot() în punctele necesare. Fiecare apel face o captură a ecranului curent și o salvează cu numele specificat.

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")
        // Acțiuni: faceți clic pe butonul de autentificare
        Screengrab.screenshot("login_screen")
    }
}

Configurarea Screengrabfile

Fișierul Screengrabfile stochează parametrii de lansare: lista dispozitivelor, limbile, timeout-urile și calea de salvare. Fișierul se află de obicei în folderul fastlane lângă Fastfile.

Localizarea capturilor de ecran și mai multe limbi

Localizarea — capacitatea cheie a Screengrab, pentru care este cel mai adesea ales. Instrumentul comută automat limba aplicației înainte de fiecare rulare a testelor și face capturi în toate limbile specificate.

Configurarea limbilor

Limbile se setează în Screengrabfile cu parametrul locales. Pentru fiecare limbă, Screengrab reinstalează aplicația cu resursele corespunzătoare și rulează un ciclu complet de teste. LocaleTestRule pe Android comută automat localizarea dispozitivului.

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

Structura folderelor pentru capturi de ecran localizate

Screengrab creează directoare după schema: screenshots/{locale}/{device_name}/{screenshot_name}.png. Această structură corespunde direct cerințelor Google Play, permițând încărcarea capturilor de ecran prin Fastlane deliver cu o singură comandă.

Pentru iOS, App Store Connect așteaptă capturi de ecran într-o structură plată pe limbi. Fastlane convertește automat ierarhia Screengrab în formatul necesar la publicare.

Integrarea Screengrab în pipeline-ul CI/CD

CI/CD integrarea este unul dintre principalele avantaje ale Screengrab. Instrumentul se lansează din linia de comandă și nu necesită interfață grafică, ceea ce îl face ideal pentru compilări server.

GitHub Actions

În mediul CI este necesar să se lanseze emulatorul Android sau simulatorul iOS, după care să se apeleze lane cu capturi de ecran. GitHub Actions suportă caching AVD, ceea ce accelerează lansările repetate.

Parametri pentru CI

În configurația CI este important să se țină cont de limitările de memorie și timp. Emulatoarele Android necesită cel puțin 2 GB RAM per dispozitiv, iar o rulare completă pe 7 limbi și 2 dispozitive durează 20–40 de minute.

ruby
# Fastfile — lane pentru CI cu timeout-uri
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

Pentru Jenkins se folosește pasul sh cu apelul bundle exec fastlane. Se recomandă lansarea capturilor de ecran noaptea sau după un trigger după merge în branch-ul principal, pentru a nu încetini ciclul de dezvoltare.

Screengrab vs alternative: comparație a instrumentelor

Screengrab — nu este singurul instrument pentru automatizarea capturilor de ecran. Există alternative cu abordări diferite: instrumente încorporate ale sistemului de operare, platforme comerciale și biblioteci pentru capturi de ecran în cod.

InstrumentPlatformăLocalizareCI/CD
ScreengrabAndroid, iOSAutomatăNativ
ADB ShellAndroidManualăPrin scripturi
XCTestiOSManualăPrin xcodebuild
Firebase Test LabAndroidNecesită configurareDa
AppiumCross-platformăManualăPrin WebDriver

ADB Shell oferă control total, dar necesită scrierea de scripturi pentru fiecare scenariu. XCTest este încorporat în Xcode, dar nu gestionează automat localizarea. Firebase Test Lab rulează teste pe dispozitive reale în cloud, oferind acoperire maximă, dar necesită plată pentru fiecare minut.

Screengrab câștigă datorită combinației: Fastlane gestionează întregul ciclu de viață al compilării — de la compilare la publicare. Google Play acceptă direct structura de foldere Screengrab prin Fastlane deliver.

Probleme tipice și soluțiile lor

În lucrul cu Screengrab, dezvoltatorii se confruntă cel mai des cu câteva probleme recurente. Cunoașterea erorilor tipice reduce timpul de depanare la prima lansare.

Capturile de ecran sunt goale sau negre

Problema apare când Screengrab face captura înainte de finalizarea randării ecranului. Soluția — adăugarea unei întârzieri Thread.sleep() înainte de apelul screenshot() sau utilizarea IdlingResource din Espresso pentru așteptarea operațiilor asincrone.

Eroare de incompatibilitate a versiunilor

Biblioteca screengrab-lib trebuie să corespundă versiunii Fastlane. Fastlane se actualizează lunar, iar biblioteca veche poate să nu suporte noii parametri de configurare. Soluția — sincronizarea versiunilor prin Gemfile și gradle.properties.

Rulare lungă în CI

Lansarea pe 30 de limbi pe 5 dispozitive poate dura peste o oră. Soluția — împărțirea rulărilor: una pentru magazin în toate limbile, alta pentru nevoi interne în două limbi. GitHub Actions permite utilizarea matricei de strategii pentru rulări paralele.

Probleme cu emulatorul în CI

Emulatorul Android necesită virtualizare hardware, care nu este întotdeauna disponibilă pe serverele CI. KVM trebuie să fie activat, altfel emulatorul nu pornește. Soluția — utilizarea imaginilor x86 fără accelerare GPU sau Firebase Test Lab.

Întrebări frecvente

Cu ce se deosebește Screengrab de o captură de ecran obișnuită prin ADB?

ADB face o captură a ceea ce este afișat pe ecran în momentul respectiv. Screengrab se integrează cu testele UI, comută automat limbile, dispozitivele și face o serie de capturi conform scenariului fără participarea umană.

Se poate folosi Screengrab fără Fastlane?

Nu, Screengrab este o componentă a ecosistemului Fastlane și utilizează infrastructura acestuia pentru compilare, instalare și coordonare. Biblioteca screengrab-lib nu rulează separat — este necesar Fastlane ca orchestrator.

Cât timp durează generarea capturilor de ecran pe 10 limbi?

Pe un singur dispozitiv, rularea pe 10 limbi durează 15–25 de minute. Fiecare limbă necesită reinstalarea aplicației și un ciclu complet de teste UI. Rularea paralelă pe mai multe dispozitive reduce timpul proporțional.

Suportă Screengrab aplicații iOS?

Da, Screengrab suportă iOS prin XCTest și simulatoare Xcode. Configurarea este similară cu Android: se adaugă limbi, dispozitive, iar testele UI în Swift se scriu folosind XCTest și capturi prin XCUIScreenshot.

Cum să actualizez capturile de ecran doar pentru limbi noi?

Screengrab nu suportă modul incremental — fiecare lansare generează un set complet de capturi de ecran. Se recomandă configurarea unui lane separat pentru CI cu o listă limitată de limbi, pentru a nu suprascrie imaginile existente din rularea principală.

Concluzii

  • Screengrab — componentă Fastlane pentru automatizarea capturilor de ecran ale aplicațiilor mobile Android și iOS.
  • Automatizarea înlocuiește crearea manuală a sute de capturi de ecran cu o singură comandă în terminal.
  • Localizarea — instrumentul comută automat limba aplicației înainte de fiecare rulare a testelor.
  • CI/CD — integrare cu Jenkins, GitHub Actions, GitLab CI și alte pipeline-uri fără interfață grafică.
  • Structura fișierelor de ieșire corespunde cerințelor Google Play și App Store pentru încărcare directă.
  • Flexibilitatea — suport pentru mai multe dispozitive, orientări de ecran și scenarii de testare personalizate.
  • Economia — o sută de capturi de ecran în 15 minute în loc de câteva ore de muncă manuală la fiecare actualizare.

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și