Screengrab (Fastlane) — apa itu, fitur dan otomatisasi tangkapan layar

Penulis: IT Sectr Diterbitkan: 2026-04-15 Waktu membaca: 8 mnt

Screengrab adalah utilitas dari ekosistem Fastlane untuk mengotomatiskan pembuatan tangkapan layar aplikasi mobile untuk Android dan iOS. Alih-alih menggulir layar secara manual di puluhan perangkat, pengembang menjalankan satu perintah, dan Screengrab secara mandiri mengambil gambar semua layar yang diperlukan. Menurut Fastlane Docs, 2026, alat ini mendukung hingga 30 bahasa secara bersamaan dan resolusi layar apa pun yang ditentukan dalam konfigurasi.

Poin Utama

  • Screengrab — alat Fastlane untuk membuat tangkapan layar aplikasi mobile secara otomatis untuk Android dan iOS.
  • Otomatisasi menggantikan pembuatan ratusan tangkapan layar secara manual dengan satu perintah di terminal.
  • Lokalisasi — pembuatan tangkapan layar secara simultan dalam puluhan bahasa tanpa pengaturan tambahan.
  • CI/CD — integrasi dengan pipeline apa pun: Jenkins, GitHub Actions, GitLab CI.
  • Fleksibilitas — dukungan untuk beberapa perangkat, orientasi, dan bahasa dalam satu kali proses.

Apa itu Screengrab dan mengapa diperlukan

Screengrab — adalah komponen ekosistem Fastlane yang dirancang untuk pembuatan tangkapan layar aplikasi mobile secara otomatis. Alat ini muncul pada tahun 2015 sebagai jawaban atas masalah: untuk publikasi di Google Play dan App Store diperlukan 4 hingga 10 tangkapan layar untuk setiap bahasa. Dengan dukungan 30 bahasa, ini berarti 120–300 gambar yang dibuat secara manual.

Masalah pembuatan tangkapan layar manual

Pengembang secara manual menjalankan aplikasi di simulator atau perangkat, menggulir ke layar yang diperlukan, mengambil tangkapan layar, memindahkannya ke komputer, memotongnya, dan menyimpannya ke folder yang sesuai. Prosedur ini diulang untuk setiap bahasa dan setiap orientasi. Menurut Google Play Console, aplikasi rata-rata diperbarui setiap dua minggu, yang mengubah tangkapan layar menjadi rutinitas reguler.

Keuntungan otomatisasi

Screengrab menyelesaikan masalah secara radikal: pengembang mendeskripsikan skenario pengujian di framework UI (Espresso untuk Android, XCTest untuk iOS), dan Screengrab menjalankannya di semua perangkat dan bahasa yang diperlukan secara otomatis. Fastlane mengoordinasikan proses: mengompilasi build, menjalankan pengujian, mengumpulkan tangkapan layar, dan mengemasnya ke dalam struktur folder yang diperlukan.

Hasilnya — seratus tangkapan layar dalam 10–15 menit, bukan beberapa jam kerja manual. Google merekomendasikan memperbarui tangkapan layar pada setiap perubahan signifikan pada antarmuka, dan tanpa otomatisasi, saran ini sering diabaikan.

Cara kerja Screengrab: arsitektur dan prinsip kerja

Arsitektur Screengrab dibangun di sekitar dua komponen kunci: klien di perangkat (screengrab-lib) dan runner yang mengelola pelaksanaan pengujian dan pengumpulan hasil. Di Android digunakan framework pengujian instrumental, di iOS — XCTest.

Siklus hidup satu kali proses

Fastlane memanggil aksi screengrab, yang membaca file konfigurasi Screengrabfile. Runner mengompilasi APK pengujian dengan pustaka screengrab-lib yang terhubung, menginstalnya di perangkat atau emulator yang terhubung, dan menjalankan pengujian UI yang ditandai dengan anotasi untuk tangkapan layar.

ruby
# Fastfile — deskripsi lane untuk tangkapan layar
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

Struktur file keluaran

Screengrab membuat hierarki folder: bahasa → perangkat → tangkapan layar. Strukturnya sepenuhnya sesuai dengan persyaratan Google Play Console dan App Store Connect. App Store memerlukan ukuran yang ditentukan secara ketat untuk setiap jenis perangkat, dan Screengrab menghasilkan gambar persis sesuai spesifikasi.

Dukungan beberapa perangkat

Alat ini dapat menjalankan pengujian secara paralel di semua perangkat dan emulator yang terhubung. Emulator Android dimulai secara otomatis jika tidak aktif. Untuk iOS, Screengrab menggunakan simulator Xcode.

Instalasi dan konfigurasi Screengrab untuk Android

Instalasi Screengrab terdiri dari dua bagian: menambahkan pustaka ke proyek dan mengonfigurasi file konfigurasi. Di Android diperlukan framework UI Espresso dan pustaka screengrab-lib dari repositori Fastlane.

Menambahkan dependensi

Di build.gradle modul aplikasi, dependensi screengrab-lib ditambahkan. Pustaka menyediakan kelas ScreenCapturer yang mengambil tangkapan layar pada saat dipanggil.

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

Menulis pengujian dengan tangkapan layar

Pengujian UI ditandai dengan anotasi Screengrab.screenshot() di titik-titik yang diperlukan. Setiap panggilan mengambil tangkapan layar dari layar saat ini dan menyimpannya dengan nama yang ditentukan.

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")
        // Tindakan: klik tombol masuk
        Screengrab.screenshot("login_screen")
    }
}

Konfigurasi Screengrabfile

File Screengrabfile menyimpan parameter proses: daftar perangkat, bahasa, batas waktu, dan jalur penyimpanan. File biasanya terletak di folder fastlane di samping Fastfile.

Lokalisasi tangkapan layar dan beberapa bahasa

Lokalisasi — fitur utama Screengrab, yang paling sering menjadi alasan pemilihannya. Alat ini secara otomatis mengganti bahasa aplikasi sebelum setiap proses pengujian dan mengambil gambar di semua bahasa yang ditentukan.

Mengatur bahasa

Bahasa diatur dalam Screengrabfile dengan parameter locales. Untuk setiap bahasa, Screengrab menginstal ulang aplikasi dengan sumber daya yang sesuai dan menjalankan siklus pengujian penuh. LocaleTestRule di Android secara otomatis mengganti lokal perangkat.

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

Struktur folder untuk tangkapan layar yang dilokalkan

Screengrab membuat direktori sesuai skema: screenshots/{locale}/{device_name}/{screenshot_name}.png. Struktur ini langsung sesuai dengan persyaratan Google Play, memungkinkan unggahan tangkapan layar melalui Fastlane deliver dengan satu perintah.

Untuk iOS, App Store Connect mengharapkan tangkapan layar dalam struktur datar per bahasa. Fastlane secara otomatis mengonversi hierarki Screengrab ke format yang diperlukan saat publikasi.

Integrasi Screengrab ke dalam pipeline CI/CD

CI/CD integrasi adalah salah satu keunggulan utama Screengrab. Alat ini dijalankan dari baris perintah dan tidak memerlukan antarmuka grafis, menjadikannya ideal untuk build server.

GitHub Actions

Di lingkungan CI, perlu menjalankan emulator Android atau simulator iOS, kemudian memanggil lane dengan tangkapan layar. GitHub Actions mendukung caching AVD, yang mempercepat proses berulang.

Parameter untuk CI

Dalam konfigurasi CI, penting untuk mempertimbangkan batasan memori dan waktu. Emulator Android memerlukan setidaknya 2 GB RAM per perangkat, dan proses penuh pada 7 bahasa dan 2 perangkat memakan waktu 20–40 menit.

ruby
# Fastfile — lane untuk CI dengan batas waktu
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

Untuk Jenkins, digunakan langkah sh dengan pemanggilan bundle exec fastlane. Disarankan untuk menjalankan tangkapan layar di malam hari atau setelah pemicu setelah merge ke cabang utama, agar tidak memperlambat siklus pengembangan.

Screengrab vs alternatif: perbandingan alat

Screengrab — bukan satu-satunya alat untuk otomatisasi tangkapan layar. Ada alternatif dengan pendekatan berbeda: alat bawaan OS, platform komersial, dan pustaka untuk tangkapan layar dalam kode.

AlatPlatformLokalisasiCI/CD
ScreengrabAndroid, iOSOtomatisNat
ADB ShellAndroidManualMelalui skrip
XCTestiOSManualMelalui xcodebuild
Firebase Test LabAndroidPerlu konfigurasiYa
AppiumLintas platformManualMelalui WebDriver

ADB Shell memberikan kontrol penuh, tetapi memerlukan penulisan skrip untuk setiap skenario. XCTest terintegrasi di Xcode, tetapi tidak mengelola lokalisasi secara otomatis. Firebase Test Lab menjalankan pengujian di perangkat nyata di cloud, memberikan cakupan maksimal, tetapi memerlukan pembayaran per menit.

