

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á.

# Instrumentação para Android e AWS Device Farm
<a name="test-types-android-instrumentation"></a>

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](https://github.com/awslabs/aws-device-farm-sample-app-for-android) está disponível para download em GitHub.

Para acessar mais informações sobre testes no Device Farm, consulte [Frameworks de teste e testes integrados no AWS Device Farm](test-types.md).

**Topics**
+ [O que é instrumentação?](#test-types-android-instrumentation-what-is)
+ [Considerações sobre testes de instrumentação do Android](#test-types-android-instrumentation-settings)
+ [Análise de teste em modo padrão](#test-types-android-standard-mode-test-parse)
+ [Integrar a instrumentação do Android ao Device Farm](test-types-android-instrumentation-integrate.md)

## O que é instrumentação?
<a name="test-types-android-instrumentation-what-is"></a>

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](https://developer.android.com/studio/test/test-in-android-studio#test_types_and_locations) na seção *Test types and locations* da documentação de *Android Developer Tools*.

## Considerações sobre testes de instrumentação do Android
<a name="test-types-android-instrumentation-settings"></a>

Ao usar a instrumentação do Android, pense nas recomendações e observações a seguir.

**Conferir a compatibilidade do sistema operacional Android**  
 Confira a [documentação do Android](https://developer.android.com/jetpack/androidx/releases/test#orchestrator-1.5.0) para garantir que a instrumentação seja compatível com sua versão do sistema operacional Android. 

**Executar pela linha de comando**  
 Para executar testes de instrumentação na linha de comando, siga a [documentação do Android](https://developer.android.com/training/testing/instrumented-tests/androidx-test-libraries/runner#enable-command). 

**Animações de sistema**  
 De acordo com a [Android documentation for Espresso testing](https://developer.android.com/training/testing/espresso), 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 [JUnitandroid.support.test.runner.Android](http://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner.html) Runner.

**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
<a name="test-types-android-standard-mode-test-parse"></a>

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](https://github.com/linkedin/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: 

1. Faça download do binário [https://github.com/linkedin/dex-test-parser](https://github.com/linkedin/dex-test-parser).

1. 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
   ```