Prueba Robo de Firebase Test Lab

La prueba Robo es una herramienta de pruebas integrada en Firebase Test Lab. La prueba Robo analiza la estructura de la IU de tu app, la explora metódicamente y simula las actividades de un usuario de manera automática. A diferencia de la prueba Exerciser Monkey para IU/aplicaciones, la prueba Robo siempre simula las mismas actividades del usuario en el mismo orden cuando la usas para probar una app en una configuración del dispositivo específica con los mismos ajustes. Esto te permite usar la prueba Robo para validar soluciones de errores y probar regresiones de una forma que no es posible cuando se ejecutan pruebas con la prueba Exerciser Monkey para IU/aplicaciones.

La prueba Robo captura los archivos de registro, guarda una serie de capturas de pantalla con anotaciones y crea un video a partir de las capturas de pantalla para mostrarte las operaciones que realizó el usuario simulado. Estos registros, capturas de pantalla y videos te pueden ayudar a determinar la causa raíz de las fallas de tu app y también te pueden ayudar a encontrar errores en su IU.

Estadísticas de rastreo de la prueba Robo

Para ayudarte a interpretar los resultados de tu prueba Robo, Robo graba estadísticas durante cada rastreo de prueba. Test Lab muestra las estadísticas en la parte superior de la pestaña Robo en la página de resultados de tu prueba:

  • Acciones: la cantidad total de acciones realizadas durante el rastreo, incluidas las acciones de secuencias de comandos de Robo, acciones de ensayo y error aleatorias y directivas de Robo
  • Actividades: la cantidad de actividades distintas cubiertas durante el rastreo.
  • Pantallas: la cantidad de pantallas distintas que se revisaron durante el rastreo.

Test Lab también usa las estadísticas para crear una representación visual del rastreo de Robo en forma de un gráfico de rastreo. El gráfico tiene pantallas como sus nodos y acciones como sus perímetros. Si sigues los perímetros entre pantallas, puedes tener una idea de cómo Robo recorrió tu app durante todo el rastreo.

Tiempo de espera de la prueba Robo

Según la complejidad de la IU de tu app, la prueba Robo podría tardar cinco minutos o más en completar un conjunto meticuloso de interacciones de IU. Te recomendamos establecer el tiempo de espera de la prueba en al menos 120 segundos (2 minutos) para la mayoría de las apps, y en 300 segundos (5 minutos) para las apps de complejidad moderada. El valor predeterminado del tiempo de espera es de 300 segundos (5 minutos) para las pruebas que se ejecutan desde Android Studio y Google Developer Console, y de 1,500 segundos (25 minutos) para las pruebas que se ejecutan desde la línea de comandos de gcloud.

Errores de tiempo de espera de inicio de la app

Si tu app tarda mucho tiempo en iniciarse, Robo puede arrojar un error y no podrá rastrearla. Esto solo ocurre en casos en los que el tiempo de inicio es extremadamente largo y solo puede resolverse si revisas tu app para que se inicie más rápido.

Más control con las secuencias de comandos de Robo

A veces necesitas más control sobre tus pruebas. Por ejemplo, es posible que desees probar un recorrido de usuario común o proporcionar una entrada específica en la IU (p. ej., un nombre de usuario y una contraseña). Las secuencias de comandos de Robo pueden ayudar.

Con las secuencias de comandos de Robo, 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 las 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 normalmente.

Comienza a utilizar las secuencias de comandos de Robo a través de la herramienta de Firebase en Android Studio:

  1. Abre Android Studio.
  2. En el menú principal, selecciona Herramientas > Firebase.
  3. Selecciona Test Lab y haz clic en Grabar secuencia de comandos de Robo y utilizar para guiar la prueba Robo.
  4. Sigue el resto de los pasos en la herramienta para grabar tu secuencia de comandos de Robo.
  5. Sube esa secuencia de comandos de Robo al Test Lab y comienza tu prueba.

Errores de la secuencia de comandos de Robo

Si la secuencia de comandos de Robo falla en algún punto, Test Lab abandona todos los demás pasos en la secuencia y reanuda un rastreo regular de Robo. Más frecuentemente, las secuencias de comandos de Robo fallan porque Test Lab no puede encontrar un elemento necesario en la pantalla. Para evitar fallas, asegúrate de que la navegación de tu app sea predecible y que tus pantallas no se muestren en un orden no determinista.

Pruebas Robo y widgets sin la IU de Android

Las pruebas Robo usan la API de Android para realizar acciones en los widgets con la IU de Android directamente. Esto ayuda a que las pruebas exploren tu IU automáticamente, pero también significa que tendrán que poder extraer una jerarquía de IU de Android de una pantalla con el fin de ejecutar pruebas en ella.

Si una pantalla en tu app no usa los widgets con la IU de Android, las pruebas Robo se apoyarán en las acciones de prueba semialeatorias para probar esa pantalla. A diferencia de las acciones más metódicas de Robo, las acciones de prueba semialeatorias simplemente simulan eventos de toque en ubicaciones semialeatorias en la pantalla de un dispositivo.

Para probar mejor las pantallas que no usan widgets con la IU de Android, puedes reemplazar los toques arbitrarios de una acción aleatoria con un conjunto de interacciones y toques definidos a través de las pruebas de bucle de juego de Firebase Test Lab.

Integración con Google Play

Puedes usar la prueba Robo en Google Play Console cuando subes y publicas el archivo APK de la app con el canal Alpha o el Beta. La prueba Robo se ejecuta en un conjunto común de dispositivos físicos desde diferentes ubicaciones geográficas, por lo que se realiza en varios factores de forma y configuraciones de hardware. Para obtener más información, consulta cómo usar informes previos al lanzamiento para identificar problemas.

Prueba el acceso a la cuenta y la entrada de texto predefinida

La prueba Robo permite acceder a cuentas de prueba y también te permite ingresar un texto predefinido en los campos de la app. Para el acceso personalizado y otras entradas de texto predefinidas, la prueba Robo puede ingresar texto en los campos EditText de tu app. Para cada string, debes identificar el campo EditText con el nombre de un recurso de Android. Para obtener más información, consulta el acceso a recursos.

Acceso

La prueba Robo tiene dos métodos mutuamente exclusivos para admitir el acceso:

  • Acceso personalizado: Si proporcionas las credenciales de una cuenta de prueba, debes indicarle a la prueba Robo dónde ingresarlas.
  • Acceso automático: Si la app tiene una pantalla de acceso que usa una cuenta de Google para la autenticación, la prueba Robo usa una cuenta de prueba de Google, a menos que proporciones las credenciales de una cuenta de prueba para el acceso personalizado.

Para proporcionar las credenciales de una cuenta de prueba para el acceso personalizado, haz lo siguiente:

  1. En la página Seleccionar dimensiones, elige Mostrar opciones avanzadas.
  2. En Credenciales de cuenta de prueba (opcional), ingresa los nombres de los recursos de nombre de usuario y contraseña, así como el nombre de usuario y la contraseña de la cuenta de prueba.

Entrada de texto predefinida

Puedes proporcionar un texto de entrada personalizado para otros campos de texto que usa la app. Para proporcionar una entrada de texto para campos adicionales, haz lo siguiente:

  1. En la página Seleccionar dimensiones, elige Mostrar opciones avanzadas.
  2. En Campos adicionales (opcional), ingresa uno o más nombres de recursos y las strings que se ingresarán en los campos de texto correspondientes.

Errores de entradas de texto predefinidas

Robo busca en los campos EditText con un nombre de recurso de Android que coincida con una expresión regular proporcionada. Si Robo no puede encontrar un campo de coincidencia, no puede ingresar tu texto, pero continúa su rastreo de forma habitual

Puedes proporcionar hasta tres vínculos directos compatibles con tu app para las pruebas. Los vínculos directos se emiten a tu app en forma de intents ACTION_VIEW de Android. Por lo tanto, cada vínculo debe coincidir con un filtro de intents de la app.

Si se proporcionan uno o más vínculos directos, la app se inicia de forma normal primero (con el intent ACTION_MAIN) y se rastrea hasta el tiempo de espera especificado. Después del rastreo principal, cada vínculo directo se rastrea por 30 segundos más.

Si Robo no puede encontrar una actividad que coincida con tu vínculo directo, Test Lab lo ignora. Los problemas de vínculos directos, en general, son el resultado de una discrepancia entre el vínculo directo proporcionado y su definición en tu app. Revisa tanto la URL proporcionada como tu app para ver si hay errores tipográficos o cualquier otra inconsistencia.

Compatibilidad con App Licensing

Test Lab admite apps que usan el servicio de App Licensing, que ofrece Google Play. Si deseas comprobar correctamente las licencias cuando pruebas la app con Test Lab, debes publicar la app en el canal de producción de Play Store. Para probar la app en el canal Alfa o Beta mediante Test Lab, quita la comprobación de licencias antes de subir la app a Test Lab.

Problemas conocidos

Actualmente la prueba Robo tiene las siguientes limitaciones:

  • Compatibilidad con el marco de trabajo de IU. La prueba Robo solo es compatible con apps que usan elementos de IU del marco de trabajo de la IU de Android (incluidos los objetos View y ViewGroup, pero sin incluir objetos WebView). Si usas la prueba Robo con apps que usan otros marcos de trabajo de IU, incluidas las apps que usan el motor de juegos de Unity, es posible que la prueba se cierre sin explorar más allá de la primera pantalla.
  • Captchas de acceso. La prueba Robo no puede pasar las pantallas de acceso que solicitan una acción adicional del usuario, aparte de ingresar credenciales de acceso (como completar un captcha).

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.