UI Automator es un framework de prueba de la IU adecuado para pruebas funcionales de IU entre aplicaciones en todo el sistema y en apps instaladas.
El marco de trabajo de pruebas de UI Automator proporciona un conjunto de API para compilar pruebas de IU que realizan interacciones en las apps del usuario y las app del sistema. Las API de UI Automator te permiten realizar operaciones como abrir el menú Configuración o el lanzador de apps en un dispositivo de prueba. El marco de trabajo de prueba de UI Automator es adecuado para escribir pruebas automatizadas de estilo "caja negra", donde el código de prueba no se basa en detalles de implementación internos de la app de destino.
Estas son algunas de las funciones clave del framework de prueba de UI Automator:
- Un visor para inspeccionar la jerarquía de diseño. Para obtener más información, consulta UI Automator Viewer.
- Una API para obtener información de estado y realizar operaciones en el dispositivo de destino. Para obtener más información, consulta Cómo acceder al estado del dispositivo.
- API compatibles con pruebas de IU entre apps. Para obtener más información, consulta API de UI Automator.
UI Automator Viewer
La herramienta uiautomatorviewer
proporciona una GUI conveniente para escanear y analizar los componentes de la IU que se muestran actualmente en un dispositivo Android. Puedes usar esta herramienta para inspeccionar la jerarquía de diseño y ver las propiedades de los componentes de la IU visibles en primer plano en el dispositivo. Esta información te permite crear pruebas más específicas usando UI Automator; por ejemplo, mediante la creación de un selector de IU que coincida con una propiedad visible específica.
La herramienta uiautomatorviewer
se ubica en el directorio <android-sdk>/tools/bin
.
Cómo acceder al estado del dispositivo
El framework de prueba de UI Automator proporciona una clase UiDevice
para acceder al dispositivo en el cual se ejecuta una app de destino y realizar operaciones en él. Puedes llamar a los métodos correspondientes para acceder a las propiedades del dispositivo, como la orientación o el tamaño de pantalla actuales. La clase UiDevice
también te permite realizar acciones como las siguientes:
- Cambiar la rotación del dispositivo.
- Presionar una tecla de hardware, como "subir volumen".
- Presionar los botones Atrás, Página principal o Menú.
- Abrir el panel de notificaciones.
- Tomar una captura de pantalla de la ventana actual.
Por ejemplo, para simular la acción de presionar del botón de inicio, llama al método UiDevice.pressHome()
.
API de UI Automator
Las API de UI Automator te permiten escribir pruebas eficaces sin necesidad de conocer detalles sobre la implementación de la app a la que apuntas. Puedes usar estas API para capturar y manipular los componentes de la IU en varias apps:
UiCollection
: enumera los elementos de IU de un contenedor para el conteo o la orientación de subelementos a través de su texto visible o su propiedad de descripción de contenido.UiObject
: representa un elemento de la IU que es visible en el dispositivo.UiScrollable
: proporciona compatibilidad con la búsqueda de elementos en un contenedor de IU desplazable.UiSelector
: representa una búsqueda para uno o más elementos de la IU de destino en un dispositivo.Configurator
: te permite establecer parámetros clave para ejecutar pruebas de UI Automator.
Por ejemplo, en el siguiente código, se muestra cómo escribir una secuencia de comandos de prueba que muestra el selector de aplicaciones predeterminado en el dispositivo:
Kotlin
device = UiDevice.getInstance(getInstrumentation()) device.pressHome() // Bring up the default launcher by searching for a UI component // that matches the content description for the launcher button. val allAppsButton: UIObject = device.findObject( UiSelector().description("Apps")) // Perform a click on the button to load the launcher. allAppsButton.clickAndWaitForNewWindow()
Java
device = UiDevice.getInstance(getInstrumentation()); device.pressHome(); // Bring up the default launcher by searching for a UI component // that matches the content description for the launcher button. UiObject allAppsButton = device .findObject(new UiSelector().description("Apps")); // Perform a click on the button to load the launcher. allAppsButton.clickAndWaitForNewWindow();
Para obtener más información sobre el uso de UI Automator, consulta la guía de referencia de la API y de Cómo probar la IU para varias apps.
Recursos adicionales
Para obtener más información sobre el uso de UI Automator en las pruebas de Android, consulta los siguientes recursos.
Muestras
- BasicSample: muestra básica de UI Automator