Consideraciones sobre las pruebas de IU

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Al ejecutar pruebas automatizadas en la canalización de CI/CD, es posible que necesite una configuración especial para ejecutar pruebas de interfaz de usuario, como Selenium, Appium o pruebas automatizadas de interfaz de usuario. En este artículo se describen las consideraciones típicas para ejecutar pruebas de UI.

Requisitos previos

Familiarícese con los agentes y la implementación de un agente en Windows.

¿Modo desatendido o modo de interfaz de usuario visible?

Al ejecutar pruebas de Selenium para una aplicación web, puede iniciar el explorador de dos maneras:

  1. Modo desatendido. En este modo, el explorador se ejecuta de la manera habitual, pero sin que los componentes de la interfaz de usuario estén visibles. Si bien este modo no resulta útil para navegar por la web, resulta útil para ejecutar pruebas automatizadas de manera desatendida en una canalización de CI/CD. Los exploradores Chrome y Firefox se pueden ejecutar en modo desatendido.

    Este modo suele consumir menos recursos en la máquina, porque no se representa la interfaz de usuario y las pruebas se ejecutan más rápido. Como resultado, se pueden ejecutar más pruebas en paralelo en la misma máquina para reducir el tiempo total de ejecución de las pruebas.

    Las capturas de pantalla se pueden capturar en este modo y se pueden usar para solucionar errores.

    Nota:

    El explorador Microsoft Edge no se puede ejecutar actualmente en el modo desatendido.

  2. Modo de interfaz de usuario visible. En este modo, el explorador se ejecuta de la manera habitual y los componentes de la interfaz de usuario están visibles. Al ejecutar pruebas en este modo en Windows, se requiere una configuración especial de los agentes.

Si ejecuta pruebas de interfaz de usuario para una aplicación de escritorio, como pruebas de Appium mediante WinAppDriver o pruebas codificadas de UI, se requiere una configuración especial de los agentes.

Sugerencia

Por lo general, las pruebas de interfaz de usuario de un extremo a otro son de larga duración. Al usar el modo de interfaz de usuario visible, dependiendo del marco de pruebas, es posible que no pueda ejecutar pruebas en paralelo en la misma máquina, porque la aplicación se debe centrar en recibir eventos de teclado y mouse. En este escenario, puede acelerar los ciclos de prueba mediante la ejecución de pruebas en paralelo en distintas máquinas. Consulte Ejecución de pruebas en paralelo para cualquier ejecutor de pruebas y Ejecución de pruebas en paralelo mediante la tarea Prueba de Visual Studio.

Pruebas de UI en modo de interfaz de usuario visible

Se requiere una configuración especial para que los agentes ejecuten pruebas de UI en modo de interfaz de usuario visible.

Pruebas de interfaz de usuario visible mediante agentes hospedados por Microsoft

No se admiten pruebas de IU visibles en agentes hospedados por Microsoft. Se produce un error en la prueba con el mensaje de error "element not interactable". Los agentes hospedados por Microsoft admiten pruebas de explorador sin encabezado.

Pruebas de interfaz de usuario en modo sin encabezado mediante agentes hospedados por Microsoft

Los agentes hospedados por Microsoft están preconfigurados para pruebas de IU y pruebas de IU para aplicaciones web. Los agentes hospedados por Microsoft también están preconfigurados con exploradores populares y versiones de controlador web coincidentes que se pueden usar para ejecutar pruebas de Selenium. Los exploradores y los controladores web correspondientes se actualizan de manera periódica. Para más información sobre la ejecución de pruebas de Selenium, consulte Prueba de IU con Selenium.

Pruebas de interfaz de usuario visible mediante agentes de Windows autohospedados

Los agentes configurados para ejecutarse como servicio solo pueden ejecutar pruebas de Selenium con exploradores desatendidos. Si no usa un explorador desatendido o si ejecuta pruebas de IU para aplicaciones de escritorio, los agentes de Windows se deben configurar para ejecutarse como un proceso interactivo con el inicio de sesión automático habilitado.

Al configurar un agente, seleccione "No" cuando se le pida que se ejecute como servicio. Los pasos posteriores le permiten configurar el agente con el inicio de sesión automático. Cuando se ejecutan las pruebas de IU, las aplicaciones y los exploradores se inician en el contexto del usuario especificado en la configuración del inicio de sesión automático.

Si usa Escritorio remoto para acceder al equipo en el que se ejecuta un agente con inicio de sesión automático, si simplemente desconecta el Escritorio remoto, el equipo se bloqueará y las pruebas de interfaz de usuario que se ejecuten en este agente podrían generar un error. Para evitar este fallo, use el comando tscon en el equipo remoto para desconectar de Escritorio remoto. Por ejemplo:

%windir%\System32\tscon.exe 1 /dest:console

En este ejemplo, el número "1" es el identificador de la sesión de Escritorio remoto. Este número podría cambiar entre las sesiones remotas, pero se puede ver en el Administrador de tareas. Como alternativa, para automatizar la búsqueda del identificador de sesión actual, cree un archivo por lotes que contenga el código siguiente:

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
  %windir%\System32\tscon.exe %%s /dest:console
)

Guarde el archivo por lotes, cree un acceso directo a él en el escritorio y cambie las propiedades del acceso directo a "Ejecutar como administrador". La ejecución del archivo por lotes desde este acceso directo se desconecta del Escritorio remoto, pero conserva la sesión de interfaz de usuario y permite que se ejecuten las pruebas de UI.

Aprovisionamiento de agentes en máquinas virtuales de Azure para pruebas de UI

Si va a aprovisionar máquinas virtuales (VM) en Azure, la configuración del agente para las pruebas de IU está disponible a través del artefacto del agente para DevTest Labs.

agentArtifactDTL

Configuración de la resolución de pantalla

Antes de ejecutar pruebas de IU, es posible que tenga que ajustar la resolución de la pantalla para que las aplicaciones se representen correctamente. Para ello, hay disponible una tarea de utilidad de resolución de pantalla en Marketplace. Use esta tarea en la canalización para establecer la resolución de pantalla en un valor compatible con la máquina del agente. De manera predeterminada, esta utilidad establece la resolución en el valor óptimo admitido por la máquina del agente.

Si se producen errores al usar la tarea de resolución de pantalla, asegúrese de que el agente esté configurado para ejecutarse con el inicio de sesión automático habilitado y de que todas las sesiones de Escritorio remoto se desconecten de manera segura con el comando tscon, tal como se describe anteriormente.

Nota:

La tarea de utilidad de resolución de pantalla se ejecuta en el agente unificado de compilación, versión o prueba, y no se puede usar con la tarea Ejecutar pruebas funcionalesen desuso. La tarea utilidad de resolución tampoco funciona para máquinas virtuales de Azure.

Solución de errores en las pruebas de UI

Al ejecutar pruebas de interfaz de usuario de manera desatendida, capturar datos de diagnóstico como capturas de pantalla o vídeo resulta útil para detectar el estado de la aplicación cuando se encontró el error.

Capturas de pantalla

La mayoría de los marcos de pruebas de UI proporcionan la capacidad de realizar capturas de pantalla. Las capturas de pantalla recopiladas están disponibles como datos adjuntos a los resultados de la prueba cuando estos resultados se publican en el servidor.

Si usa la tarea de prueba de Visual Studio para ejecutar pruebas, se deben agregar capturas de pantalla capturadas como un archivo de resultado para que esté disponible en el informe de prueba. Para ello, ejecute el código siguiente:

En primer lugar, asegúrese de que TestContext esté definido en la clase de prueba. Por ejemplo: public TestContext TestContext { get; set; }

Incorporación del archivo de captura de pantalla con TestContext.AddResultFile(fileName); //Where fileName is the name of the file.

Si usa la tarea Publicar resultados de pruebas para publicar los resultados, los datos adjuntos de los resultados de las pruebas solo se pueden publicar si usa el formato de resultados VSTest (TRX) o el formato de resultados NUnit 3.0.

Los datos adjuntos de los resultados no se pueden publicar si usa los resultados de pruebas con los formatos JUnit o xUnit. Esto se debe a que estos formatos de resultados de pruebas no tienen una definición formal para los datos adjuntos en el esquema de resultados. Puede usar uno de los enfoques siguientes para publicar datos adjuntos de prueba en su lugar.

  • Si está ejecutando pruebas en la canalización de compilación (CI), puede usar la tarea Copiar y publicar artefactos de compilación para publicar más archivos creados en las pruebas. Aparecerán en la página Artefactos del resumen de compilación.

  • Use las API REST para publicar los datos adjuntos necesarios. Se pueden encontrar ejemplos de código en este repositorio de GitHub.

Captura de vídeo

Si usa la tarea de prueba de Visual Studio para ejecutar pruebas, se puede capturar vídeo de la prueba y está disponible automáticamente como datos adjuntos para el resultado de la prueba. Para ello, debe configurar el recopilador de datos de vídeo en un archivo .runsettings y este archivo debe especificarse en la configuración de la tarea.

runSettings

Ayuda y soporte técnico