Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Comienza a realizar pruebas de instrumentación

En esta guía, se describe cómo preparar y ejecutar una prueba de instrumentación con Firebase Test Lab. Para usar esta guía, necesitas una prueba de instrumentación (escrita por ti o tu equipo) que use los frameworks de pruebas de Android Espresso o UI Automator 2.0. Las pruebas de instrumentación pueden ejecutarse hasta 45 minutos en dispositivos físicos y hasta 60 minutos en dispositivos virtuales.

En los pasos posteriores, subirás el archivo APK de la app y el de la prueba a Firebase. Consulta Prueba tu app si necesitas más información para crear un archivo APK de prueba. También puedes descargar la app de ejemplo de NotePad.

Paso 1 (opcional): Agrega la biblioteca de capturas de pantalla a tu app

Test Lab proporciona una biblioteca de capturas de pantalla que te permite tomar capturas de pantalla cuando ejecutas pruebas de instrumentación en tu app. Cuando finalice la prueba, podrás ver las capturas en Android Studio o Firebase console.

Ten en cuenta que la capacidad para tomar capturas de pantalla ya está incorporada en el APK de prueba app-debug-test-unaligned.apk y en la app de ejemplo de NotePad. También se obtienen capturas de pantalla automáticamente cuando ejecutas una prueba Robo.

  1. En Android Studio, abre la vista Project y, luego, haz clic con el botón derecho en el nombre de tu proyecto. Luego, haz clic en New > Directory.

  2. En el diálogo New directory, ingresa aars. Se creará un directorio aars en la raíz de tu proyecto de prueba (como directorio par de la carpeta app).

  3. Copia cloudtestingscreenshotter_lib.aar y pégalo en la carpeta aars.

  4. En el archivo build.gradle de nivel de raíz (nivel de proyecto) de tu app, agrega una referencia a la carpeta aars en cada bloque repositories:

    repositories {
        jcenter()
        flatDir {
            dirs '../aars'
        }
    }
    ...
  5. En el directorio de nivel superior de tu módulo (en la app de ejemplo de NotePad, este es el directorio de app), abre el archivo build.gradle y agrega una dependencia de cloudtestingscreenshotter_lib.aar al bloque dependencies de nivel superior:

    dependencies {
        // Cloud testing
        androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar')
        // Other dependencies go here
        }
    
  6. En el archivo AndroidManifest.xml, agrega las siguientes líneas a la etiqueta <manifest> para especificar los permisos de sistema de la app. Si realizas pruebas en Android 10 (nivel de API 29) o versiones posteriores, omite el permiso WRITE_EXTERNAL_STORAGE (la app no requiere este permiso para leer y escribir capturas de pantalla en el 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>
    

Cuando quieras tomar una captura de pantalla de la prueba, llama al método ScreenShotter.takeScreenshot desde la biblioteca cloudtestingscreenshotter_lib, en la que el primer argumento es una etiqueta que usas para identificar la captura de pantalla (en el siguiente ejemplo, se usa main_screen_2):

Java

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);

Kotlin+KTX

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */)

Mira tus capturas de pantalla

Si usas Android Studio para ejecutar la prueba, cuando esta termine, podrás comparar las capturas de pantalla que se tomaron durante la prueba. Para ello, selecciona un elemento del árbol de resultados de la prueba y haz clic en la opción View Screenshots Mira las capturas de pantalla.

Comparación de capturas de pantalla

Puedes seleccionar y comparar capturas de pantalla de distintas configuraciones de la siguiente manera:

Tarea Acción
Cambiar de una ejecución de prueba a otra Usa el menú desplegable de la esquina superior izquierda.

menú de casos de prueba
Cambiar de una captura de pantalla a otra dentro de la misma ejecución de prueba Usa las flechas de la esquina superior derecha.

Selector de capturas de pantalla
Agregar paneles adicionales de comparación de capturas de pantalla a la vista actual Haz clic en Compare.

Comparar
Seleccionar otra dimensión de prueba (tipo de dispositivo, orientación, configuración regional, etc.) Selecciona un miembro de dimensión nuevo de la lista que se encuentra en la parte inferior de la captura de pantalla.

Paso 2: Habilita funciones de prueba opcionales

Puedes habilitar las siguientes funciones en tu prueba antes de ejecutarla con Test Lab:

Habilita Orchestrator

Android Test Orchestrator es una herramienta que ejecuta cada una de las pruebas de instrumentación de la app de forma independiente. Test Lab siempre usa la versión más reciente de Orchestrator.

Si quieres habilitar Orchestrator para Test Lab, en la configuración de pruebas de instrumentación, haz clic en Opciones adicionales > Ejecutar con Orchestrator.

Beneficios y desventajas

  • Beneficio: Sin estado compartido. Cada prueba se ejecuta en su propia instancia de instrumentación, por lo que no se acumula el estado compartido entre ellas.
  • Beneficio: Fallas aisladas. Si falla una prueba, solo se interrumpe su propia instancia de instrumentación, por lo que las demás pruebas se mantienen activas.
  • Desventaja: Tiempos de ejecución más extensos. Cada prueba ejecuta su propia instancia de instrumentación, por lo que el proceso de prueba tarda un poco más en general. Si no se verifica, el aumento en los tiempos de ejecución podría afectar el uso de la cuota o el tiempo de facturación y hacer que alcances los límites de tiempo de espera de tus dispositivos.

Habilita la fragmentación

Con la fragmentación de pruebas, se divide un conjunto de pruebas en subgrupos (fragmentos) que se ejecutan por separado de forma aislada. Test Lab ejecuta automáticamente cada fragmento en paralelo con varios dispositivos y completa todo el conjunto de pruebas en menos tiempo.

Cómo funciona la fragmentación de pruebas

Supongamos que creas N fragmentos. Por cada dispositivo que selecciones, Test Lab inicia N dispositivos idénticos y ejecuta un subconjunto de las pruebas en cada dispositivo. Esto significa que los casos de prueba fragmentados pueden generar varias ejecuciones de prueba por dispositivo, a diferencia de los casos de prueba no fragmentados, que siempre realizan una ejecución de prueba por dispositivo (para obtener una descripción general rápida de los conceptos clave en Test Lab, consulta Conceptos clave).

Puedes habilitar la fragmentación de pruebas en Firebase console con estos pasos:

  1. En la configuración de la prueba de instrumentación, haz clic en Opciones adicionales.

  2. En la sección Fragmentación, ingresa la cantidad de fragmentos que quieres ejecutar.

Facturación por fragmentos de prueba

Test Lab aprovecha el mecanismo de fragmentación integrado de AndroidJUnitRunner para implementar tus fragmentos. Para evitar que se te cobre por iniciar fragmentos vacíos (fragmentos sin casos de prueba asignados), la cantidad de fragmentos que crees debe ser menor que la cantidad total de casos de prueba. Según cuánto tarde en ejecutarse cada caso de prueba, por lo general, se recomienda asignar de 2 a 10 casos de prueba por fragmento.

Para obtener más detalles sobre la facturación, consulta el artículo sobre uso, cuotas y facturación.