Screengrab (Fastlane) — o que é, recursos e automação de capturas de tela

Autor: IT Sectr Publicado: 2026-04-15 Tempo de leitura: 8 min

Screengrab é um utilitário do ecossistema Fastlane para automatizar a criação de capturas de tela de aplicativos móveis para Android e iOS. Em vez de percorrer manualmente as telas em dezenas de dispositivos, o desenvolvedor executa um comando e o Screengrab captura independentemente todas as telas necessárias. De acordo com Fastlane Docs, 2026, a ferramenta suporta simultaneamente até 30 idiomas e qualquer resolução de tela definida na configuração.

Principais pontos

  • Screengrab — uma ferramenta Fastlane para criação automática de capturas de tela de aplicativos móveis em Android e iOS.
  • Automação substitui a criação manual de centenas de capturas por um único comando no terminal.
  • Localização — geração simultânea de capturas de tela em dezenas de idiomas sem configuração adicional.
  • CI/CD — integração com qualquer pipeline: Jenkins, GitHub Actions, GitLab CI.
  • Flexibilidade — suporte a múltiplos dispositivos, orientações e idiomas em uma única execução.

O que é Screengrab e por que é necessário

Screengrab é um componente do ecossistema Fastlane projetado para criação automatizada de capturas de tela de aplicativos móveis. A ferramenta surgiu em 2015 como resposta ao problema: para publicar no Google Play e App Store são necessárias de 4 a 10 capturas por idioma. Com suporte a 30 idiomas, isso significa 120–300 capturas manuais.

O problema da criação manual de capturas de tela

Um desenvolvedor inicia manualmente o aplicativo em um simulador ou dispositivo, navega até a tela desejada, faz uma captura de tela, transfere para o computador, recorta e salva na pasta correta. O procedimento se repete para cada idioma e cada orientação. De acordo com o Google Play Console, o aplicativo médio é atualizado a cada duas semanas, transformando as capturas de tela em uma rotina regular.

Vantagens da automação

O Screengrab resolve o problema radicalmente: o desenvolvedor descreve cenários de teste usando um framework de UI (Espresso para Android, XCTest para iOS), e o Screengrab os executa em todos os dispositivos e idiomas necessários automaticamente. O Fastlane coordena o processo: compila o aplicativo, executa os testes, coleta as capturas e as empacota na estrutura de pastas necessária.

O resultado — cem capturas de tela em 10–15 minutos em vez de várias horas de trabalho manual. O Google recomenda atualizar as capturas a cada mudança significativa na interface, e sem automação esse conselho é frequentemente ignorado.

Como funciona o Screengrab: arquitetura e princípio de operação

A arquitetura do Screengrab é construída em torno de dois componentes principais: um cliente no dispositivo (screengrab-lib) e um executor que gerencia a execução dos testes e a coleta de resultados. No Android, utiliza o framework de teste instrumentado; no iOS — XCTest.

Ciclo de vida de uma única execução

O Fastlane chama a ação screengrab, que lê o arquivo de configuração Screengrabfile. O executor compila o APK de teste com a biblioteca screengrab-lib conectada, instala-o nos dispositivos ou emuladores conectados e executa os testes de UI marcados com anotações para capturas de tela.

ruby
# Fastfile — descrição de lane para capturas de tela
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

Estrutura dos arquivos de saída

O Screengrab cria uma hierarquia de pastas: idioma → dispositivo → capturas. A estrutura corresponde completamente aos requisitos do Google Play Console e App Store Connect. A App Store exige tamanhos estritamente definidos para cada tipo de dispositivo, e o Screengrab gera capturas exatamente de acordo com as especificações.

Suporte a múltiplos dispositivos

A ferramenta pode executar testes em paralelo em todos os dispositivos e emuladores conectados. Os emuladores Android iniciam automaticamente se não estiverem ativos. Para iOS, o Screengrab usa simuladores do Xcode.

