O Firebase Test Lab inclui uma biblioteca que pode ser usada para fazer capturas de tela ao executar testes de instrumentação, como aqueles desenvolvidos usando o framework de teste Espresso. Para adicionar esse recurso ao teste, faça o download da biblioteca cloudtestingscreenshotter_lib.aar.
O recurso de capturas de tela já está integrado ao APK de teste app-debug-test-unaligned.apk para o app de amostra NotePad. Além disso, as capturas de tela também são geradas durante a execução do teste Robo. As instruções a seguir mostram como adicionar a biblioteca de capturas de tela ao seu app e como chamá-la no teste.
Após o teste ser executado, você pode rever as capturas no Android Studio ou no Console do Firebase.
Adicionar uma biblioteca de captura de tela ao seu projeto
No Android Studio, abra a visualização Project e clique com o botão direito do mouse no nome do projeto. Em seguida, clique em New > Directory.
Na caixa de diálogo New Directory, digite aars. Isso cria um diretório aars na raiz do seu projeto de teste (como um diretório de mesmo nível para a pasta app).
Copie cloudtestingscreenshotter_lib.aar e cole-o na pasta aars.
No arquivo
build.gradle
no nível raiz (para envolvidos no projeto) do app, adicione uma referência à pasta aars em cada blocorepositories
:repositories { jcenter() flatDir { dirs '../aars' } } ...
No diretório de nível superior do módulo (para o app de exemplo NotePad, este é o diretório app), abra o arquivo
build.gradle
e adicione uma dependência a cloudtestingscreenshotter_lib.aar para o blocodependencies
de nível superior:dependencies { // Cloud testing androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar') // Other dependencies go here }
No arquivo
AndroidManifest.xml
, especifique as permissões do sistema para seu app adicionando as seguintes linhas na tag<manifest>
. Se você estiver testando no Android 10 (API de nível 29) ou posterior, omita a permissãoWRITE_EXTERNAL_STORAGE
. Seu app não exige essa permissão para ler e gravar capturas de tela no dispositivo.<manifest ... > <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET"/> ... </manifest>
Realizar uma captura de tela do seu teste
Quando quiser realizar uma captura de tela no seu teste, chame o método ScreenShotter.takeScreenshot
da biblioteca cloudtestingscreenshotter_lib, em que o primeiro argumento é um rótulo que você usa para identificar a captura de tela (main_screen_2
é usado no exemplo abaixo):
Java
ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);
Kotlin+KTX
ScreenShotter.takeScreenshot("main_screen_2", this /* activity */)
Ver capturas de tela
Depois que o teste for concluído, será possível comparar as capturas de tela coletadas. Para isso, selecione um elemento na árvore de resultados do teste e clique na opção View Screenshots .
É possível selecionar e comparar capturas de tela de diferentes configurações, conforme mostrado abaixo:
Tarefa | Ação |
---|---|
Alternar entre execuções de teste. | Use o menu suspenso no canto superior esquerdo.![]() |
Alternar entre capturas de tela em uma execução de teste. | Use as setas no canto superior direito.![]() |
Adicionar painéis extras de comparação de capturas de tela ao modo de exibição atual. | Clique em Compare.![]() |
Escolher uma dimensão de teste diferente (tipo de dispositivo, orientação, local etc.). | Selecione um novo membro de dimensão na lista, na parte inferior da captura de tela. |