Ejecuta una secuencia de comandos de Robo (Android)

En este documento, se describe cómo usar las secuencias de comandos de Robo, que son pruebas que automatizan tareas manuales de control de calidad de apps para dispositivos móviles y habilitan las estrategias de integración continua (CI) y de pruebas previas al lanzamiento. Por ejemplo, puedes usar secuencias de comandos de Robo para probar un recorrido del usuario común o proporcionar una entrada específica de la interfaz de usuario (IU), como un nombre de usuario y una contraseña. Las secuencias de comandos de Robo son una función de la prueba Robo.

Con ellas, puedes grabar una secuencia de acciones que realices en un flujo de trabajo de tu app y, luego, subir esa grabación a Firebase console para ejecutar pruebas Robo. Cuando ejecutas una prueba Robo con una secuencia de comandos adjunta, Robo comienza por realizar las acciones predefinidas y, luego, explora la app como de costumbre.

Las secuencias de comandos de Robo usan la prueba Robo como motor de prueba. En su forma más básica, una secuencia de comandos de Robo consta de una secuencia de acciones de la IU, como ingresar texto de “nombre de usuario” y, luego, presionar el botón Aceptar. Las secuencias de comandos de Robo también pueden incluir acciones como esperar a que aparezca un elemento, presionar un punto específico dentro de un elemento y ejecutar comandos de shell de Android Debug Bridge (adb).

Las secuencias de comandos de Robo usan la prueba Robo como motor de prueba. En su forma más básica, una secuencia de comandos de Robo consta de una secuencia de acciones de la IU, como ingresar texto de “nombre de usuario” y, luego, presionar el botón Aceptar. Las secuencias de comandos de Robo también pueden incluir acciones como esperar a que aparezca un elemento, presionar un punto específico dentro de un elemento y ejecutar comandos de shell de Android Debug Bridge (adb).

Las secuencias de comandos de Robo tienen las siguientes ventajas en comparación con los frameworks de prueba tradicionales:

Capacidad Descripción
Altamente robustas Las secuencias de comandos de Robo pueden tolerar diferencias estructurales y de comportamiento significativas entre la versión de la app y la fragilidad de la app.
Final abierto Cuando se complete una secuencia de comandos de Robo, la prueba Robo base podrá tomar el control y continuar probando la app. Este enfoque de prueba continua habilita varios casos de uso clave. Por ejemplo, puedes usar una secuencia de comandos de Robo para llevar una app a un estado particular mediante un flujo de acceso personalizado.
Se pueden grabar No es necesario que escribas las secuencias de comandos de Robo de forma manual. Se pueden grabar con la grabadora de secuencias de comandos de Robo de Android Studio. Por lo general, crear o modificar secuencias de comandos de Robo no requiere ningún conocimiento de desarrollo para dispositivos móviles.
Flexible Las secuencias de comandos de Robo pueden interactuar con elementos de la IU no nativos que son comunes en los juegos.

Las secuencias de comandos de Robo se activan de forma condicional durante una prueba Robo, lo que permite a los usuarios mejorar el comportamiento de Robo, por lo general, para lograr una mayor cobertura o enfocarse en una funcionalidad específica. A diferencia de los frameworks de prueba tradicionales, las secuencias de comandos de Robo admiten lo siguiente:

  • Varias condiciones de activación, por ejemplo, que esté activo un nombre específico de paquete de app (o no) o que se muestre un elemento específico en la pantalla (o no)
  • Controles de ejecución, por ejemplo, una cantidad máxima de ejecuciones, una prioridad y una etapa de rastreo relevante
  • Tipos de acciones no convencionales (condicionales, que omitan elementos, o que cierren pantallas)

Te recomendamos que uses secuencias de comandos de Robo siempre que sea posible porque se pueden mantener sin esfuerzo. Por ejemplo, puedes usar una secuencia de comandos de Robo para lo siguiente:

  • Navegar por flujos de trabajo significativos para llegar al núcleo de la funcionalidad de una app. Por ejemplo, puedes acceder, configurar el estado de una app después del primer lanzamiento y registrar un usuario nuevo.
  • Enfocar Robo en una parte particular de una app para aprovechar al máximo el tiempo de prueba de Robo. La secuencia de comandos de Robo guía la prueba Robo para llegar a la parte relevante de una app, en la que la prueba Robo reanuda un rastreo completamente automatizado.
  • Colocar una app en un estado o una pantalla específicos para realizar un análisis, por ejemplo, a fin de analizar un mensaje desde la app, una política de privacidad o un nivel específico de un juego
  • Realizar una prueba de instrumentación de extremo a extremo, con o sin prueba de Robo para reanudar un rastreo completamente automatizado después de que se complete la secuencia de comandos de Robo