Instalação e configuração do Screengrab para Android

A instalação do Screengrab consiste em duas partes: adicionar a biblioteca ao projeto e configurar o arquivo de configuração. No Android, são necessários o framework de UI Espresso e a biblioteca screengrab-lib do repositório Fastlane.

Adição de dependências

No build.gradle do módulo do aplicativo, a dependência screengrab-lib é adicionada. A biblioteca fornece a classe ScreenCapturer, que faz uma captura de tela no momento da chamada.

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

Escrevendo um teste com capturas de tela

Um teste de UI é marcado com a anotação Screengrab.screenshot() nos pontos necessários. Cada chamada captura a tela atual e a salva com o nome especificado.

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")
        // Ações: tocar no botão de login
        Screengrab.screenshot("login_screen")
    }
}

Configuração do Screengrabfile

O arquivo Screengrabfile armazena os parâmetros de execução: lista de dispositivos, idiomas, tempos limite e caminho de salvamento. O arquivo geralmente está localizado na pasta fastlane ao lado do Fastfile.

Localização de capturas de tela e vários idiomas

A localização é o recurso chave do Screengrab e a principal razão pela qual é mais frequentemente escolhido. A ferramenta alterna automaticamente o idioma do aplicativo antes de cada execução de teste e faz capturas em todos os idiomas especificados.

Configuração de idiomas

Os idiomas são definidos no Screengrabfile usando o parâmetro locales. Para cada idioma, o Screengrab reinstala o aplicativo com os recursos correspondentes e executa o ciclo completo de testes. O LocaleTestRule no Android alterna automaticamente a localidade do dispositivo.

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

Estrutura de pastas para capturas localizadas

O Screengrab cria diretórios seguindo o esquema: screenshots/{locale}/{device_name}/{screenshot_name}.png. Essa estrutura corresponde diretamente aos requisitos do Google Play, permitindo o upload das capturas via Fastlane deliver com um único comando.

Para iOS, o App Store Connect espera capturas em uma estrutura plana por idioma. O Fastlane converte automaticamente a hierarquia do Screengrab no formato necessário ao publicar.

Integração do Screengrab no pipeline CI/CD

A integração com CI/CD é uma das principais vantagens do Screengrab. A ferramenta é executada a partir da linha de comando e não requer interface gráfica, tornando-a ideal para compilações em servidor.

GitHub Actions

Em um ambiente CI, é necessário iniciar um emulador Android ou simulador iOS e depois chamar a lane com as capturas. O GitHub Actions suporta cache de AVD, o que acelera execuções repetidas.

Parâmetros para CI

Na configuração de CI, é importante considerar as limitações de memória e tempo. Os emuladores Android exigem pelo menos 2 GB de RAM por dispositivo, e uma execução completa em 7 idiomas e 2 dispositivos leva de 20 a 40 minutos.

ruby
# Fastfile — lane para CI com tempos limite
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

Para Jenkins, é usado o passo sh com a chamada a bundle exec fastlane. Recomenda-se executar as capturas à noite ou por acionador após mesclagem na branch principal para não retardar o ciclo de desenvolvimento.

Screengrab vs alternativas: comparação de ferramentas

Screengrab não é a única ferramenta para automatizar capturas de tela. Existem alternativas com diferentes abordagens: ferramentas integradas do sistema operacional, plataformas comerciais e bibliotecas de capturas em código.

FerramentaPlataformaLocalizaçãoCI/CD
ScreengrabAndroid, iOSAutomáticaNativa
ADB ShellAndroidManualVia scripts
XCTestiOSManualVia xcodebuild
Firebase Test LabAndroidRequer configuraçãoSim
AppiumMultiplataformaManualVia WebDriver

ADB Shell oferece controle total, mas requer escrever scripts para cada cenário. XCTest está integrado no Xcode, mas não gerencia a localização automaticamente. O Firebase Test Lab executa testes em dispositivos reais na nuvem, oferecendo máxima cobertura, mas cobra por minuto.