Screengrab unggul berkat kombinasinya: Fastlane mengelola seluruh siklus hidup build — dari kompilasi hingga publikasi. Google Play secara langsung menerima struktur folder Screengrab melalui Fastlane deliver.

Masalah umum dan solusinya

Saat bekerja dengan Screengrab, pengembang paling sering menghadapi beberapa masalah yang berulang. Pengetahuan tentang kesalahan umum mempersingkat waktu debugging pada proses pertama.

Tangkapan layar kosong atau hitam

Masalah terjadi ketika Screengrab mengambil gambar sebelum rendering layar selesai. Solusi — tambahkan penundaan Thread.sleep() sebelum memanggil screenshot() atau gunakan IdlingResource dari Espresso untuk menunggu operasi asinkron.

Kesalahan ketidakcocokan versi

Pustaka screengrab-lib harus sesuai dengan versi Fastlane. Fastlane diperbarui setiap bulan, dan pustaka lama mungkin tidak mendukung parameter konfigurasi baru. Solusi — sinkronkan versi melalui Gemfile dan gradle.properties.

Waktu proses lama di CI

Proses pada 30 bahasa di 5 perangkat dapat memakan waktu lebih dari satu jam. Solusi — bagi proses: satu untuk toko di semua bahasa, satu lagi untuk kebutuhan internal di dua bahasa. GitHub Actions memungkinkan penggunaan matriks strategi untuk proses paralel.

Masalah dengan emulator di CI

Emulator Android memerlukan virtualisasi perangkat keras, yang tidak selalu tersedia di server CI. KVM harus diaktifkan, jika tidak emulator tidak akan berjalan. Solusi — gunakan image x86 tanpa akselerasi GPU atau Firebase Test Lab.

Pertanyaan yang Sering Diajukan

Apa perbedaan Screengrab dengan tangkapan layar biasa melalui ADB?

ADB mengambil gambar dari apa yang ditampilkan di layar saat ini. Screengrab terintegrasi dengan pengujian UI, secara otomatis mengganti bahasa, perangkat, dan mengambil serangkaian gambar sesuai skenario tanpa campur tangan manusia.

Bisakah Screengrab digunakan tanpa Fastlane?

Tidak, Screengrab adalah komponen ekosistem Fastlane dan menggunakan infrastrukturnya untuk kompilasi, instalasi, dan koordinasi. Pustaka screengrab-lib tidak berjalan secara terpisah — Fastlane diperlukan sebagai orkestrator.

Berapa lama waktu yang dibutuhkan untuk menghasilkan tangkapan layar dalam 10 bahasa?

Pada satu perangkat, proses dalam 10 bahasa memakan waktu 15–25 menit. Setiap bahasa memerlukan instalasi ulang aplikasi dan siklus pengujian UI penuh. Proses paralel di beberapa perangkat mengurangi waktu secara proporsional.

Apakah Screengrab mendukung aplikasi iOS?

Ya, Screengrab mendukung iOS melalui XCTest dan simulator Xcode. Konfigurasi mirip dengan Android: bahasa dan perangkat ditambahkan, dan pengujian UI dalam Swift ditulis menggunakan XCTest dan gambar melalui XCUIScreenshot.

Bagaimana cara memperbarui tangkapan layar hanya untuk bahasa baru?

Screengrab tidak mendukung mode inkremental — setiap proses menghasilkan set tangkapan layar lengkap. Disarankan untuk mengatur lane terpisah untuk CI dengan daftar bahasa terbatas, agar tidak menimpa gambar yang ada dari proses utama.

Kesimpulan

  • Screengrab — komponen Fastlane untuk otomatisasi tangkapan layar aplikasi mobile Android dan iOS.
  • Otomatisasi menggantikan pembuatan ratusan tangkapan layar manual dengan satu perintah di terminal.
  • Lokalisasi — alat secara otomatis mengganti bahasa aplikasi sebelum setiap proses pengujian.
  • CI/CD — integrasi dengan Jenkins, GitHub Actions, GitLab CI, dan pipeline lain tanpa antarmuka grafis.
  • Struktur file keluaran sesuai dengan persyaratan Google Play dan App Store untuk unggahan langsung.
  • Fleksibilitas — dukungan untuk beberapa perangkat, orientasi layar, dan skenario pengujian khusus.
  • Penghematan — seratus tangkapan layar dalam 15 menit, bukan beberapa jam kerja manual pada setiap pembaruan.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga