Compartir a través de


Uso de automatización de la interfaz de usuario para pruebas automatizadas

Nota:

Esta documentación está pensada para desarrolladores de .NET Framework que desean usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para obtener la información más reciente sobre la automatización de la interfaz de usuario, consulte API de Windows Automation: Automatización de la interfaz de usuario.

En esta introducción se describe cómo La automatización de la interfaz de usuario de Microsoft puede ser útil como marco para el acceso mediante programación en escenarios de pruebas automatizadas.

La automatización de la interfaz de usuario proporciona un modelo de objetos unificado que permite que todos los marcos de interfaz de usuario (UI) expongan funcionalidades complejas y enriquecidas de forma fácil y accesible.

La automatización de la interfaz de usuario se desarrolló como sucesora de la accesibilidad activa de Microsoft. La accesibilidad activa es un marco existente diseñado para proporcionar una solución para hacer que los controles y las aplicaciones sean accesibles. La accesibilidad activa no se diseñó teniendo en cuenta la automatización de pruebas, aunque evolucionó en ese rol debido a los requisitos muy similares de accesibilidad y automatización. La automatización de la interfaz de usuario, además de proporcionar soluciones más refinadas para la accesibilidad, también está diseñada específicamente para proporcionar una funcionalidad sólida para las pruebas automatizadas. Por ejemplo, La accesibilidad activa se basa en una única interfaz para exponer información sobre la interfaz de usuario y recopilar la información necesaria para los productos AT; La automatización de la interfaz de usuario separa los dos modelos.

Tanto un proveedor como un cliente son necesarios para implementar automatización de la interfaz de usuario para que sea útil como una herramienta de prueba automatizada. Los proveedores de automatización de la interfaz de usuario son aplicaciones como Microsoft Word, Excel y otras aplicaciones o controles de terceros basados en el sistema operativo Microsoft Windows. Los clientes de automatización de la interfaz de usuario incluyen scripts de prueba automatizados y aplicaciones de tecnología de asistencia.

Nota:

La intención de esta introducción es mostrar las nuevas y mejoradas funcionalidades de pruebas automatizadas de automatización de la interfaz de usuario. Esta información general no está pensada para proporcionar información sobre las características de accesibilidad y no abordará la accesibilidad que no sea cuando sea necesario.

Automatización de la interfaz de usuario en un proveedor

Para que una interfaz de usuario se automatice, un desarrollador de una aplicación o control debe examinar qué acciones puede realizar un usuario final en el objeto de interfaz de usuario mediante la interacción estándar del teclado y el mouse.

Una vez identificadas estas acciones clave, los patrones de control de automatización de la interfaz de usuario correspondientes (es decir, los patrones de control que reflejan la funcionalidad y el comportamiento del elemento de la interfaz de usuario) deben implementarse en el control. Por ejemplo, la interacción del usuario con un control de cuadro combinado (como el cuadro de diálogo ejecutar) suele implicar expandir y contraer el cuadro combinado para ocultar o mostrar una lista de elementos, seleccionar un elemento de esa lista o agregar un nuevo valor a través de la entrada del teclado.

Nota:

Con otros modelos de accesibilidad, los desarrolladores deben recopilar información directamente de botones individuales, menús u otros controles. Desafortunadamente, cada tipo de control viene en docenas de variaciones menores. En otras palabras, aunque diez variaciones de un botón pulsador puedan funcionar de la misma manera y realizar la misma función, todas deben tratarse como controles únicos. No hay forma de saber que estos controles son funcionalmente equivalentes. Los patrones de control se desarrollaron para representar estos comportamientos de control comunes. Para obtener más información, consulte Ui Automation Control Patterns Overview(Introducción a los patrones de control de automatización de la interfaz de usuario).

Implementación de automatización de la interfaz de usuario

Como se mencionó anteriormente, sin el modelo unificado proporcionado por la automatización de la interfaz de usuario, las herramientas de prueba y los desarrolladores deben conocer información específica del marco para exponer propiedades y comportamientos de los controles en ese marco. Dado que puede haber varios marcos de interfaz de usuario diferentes presentes en cualquier momento en sistemas operativos Windows, como Win32, Windows Forms y Windows Presentation Foundation (WPF), puede ser una tarea intimidante probar varias aplicaciones con controles que parecen similares. Por ejemplo, en la tabla siguiente se describen los nombres de propiedad específicos del marco necesarios para recuperar el nombre (o texto) asociado a un control de botón y se muestra la propiedad de automatización de la interfaz de usuario equivalente única.

Tipo de control de automatización de la interfaz de usuario Marco de interfaz de usuario Propiedad específica de marco de trabajo Ui Automation (propiedad)
Botón Windows Presentation Foundation Contenido NombrePropiedad
Botón Win32 Subtítulo NombrePropiedad
Imagen HTML Alt NombrePropiedad

Los proveedores de automatización de la interfaz de usuario son responsables de asignar las propiedades específicas del marco de trabajo de sus controles a las propiedades equivalentes de automatización de la interfaz de usuario.

Puede encontrar información sobre la implementación de automatización de la interfaz de usuario en un proveedor en Proveedores de automatización de la interfaz de usuario para código administrado. La información sobre la implementación de patrones de control está disponible en Patrones de control de automatización de la interfaz de usuario y Patrón de texto de automatización de la interfaz de usuario.

Automatización de la interfaz de usuario en un cliente

El objetivo de muchas herramientas y escenarios de prueba automatizados es la manipulación coherente y repetible de la interfaz de usuario. Esto puede involucrar la prueba unitaria de controles específicos hasta la grabación y reproducción de guiones de prueba que recorren una serie de acciones genéricas en un grupo de controles.

Una complicación que surge de las aplicaciones automatizadas es la dificultad para sincronizar una prueba con un destino dinámico. Por ejemplo, un control de cuadro de lista, como uno contenido en el Administrador de tareas de Windows, que muestra una lista de aplicaciones que se están ejecutando actualmente. Dado que los elementos del cuadro de lista se actualizan dinámicamente fuera del control de la aplicación de prueba, es imposible intentar repetir la selección de un elemento específico en el cuadro de lista con cualquier coherencia. También pueden surgir problemas similares al intentar repetir cambios de foco simples en una interfaz de usuario que está fuera del control de la aplicación de prueba.

Acceso mediante programación

El acceso mediante programación proporciona la capacidad de imitar, a través del código, cualquier interacción y experiencia expuesta por la entrada tradicional del mouse y el teclado. Automatización de la interfaz de usuario permite el acceso mediante programación a través de cinco componentes:

Propiedades clave para la automatización de pruebas

La capacidad de identificar y localizar posteriormente cualquier control dentro de la interfaz de usuario proporciona la base para que las aplicaciones de prueba automatizadas funcionen en esa interfaz de usuario. Hay varias propiedades de Automatización de la interfaz de usuario de Microsoft usadas por clientes y proveedores que ayudan en esto.

AutomationID

Identifica de manera única un elemento de automatización de sus elementos del mismo nivel. AutomationIdProperty no se localiza, a diferencia de una propiedad como NameProperty, que por lo general se localiza si un producto se envía en varios idiomas. Vea Use the AutomationID Property.

Nota:

AutomationIdProperty no garantiza una identidad única en todo el árbol de automatización. Por ejemplo, una aplicación puede contener un control de menú con varios elementos de menú de nivel superior que, a su vez, tienen varios elementos de menú secundarios. Estos elementos de menú secundarios pueden identificarse mediante un esquema genérico como "Elemento1, elemento 2, Item3, etc.", lo que permite identificadores duplicados para elementos secundarios en los elementos del menú de nivel superior.

Tipo de control

Identifica el tipo de control representado por un elemento de automatización. La información significativa se puede deducir del conocimiento del tipo de control. Consulte Introducción a los tipos de control de automatización de la interfaz de usuario.

NombrePropiedad

Se trata de una cadena de texto que identifica o explica un control. NameProperty debe usarse con precaución, ya que se puede localizar. Consulte Información general sobre las propiedades de automatización de la interfaz de usuario.

Implementación de la automatización de la interfaz de usuario en una aplicación de prueba

Paso Descripción
Agregue las referencias de automatización de la interfaz de usuario. Aquí se enumeran los archivos dll de automatización de la interfaz de usuario necesarios para los clientes de Automatización de la interfaz de usuario.

- UIAutomationClient.dll proporciona acceso a las API del lado cliente de Automatización de la interfaz de usuario.
- UIAutomationClientSideProvider.dll proporciona la capacidad de automatizar controles Win32. Consulte Compatibilidad de automatización de la interfaz de usuario para controles estándar.
- UIAutomationTypes.dll proporciona acceso a los tipos específicos definidos en automatización de la interfaz de usuario.
Agregue el espacio de nombres System.Windows.Automation . Este espacio de nombres contiene todo lo que los clientes de automatización de la interfaz de usuario necesitan para usar las funcionalidades de automatización de la interfaz de usuario, excepto el control de texto.
Agregue el espacio de nombres System.Windows.Automation.Text . Este espacio de nombres contiene todo lo que un cliente de Automatización de la interfaz de usuario necesita para usar las capacidades de control de texto de Automatización de la interfaz de usuario.
Busque controles de interés. Los scripts de prueba automatizados buscan elementos de automatización de la interfaz de usuario que representan controles de interés en el árbol de automatización.

Hay varias maneras de obtener elementos de automatización de la interfaz de usuario con código.

- Consultar la interfaz de usuario mediante una instrucción Condition. Normalmente, aquí es donde se usa el idioma neutro AutomationIdProperty . Nota: Un AutomationIdProperty se puede obtener mediante una herramienta, como Inspect.exe, que puede enumerar las propiedades de la automatización de la interfaz de usuario de un control.

- Use la TreeWalker clase para recorrer todo el árbol de automatización de la interfaz de usuario o un subconjunto de ellos.
- Realice un seguimiento del enfoque.
- Use el hWnd del control.
- Use la ubicación de la pantalla, como la ubicación del cursor del mouse.

Consulte Obtención de elementos de automatización de la interfaz de usuario.
Obtenga patrones de control. Los patrones de control exponen comportamientos comunes para controles funcionalmente similares.

Después de localizar los controles que requieren pruebas, los scripts de prueba automatizados obtienen los patrones de control de interés de esos elementos de automatización de la interfaz de usuario. Por ejemplo, el patrón de control para la InvokePattern funcionalidad típica del botón o el patrón de control para la WindowPattern funcionalidad de ventana.

Consulte Introducción a los patrones de control de automatización de la interfaz de usuario.
Automatice la interfaz de usuario. Los scripts de prueba automatizados ahora pueden controlar cualquier interfaz de usuario de interés desde un marco de interfaz de usuario mediante la información y la funcionalidad expuestas por los patrones de control de automatización de la interfaz de usuario.

Hay una serie de herramientas y tecnologías relacionadas que admiten pruebas automatizadas con automatización de la interfaz de usuario.

  • Inspect.exe es una aplicación de interfaz gráfica de usuario (GUI) que se puede usar para recopilar información de Automatización de la interfaz de usuario para la depuración y el desarrollo del proveedor y el cliente. Inspect.exe se incluye en Windows SDK.

  • MSAABridge expone información de automatización de la interfaz de usuario a los clientes de accesibilidad activa. El objetivo principal de puente de automatización de la interfaz de usuario a la accesibilidad activa es permitir a los clientes de accesibilidad activa existentes la capacidad de interactuar con cualquier marco que haya implementado automatización de la interfaz de usuario.

Seguridad

Para obtener información de seguridad, consulte Información general sobre la seguridad de automatización de la interfaz de usuario.

Consulte también

  • Principios fundamentales de la automatización de la interfaz de usuario de