Usa funciones de secuencia de comandos de Robo más avanzadas para hacer lo siguiente:

  • Realizar acciones antes de que Robo comience a rastrear la app que está a prueba o después de que se termina de rastrear. Por ejemplo, limpiar los datos de la app que está a prueba antes de un rastreo o cambiar la configuración del dispositivo.
  • Cambiar aspectos del comportamiento de Robo durante un rastreo, particularmente los siguientes:
    • Hacer que Robo omita algunos widgets de la IU o pantallas de la app
    • Proporcionar una acción personalizada para que Robo la realice cuando haga un retroceso desde una pantalla en particular
    • Hacer que Robo realice acciones específicas cada vez que se encuentre una pantalla específica de la app durante un rastreo
  • Personalizar completamente la forma en que Robo realiza un rastreo. Por ejemplo, usar una combinación de acciones condicionales y no condicionales para mantener la app que está a prueba en segundo plano durante el rastreo, mientras se manipula el dispositivo y se descarta cualquier cuadro de diálogo emergente que aparezca

Ten en cuenta que las secuencias de comandos de Robo no reemplazan todos los tipos de pruebas. Necesitas pruebas de unidades para detectar errores lógicos de bajo nivel en la app. Estas pruebas no suelen requerir un entorno de Android o iOS. Te recomendamos que completes las pruebas de secuencias de comandos de Robo con pruebas de instrumentación orientadas que pueden tener aserciones específicas y detalladas sobre la lógica empresarial, que se expresan mejor en el código.

Graba una secuencia de comandos de Robo con Test Lab en Android Studio

La grabadora de secuencias de comandos de Robo en Android Studio te permite interactuar directamente con la app en el dispositivo para grabar secuencias de comandos de Robo. Sigue estas instrucciones para comenzar a usar la secuencia de comandos de Robo mediante la herramienta de Firebase en Android Studio:

  1. Abre Android Studio y selecciona Herramientas > Firebase.

  2. En el panel de Firebase, haz clic en Record Robo Script and Use it to Guide Robo Test.

  3. Haz clic en Record Robo script. Aparecerá el diálogo Select Deployment Target.

  4. Selecciona el dispositivo en el que quieras grabar la secuencia de comandos de Robo.

  5. Después de grabar la secuencia de comandos de Robo en el dispositivo, guarda el archivo como un archivo JSON en la ubicación deseada.

  6. Abre la página de Test Lab en Firebase console y sube el archivo de secuencia de comandos JSON y el APK de la aplicación.

  7. Haz clic en el botón Continuar. Se te pedirá que selecciones el dispositivo y el nivel de API. Una vez que se completa la secuencia de comandos de prueba, Test Lab genera el informe de prueba.

  8. Para copiar o descargar el logcat del informe de prueba y el video, haz clic en View Source Files (opcional).

De forma predeterminada, los mecanismos de solidez de la secuencia de comandos de Robo evitan que falle antes. Si eliges el modo de ejecución strict y una secuencia de comandos de Robo falla en algún momento, Test Lab abandona todos los demás pasos de la secuencia y reanuda un rastreo regular de Robo. En la mayoría de los casos, las secuencias de comandos de Robo fallan porque Robo no puede encontrar un elemento obligatorio en la pantalla. Para evitar fallas, asegúrate de que la navegación de tu app sea predecible y que tus pantallas se muestren en un orden determinista.

Ejecuta una secuencia de comandos de Robo en Test Lab

Para ejecutar una secuencia de comandos de Robo en Test Lab, sigue estas instrucciones:

  1. Abre la página Test Lab en Firebase console.

  2. Sube el archivo APK o AAB de la app en el campo AAB o APK de la app.

  3. Sube el archivo de secuencia de comandos Robo registrado o creado manualmente en el campo Secuencia de comandos de Robo (opcional).

Proporciona una secuencia de comandos de Robo a una ejecución de prueba de Robo local

Para proporcionar una secuencia de comandos de Robo a una ejecución de prueba Robo local, usa la siguiente opción:

--robo-script-file <robo-script-path>

Reemplaza <robo-script-path> por una ruta de acceso al archivo de secuencia de comandos de Robo en el sistema de archivos local. Sigue las instrucciones para una ejecución de prueba Robo local.

Especifica una secuencia de comandos de Robo en una invocación de prueba de gcloud CLI

Para especificar una secuencia de comandos de Robo en una invocación de prueba de gcloud CLI, usa la siguiente marca de gcloud CLI:

--robo-script = <robo-script-path>

Reemplaza <robo-script-path> por una ruta de acceso al archivo de secuencia de comandos de Robo en el sistema de archivos local o en Cloud Storage con la notación gs://. Por ejemplo:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

Próximos pasos