As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Trabalhando com instrumentação para Android e AWS Device Farm
O Device Farm fornece suporte para Instrumentação (JUnit, Espresso, Robotium ou qualquer teste baseado em instrumentação) para Android.
O Device Farm também fornece uma aplicação Android de amostra e links para testes funcionais em três estruturas de automação do Android, incluindo Instrumentation (Espresso). O aplicativo de amostra Device Farm para Android
Tópicos
O que é instrumentação?
A instrumentação do Android possibilita chamar métodos de retorno de chamada no código de teste, de maneira que você possa percorrer o ciclo de vida de um componente passo a passo, como se estivesse depurando o componente. Para obter mais informações, consulte Instrumented tests
Upload dos testes de instrumentação para Android
Use o console do Device Farm para carregar seus testes.
-
Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm
. -
No painel de navegação do Device Farm, escolha Teste para dispositivos móveis e, em seguida, Projetos.
-
Na lista de projetos, escolha o projeto para o qual deseja carregar seus testes.
dica
Você pode usar a barra de pesquisa para filtrar a lista de projetos por nome.
Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm.
-
Se o botão Criar uma nova execução for exibido, escolha-o.
-
Na página Escolher aplicação, selecione Escolher arquivo.
-
Procure e escolha o arquivo de seu aplicativo Android. O arquivo deve ser .apk.
-
Escolha Próximo.
-
Na página Configurar, na seção Configurar estrutura para testes, escolha Instrumentação e, em seguida, selecione Escolher arquivo.
-
Procure e escolha o arquivo .apk que contém os testes.
-
Escolha Próximo e conclua as instruções restantes para selecionar dispositivos e iniciar a execução.
Fazer captura de telas em testes de instrumentação para Android
Você pode fazer capturas de tela como parte dos testes de instrumentação para Android.
Para fazer a captura de telas, chame um dos seguintes métodos:
-
Para Robotium, chame o método
takeScreenShot
(por exemplo,solo.takeScreenShot();
). -
Para Spoon, chame o método
screenshot
; por exemplo:Spoon.screenshot(activity, "initial_state"); /* Normal test code... */ Spoon.screenshot(activity, "after_login");
Durante uma execução de teste, o Device Farm obtém capturas de tela dos seguintes locais nos dispositivos, se existirem, e as adiciona aos relatórios de teste:
-
/sdcard/robotium-screenshots
-
/sdcard/test-screenshots
-
/sdcard/Download/spoon-screenshots/
test-class-name
/test-method-name
-
/data/data/
application-package-name
/app_spoon-screenshots/test-class-name
/test-method-name
Considerações adicionais para os testes de instrumentação para Android
- Animações de sistema
-
De acordo com a Android documentation for Espresso testing
, recomenda-se que as animações do sistema sejam desativadas ao testar em dispositivos reais. O Device Farm desativa automaticamente as configurações Window Animation Scale, Transition Animation Scale e Animator Duration Scale quando executado com o executor de testes de instrumentação android.support.test.runner.A Runner. ndroidJUnit - Gravadores de teste
-
O Device Farm oferece suporte a estruturas, como Robotium, que têm record-and-playback ferramentas de script.
Análise de teste em modo padrão
No modo padrão de uma execução, o Device Farm analisa sua suíte de testes e identifica as classes e métodos de teste exclusivos que ela executará. Isso é feito por meio de uma ferramenta chamada Dex Test Parser
Quando recebe um arquivo.apk de instrumentação do Android como entrada, o analisador retorna os nomes dos métodos totalmente qualificados dos testes que correspondem às convenções JUnit 3 e 4. JUnit
Para testar isso em um ambiente local:
-
Faça download do binário
dex-test-parser
. -
Execute o comando a seguir para obter a lista de métodos de teste que serão executados no Device Farm:
java -jar parser.jar path/to/apk path/for/output