O Screengrab vence pela combinação: o Fastlane gerencia todo o ciclo de vida da compilação — desde a compilação até a publicação. O Google Play aceita diretamente a estrutura de pastas do Screengrab via Fastlane deliver.

Problemas comuns e suas soluções

Ao trabalhar com Screengrab, os desenvolvedores frequentemente encontram vários problemas recorrentes. Conhecer os erros comuns reduz o tempo de depuração na primeira execução.

Capturas de tela ficam vazias ou pretas

O problema ocorre quando o Screengrab faz a captura antes da renderização da tela ser concluída. A solução é adicionar um atraso Thread.sleep() antes de chamar screenshot() ou usar IdlingResource do Espresso para aguardar operações assíncronas.

Erro de incompatibilidade de versão

A versão do screengrab-lib deve corresponder à versão do Fastlane. O Fastlane é atualizado mensalmente, e uma biblioteca antiga pode não suportar novos parâmetros de configuração. A solução é sincronizar as versões via Gemfile e gradle.properties.

Execução longa no CI

Executar em 30 idiomas em 5 dispositivos pode levar mais de uma hora. A solução é dividir as execuções: uma para a loja em todos os idiomas, outra para necessidades internas em dois idiomas. O GitHub Actions permite usar estratégias de matriz para execuções paralelas.

Problemas com emulador no CI

O emulador Android requer virtualização de hardware, que nem sempre está disponível em servidores CI. O KVM deve estar ativado, caso contrário o emulador não inicia. A solução é usar imagens x86 sem aceleração GPU ou Firebase Test Lab.

Perguntas frequentes

Como o Screengrab difere de uma captura de tela normal via ADB?

ADB captura o que é exibido na tela no momento atual. O Screengrab se integra com testes de UI, alterna automaticamente idiomas e dispositivos e faz uma série de capturas de acordo com um cenário sem intervenção humana.

É possível usar o Screengrab sem Fastlane?

Não, o Screengrab é um componente do ecossistema Fastlane e usa sua infraestrutura para compilar, instalar e coordenar. A biblioteca screengrab-lib não funciona separadamente — o Fastlane é necessário como orquestrador.

Quanto tempo leva para gerar capturas de tela em 10 idiomas?

Em um único dispositivo, uma execução em 10 idiomas leva de 15 a 25 minutos. Cada idioma requer reinstalar o aplicativo e um ciclo completo de testes de UI. A execução paralela em vários dispositivos reduz o tempo proporcionalmente.

O Screengrab suporta aplicativos iOS?

Sim, o Screengrab suporta iOS através do XCTest e simuladores do Xcode. A configuração é semelhante ao Android: idiomas e dispositivos são adicionados, e os testes de UI em Swift são escritos usando XCTest com capturas via XCUIScreenshot.

Como atualizar capturas apenas para novos idiomas?

O Screengrab não suporta modo incremental — cada execução gera um conjunto completo de capturas. Recomenda-se configurar uma lane separada para CI com uma lista limitada de idiomas para evitar sobrescrever capturas existentes da execução principal.

Resumo

  • Screengrab — um componente Fastlane para automatizar capturas de tela de aplicativos móveis em Android e iOS.
  • Automação substitui a criação manual de centenas de capturas por um único comando no terminal.
  • Localização — a ferramenta alterna automaticamente o idioma do aplicativo antes de cada execução de teste.
  • CI/CD — integração com Jenkins, GitHub Actions, GitLab CI e outros pipelines sem interface gráfica.
  • Estrutura dos arquivos de saída corresponde aos requisitos do Google Play e App Store para upload direto.
  • Flexibilidade — suporte a múltiplos dispositivos, orientações de tela e cenários de teste personalizados.
  • Economia — cem capturas em 15 minutos em vez de várias horas de trabalho manual a cada atualização.

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também