

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Instrumentación para Android y AWS Device Farm
<a name="test-types-android-instrumentation"></a>

Device Farm ofrece soporte para instrumentación (EspressoJUnit, Robotium o cualquier prueba basada en instrumentación) para Android.

Device Farm también ofrece una aplicación Android de ejemplo y enlaces a pruebas activas en tres marcos de automatización de Android, incluida la instrumentación (Espresso). La [aplicación de muestra Device Farm para Android](https://github.com/awslabs/aws-device-farm-sample-app-for-android) está disponible para su descarga en GitHub.

Para obtener más información sobre las pruebas en Device Farm, consulte [Marcos de pruebas y pruebas integradas en AWS Device Farm](test-types.md).

**Topics**
+ [¿Qué es la instrumentación?](#test-types-android-instrumentation-what-is)
+ [Consideraciones sobre las pruebas de instrumentación de Android](#test-types-android-instrumentation-settings)
+ [Análisis de prueba en modo estándar](#test-types-android-standard-mode-test-parse)
+ [Integración de la instrumentación de Android con Device Farm](test-types-android-instrumentation-integrate.md)

## ¿Qué es la instrumentación?
<a name="test-types-android-instrumentation-what-is"></a>

La instrumentación para Android le permite invocar métodos de devolución de llamada en el código de la prueba, de manera que pueda seguir paso a paso todo el ciclo de vida de un componente como si lo estuviera depurando. Para obtener más información, consulte [Instrumented tests (Pruebas instrumentalizadas)](https://developer.android.com/studio/test/test-in-android-studio#test_types_and_locations) en la sección *Aspectos básicos de las pruebas* de la documentación *Herramientas para el desarrollador de Android*.

## Consideraciones sobre las pruebas de instrumentación de Android
<a name="test-types-android-instrumentation-settings"></a>

Al utilizar la instrumentación de Android, tenga en cuenta las siguientes recomendaciones y notas.

**Comprobación de la compatibilidad con el sistema operativo Android**  
 Consulte la [documentación de Android](https://developer.android.com/jetpack/androidx/releases/test#orchestrator-1.5.0) para asegurarse de que la instrumentación sea compatible con su versión del sistema operativo Android. 

**Instalación desde la línea de comandos**  
 Para ejecutar las pruebas de instrumentación desde la línea de comandos, consulte la [Documentación de Android](https://developer.android.com/training/testing/instrumented-tests/androidx-test-libraries/runner#enable-command). 

**Animaciones del sistema**  
 Según la [documentación de Android para pruebas de Espresso](https://developer.android.com/training/testing/espresso), se recomienda que las animaciones del sistema estén desactivadas al realizar pruebas en dispositivos reales. Device Farm deshabilita automáticamente los ajustes **Window Animation Scale**, **Transition Animation Scale y Animator** **Duration Scale** cuando se ejecuta con el ejecutor de pruebas de instrumentación [android.support.test.Runner.Android Runner. JUnit](http://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner.html)

**Grabadores de pruebas**  
Device Farm admite marcos, como Robotium, que tienen herramientas de record-and-playback creación de scripts.

## Análisis de prueba en modo estándar
<a name="test-types-android-standard-mode-test-parse"></a>

En el modo estándar de ejecución, Device Farm analiza el conjunto de pruebas e identifica las clases y métodos de prueba únicos que se ejecutarán. Esto se hace a través de una herramienta llamada [Dex Test Parser](https://github.com/linkedin/dex-test-parser). 

Cuando se introduce un archivo.apk de instrumentación de Android como entrada, el analizador devuelve los nombres de métodos completos de las pruebas que coinciden con JUnit las convenciones 3 y 4. JUnit 

Para probar esto en un entorno local: 

1. Descargue el documento binario [https://github.com/linkedin/dex-test-parser](https://github.com/linkedin/dex-test-parser).

1. Ejecute el siguiente comando para obtener la lista de métodos de prueba que se ejecutarán en Device Farm:

   ```
   java -jar parser.jar path/to/apk path/for/output
   ```

# Integración de la instrumentación de Android con Device Farm
<a name="test-types-android-instrumentation-integrate"></a>

**nota**  
Siga estas instrucciones para integrar las pruebas de instrumentación de Android con AWS Device Farm. Para obtener más información sobre las pruebas de instrumentación en Device Farm, consulte [Instrumentación para Android y AWS Device Farm](test-types-android-instrumentation.md). 

## Carga de las pruebas de instrumentación para Android
<a name="test-types-android-instrumentation-upload"></a>

Utilice la consola de Device Farm para cargar las pruebas.

1. Inicie sesión en la consola de Device Farm en [https://console.aws.amazon.com/devicefarm.](https://console.aws.amazon.com/devicefarm)

1. En el panel de navegación de Device Farm, seleccione **Pruebas de dispositivos móviles** y, a continuación, seleccione **Proyectos**.

1. En la lista de proyectos, seleccione el proyecto en el que desea cargar las pruebas.
**sugerencia**  
Puede utilizar la barra de búsqueda para filtrar la lista de proyectos por nombre.  
Para crear un proyecto, siga las instrucciones de [Creación de un proyecto en AWS Device Farm](how-to-create-project.md).

1. Seleccione **Crear regla**.

1. En **Seleccionar aplicación**, en la sección **Opciones de selección de aplicaciones**, elija **Cargar aplicación propia**.

1. Busque y elija el archivo de aplicación de Android. El archivo debe ser un archivo .apk.

1. En la página **Configurar prueba**, en la sección **Seleccionar marco de pruebas**, elija **Instrumentación** y, a continuación, **Elegir archivo**.

1. Busque y elija el archivo .apk que contiene las pruebas.

1. Complete el resto de instrucciones para seleccionar dispositivos e inicie la ejecución.

## (Opcional) Capturas de pantalla en pruebas de instrumentación de Android
<a name="test-types-android-instrumentation-screenshots"></a>

Puede realizar capturas de pantalla como parte de las pruebas de instrumentación para Android.

Para realizar capturas de pantalla, llame a uno de los siguientes métodos:
+ Para Robotium, llame al método `takeScreenShot` (por ejemplo, `solo.takeScreenShot();`).
+ Para Spoon, llame al método `screenshot`, por ejemplo:

  ```
  Spoon.screenshot(activity, "initial_state");
  /* Normal test code... */
  Spoon.screenshot(activity, "after_login");
  ```

Durante una ejecución de prueba, Device Farm obtiene automáticamente capturas de pantalla de las siguientes ubicaciones de los dispositivos, si las hay. A continuación, las añade a los informes de las pruebas:
+ `/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`