Comienza a realizar pruebas con sistemas de CI

Puedes usar Firebase Test Lab cuando desarrolles tu app con un sistema de integración continua (CI). Los sistemas de integración continua te permiten compilar y probar automáticamente tu app cada vez que verifiques actualizaciones en el código fuente de la app.

Usa Firebase Test Lab con Jenkins CI

En esta sección se describe cómo usar Test Lab con Jenkins CI.

Requisitos

Completa los siguientes pasos antes de usar Firebase Test Lab con Jenkins:

  1. Configura gcloud. Sigue las instrucciones que se detallan en Primeros pasos con Firebase Test Lab desde la línea de comandos de gcloud para crear un proyecto de Firebase y configurar tu entorno local del SDK de Google Cloud.
  2. Crea una cuenta de servicio. Las cuentas de servicio no están sujetas a verificaciones de spam ni solicitudes de captcha, que podrían bloquear tus compilaciones de CI. Crea una cuenta de servicio con una función de Editor en Google Cloud Platform Console.
  3. Habilita las API obligatorias. Después de acceder con la cuenta de servicio, realiza lo siguiente: En la página de la biblioteca de API de Google Developers Console, habilita las API de Google Cloud Testing y de Cloud Tool Results. Para ello, ingresa los nombres de las API en el cuadro de búsqueda de la parte superior de la consola y, luego, haz clic en Enable API, en la página de descripción general de esa API.

Instala y configura Jenkins

Puedes instalar y configurar Jenkins CI en Linux o Windows. Ciertos detalles en esta guía son específicos para la instalación y ejecución de Jenkins CI en Linux, incluido el uso de barras diagonales (/) en las rutas de acceso de archivos.

Para descargar e instalar Jenkins en una computadora en la que se ejecuta Linux o Windows, sigue las instrucciones que aparecen en la página Installing Jenkins. Después de instalar Jenkins, sigue las instrucciones de la página Starting and Accessing Jenkins con el fin de completar la instalación y acceder al panel de Jenkins.

Configura las opciones de seguridad global

Jenkins no tiene la autenticación del usuario ni el control de acceso configurados cuando se instala por primera vez. Antes de usar Jenkins con Firebase Test Lab, configura las opciones de seguridad global para aplicar el control de acceso y autenticar usuarios.

Para configurar las opciones de seguridad global

  1. Navega hasta el panel de control de Jenkins en tu servidor. Para hacerlo, navega a http://<servername>:8080; <servername> es el nombre de la computadora donde instalaste Jenkins.
  2. En el panel de Jenkins, haz clic en Manage Jenkins y, luego, en Configure Global Security.
  3. En la página Configure Global Security, haz clic en Enable security y, luego, en Save.

Si quieres obtener más información sobre la configuración de seguridad para Jenkins, consulta las páginas Quick and Simple Security, Standard Security Setup y Securing Jenkins.

Cómo crear un proyecto en Jenkins

A continuación, crea un proyecto para ejecutar pruebas de integración continua de tu app con Firebase Test Lab.

Para crear un proyecto en Jenkins

  1. Navega hasta el panel de Jenkins en tu servidor. Para hacerlo, navega a http://<servername>:8080; <servername> es el nombre de la computadora donde instalaste Jenkins.
  2. En el panel de Jenkins, haz clic en New Item.
  3. Ingresa un nombre para tu proyecto en el campo Item name:
    • Selecciona Freestyle project para crear un proyecto que use una única configuración de compilación.
    • Selecciona Build multi-configuration project para crear un proyecto que se ejecute en varias configuraciones de compilación diferentes. Si planeas compilar tu app con una variedad de configuraciones de compilación (varias configuraciones regionales, varios niveles de API de Android, etc.), la mejor opción es un proyecto con múltiples configuraciones.
  4. Haz clic en Save.

Una vez creado tu proyecto, tu navegador web muestra la página principal de tu proyecto.

Cómo agregar el control de revisión y los pasos de compilación de Gradle

Esta sección describe cómo integrar Jenkins a sistemas de control de revisión, como GitHub, y cómo agregar los pasos de compilación de Gradle para compilar paquetes APK del código fuente.

Integración a GitHub y a otros sistemas de control de revisión

Si usas GitHub o un sistema de control de revisión diferente para administrar el código fuente de tu app, puedes configurar Jenkins con el fin de ejecutar compilaciones automáticas y pruebas cada vez que se verifiquen actualizaciones para tu app. También puedes configurar Jenkins para que ejecute compilaciones periódicamente.

Para obtener más información acerca de la configuración de compilaciones en Jenkins, consulta Configuring automatic builds.

Cómo agregar pasos de compilación en Gradle para recompilar paquetes APK

Si usas un sistema de control de revisión para administrar el código fuente de tu app, debes incluir un paso de compilación en Gradle para crear nuevos objetos binarios de APK cada vez que Jenkins descarga el código fuente de tu sistema de control de revisión.

  1. Agrega un paso de compilación para ejecutar los siguientes comandos en el directorio principal de tu aplicación:

    ./gradlew :app:assembleDebug
    ./gradlew :app:assembleDebugAndroidTest
    

  2. Agrega un paso de compilación para usar los paquetes de APK creados por Gradle cuando realices pruebas con Test Lab. Puedes usar esta ruta de acceso como <local_server_path> en la secuencia de comandos de shell de ejemplo que se proporciona a continuación, en la que <AppFolder> es la carpeta del proyecto de Android Studio para tu app:

    <AppFolder>/app/build/outputs/apk
    

Cómo agregar pasos de compilación de Test Lab a Jenkins

Ahora estás listo para agregar un paso de compilación a Jenkins y poder ejecutar Test Lab con la línea de comandos de gcloud.

Para agregar un paso de compilación en gcloud

  1. Desde la página principal de tu proyecto, haz clic en Configure.
  2. En la página de configuración de proyecto, desplázate hacia abajo hasta la sección Build y luego selecciona Execute shell en el menú Add build step.

  3. En la ventana Execute shell command de Jenkins, sustituye <local_server_path> por la ruta de acceso a la app de muestra en el servidor, <app_apk> por el APK de tu app y <app_test_apk> por el APK de prueba de tu app:

    gcloud firebase test android run --app <local_server_path>/<app_apk>.apk
    --test <local_server_path>/<app_test_apk>.apk
    

Analiza los resultados de la prueba

Después de completar la prueba de tu app en Test Lab, puedes revisar los resultados de la prueba en Firebase console o en un depósito de almacenamiento de Google Cloud en tu proyecto. También puedes agregar un comando de gsutil al comando de shell anterior para copiar los datos de los resultados de la prueba en tu computadora local. Para obtener más información, consulta la página Analiza los resultados de Firebase Test Lab.

Integración continua a otros sistemas de CI

Para obtener más información sobre cómo usar Firebase Test Lab con otros sistemas de CI, consulta la documentación correspondiente: