powershell uiautomation tutorial
Tutorial de PowerShell UIAutomation: Automatización de UI de aplicaciones de escritorio
UIAutomation es una extensión de PowerShell de proyecto de código abierto para pruebas de automatización de GUI. Es compatible con Win32, Windows Form, WPF, etc.
En este tutorial, nos centraremos en cómo PowerShell usa el módulo para implementar la automatización de la interfaz de usuario. Para explicar esto, usaremos la aplicación Windows Form como ejemplo.
Lo que vas a aprender:
- Introducción a Microsoft UIAutomation
- Importar UIAutomation
- Automatización de la interfaz de usuario con ejemplos
- Encuentre la relación padre-hijo y las propiedades del control
- Implementación avanzada: simplifique el enfoque para escribir el script
- Conclusión:
- Lectura recomendada
Introducción a Microsoft UIAutomation
Dado que el proyecto proporciona la única biblioteca para los scripts de PowerShell, no requiere instalación, simplemente podemos descargar el módulo e importarlo al script.
Leer también => 35+ mejores herramientas de prueba de GUI con detalles completos
Para saber más sobre PowerShell y comprender cómo empezar a utilizarlo, consulte:
- Extensiones de PowerShell de automatización de la interfaz de usuario
- Descripción general de la automatización de la interfaz de usuario
- Windows PowerShell
- Cosas interesantes sobre PowerShell 5.0 en Windows 10
Importar UIAutomation
1) Descargue y descomprima el paquete más reciente de su sitio web oficial: Extensiones de PowerShell de automatización de la interfaz de usuario al camino local,por ejemplo, C: UIAutomation
2) Importe el módulo en el script de PowerShell: ( Nota : Cuando ejecute este comando, asegúrese de no estar ejecutando PowerShell como administrador)
|_+_|Ahora podemos usar los comandos definidos en el módulo para iniciar las pruebas de automatización de la interfaz de usuario.
Automatización de la interfaz de usuario con ejemplos
Comencemos con una aplicación de formulario de Windows simple, que cubre algunos controles típicos que podemos ver en las pruebas de automatización de GUI.
En este ejemplo, se nos dice que automaticemos los pasos para enviar un formulario con información personal básica:
Paso 1) Ingrese el nombre 'Anna Smith'
Paso 2) Seleccione el género 'Mujer'
Paso 3) Elija 'Sí' como la respuesta de si se graduó.
Paso 4) Haga clic en 'Enviar'
El guión para hacerlo es así:
|_+_|Probablemente pueda ver en la secuencia de comandos anterior cómo está manipulando los controles en la aplicación. Entendamos más.
Tome el primer paso como ejemplo:
|_+_|Aquí hay un desglose de lo que está sucediendo en esta línea:
1) El script primero encuentra la ventana superior y luego encuentra su control secundario a través de la canalización. Lo hace hasta que encuentra el control de destino, el cuadro de edición (o cuadro de texto) con el nombre 'Nombre'.
2) Al encontrar el control, reclama el tipo de control para que sepa qué comando usar, p. Ej. Get-UIAWindow - es una ventana y Get-UIAEdit - es un cuadro de edición / texto.
3) También requiere una o más propiedades del control. En este ejemplo, usamos solo Nombre como propiedad para identificar el control. Nota : AutomationId y Class también son propiedades que se usan comúnmente al buscar un control.
4) Una vez que se encuentra el control de destino, usamos otro comando para invocar la acción en el control. En este ejemplo, es Set-UIATextBoxText para establecer el texto de un cuadro de texto.
Esta es la forma principal de que UI Automation se dé cuenta de la automatización de la interfaz de usuario.
convertidor de youtube a mp3 gratis superior
Puede encontrar los comandos para diferentes tipos de controles y el comando para invocar acciones en los documentos de ayuda de su sitio oficial: Extensiones de PowerShell de automatización de la interfaz de usuario
la mejor aplicación espía para android
El resto de los pasos son similares en vena. Entonces, pasemos ahora a otros temas importantes.
Encuentre la relación padre-hijo y las propiedades del control
Es sencillo escribir tales canalizaciones, pero la parte importante es cómo encontrar las propiedades y los controles secundarios que contienen el control de destino. En mi experiencia, estos son los dos que he probado:
# 1) Utilice UIAutomationSpy en el paquete:
Hay una herramienta en el paquete que descargamos que puede capturar los controles en el escritorio. Cuando la interfaz de usuario esté lista en el escritorio, abra UIAutomat ionSpy.exe :
- Haga clic en 'Iniciar' para iniciar la captura.
- Mueve el cursor al control que quieres capturar.
- Cuando encuentre el control resaltado y la secuencia de comandos mostrada en su interfaz de ventana, significa que la captura se realizó correctamente.
- Haga clic en 'Detener' para detener la captura.
- Haga clic en la pestaña 'Jerarquía' a la izquierda y verá la relación padre-hijo de los controladores desde la parte superior hasta el objetivo
- Haga clic en la pestaña 'Script' a la derecha, puede ver una canalización completa para el control:
Tenga en cuenta que no tenemos que incluir todos los controles y todas las propiedades de la canalización para buscar el control de destino. En realidad, lo que usamos es bastante simple (vea el ejemplo anterior):
|_+_|Desafortunadamente, no existe una fórmula mágica oficial sobre cuántos controles deben incluirse. Requiere probar y experiencia.
Lo que no es tan bueno sobre UIAutomationSpy:
- No tiene una interfaz amigable
- Tendrá que capturar un control tras otro y obtener los detalles que desee.
# 2) Use herramientas externas para inspeccionar los controles del escritorio de Windows
Una herramienta sugerida es inspect.exe proporcionada por Microsoft. Cuando abra la herramienta, obtendrá todos los detalles de los controles en la ventana:
¿Qué tiene de bueno inspect.exe?
- No hay forma de exportar los detalles.
- El módulo UI Automation proporciona algunos comandos como Get-UIAControlChildren para obtener todos los controles secundarios. inspect.exe puede atravesar todos los controles debajo de la ventana, pero el rendimiento no se evalúa para ventanas complejas.
Implementación avanzada: simplifique el enfoque para escribir el script
En la introducción anterior, puede ver que las canalizaciones son la forma principal de escribir el script utilizando el módulo, aunque a veces las canalizaciones no son tan largas. Existe un enfoque para hacerlo más simple y más fácil, y la idea principal es extraer los datos de los controles en un archivo XML y unir las canalizaciones cuando sea necesario desde el archivo XML.
Continuemos con el ejemplo anterior:
Primero, genere un archivo XML que incluya las propiedades y la relación padre-hijo de los controles. Agregamos nodos para cada control requerido: el nombre del nodo es único para que podamos encontrar el control inmediatamente por nombre, y el comando y sus propiedades se establecen como las propiedades de los nodos.
Aquí está el archivo XML para el formulario de prueba que probamos:
Algunas funciones deben definirse para unirse a las canalizaciones buscando en el archivo xml y ejecutándolas:
|_+_|Hasta ahora, estas son tareas casi únicas a menos que cambien los controles.
Ahora podemos automatizar los pasos en los siguientes scripts:
|_+_|De esta manera, podemos deshacernos de grupos de pipelines en los scripts, y la competencia mejorará enormemente.
Lectura recomendada => Introducción a la herramienta de automatización GUI de Sikuli
Conclusión:
Microsoft UIAutomation es una gran biblioteca para aquellos que desean tener pruebas de automatización de la interfaz de usuario en el escritorio de Windows con PowerShell.
La introducción anterior es solo un segmento de la herramienta. Su enfoque simplificado se inspira en la idea de extraer datos de scripts de prueba, que es una buena forma de mejorar nuestra competencia en la escritura de pruebas de automatización. Explore más al respecto Aquí .
Comparta sus comentarios a continuación y nos encantaría escuchar las experiencias de los usuarios de UIAutomation.
Lectura recomendada
- Tutoriales detallados de Eclipse para principiantes
- Ver tutorial de automatización de pruebas: una guía de herramientas de automatización de pruebas móviles
- Automatización de DevOps: cómo se aplica la automatización en la práctica de DevOps
- Tutorial de Geb: pruebas de automatización del navegador con la herramienta Geb
- ¿Qué son las pruebas de automatización? (Guía definitiva para iniciar la automatización de pruebas)
- Tutorial de Selendroid: Marco de automatización de pruebas móviles de Android (Parte 1)
- Tutorial de Katalon Studio: una herramienta gratuita de automatización de pruebas que ha estado esperando
- Appium Studio para Eclipse: automatización integral de Appium / Selenium de Eclipse