Consideraciones sobre las pruebas de IU

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017

Al ejecutar pruebas automatizadas en la canalización de CI/CD, es posible que necesite una configuración especial para ejecutar pruebas de IU como selenium, Appium o pruebas automatizadas de IU. En este tema se describen las consideraciones típicas para ejecutar pruebas de IU.

Nota

Solo se aplica a TFS 2017 Update 1 y versiones posteriores.

Nota

En Microsoft Team Foundation Server (TFS) 2018 y versiones anteriores, las canalizaciones de compilación y versión se denominan definiciones, las ejecuciones se denominan compilaciones, las conexiones de servicio se denominan puntos de conexión de servicio, las fases se denominan entornos y los trabajos se denominan fases.

Requisitos previos

Familiarícese con los agentese implemente un agente en Windows.

¿Modo sin cabeza 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 sin cabeza. En este modo, el explorador se ejecuta de forma normal, pero sin ningún componente de interfaz de usuario visible. Aunque este modo obviamente no es útil para examinar la web, resulta útil para ejecutar pruebas automatizadas de forma desatendida en una canalización de CI/CD. Losexploradores Chrome y Firefox se pueden ejecutar en modo sin sentido.

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

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

    Nota

    Microsoft Edge explorador no se puede ejecutar actualmente en modo sin sentido.

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

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

Sugerencia

Las pruebas de IU de un extremo a otro suelen ser de larga duración. Al usar el modo de interfaz de usuario visible, según el marco de pruebas, es posible que no pueda ejecutar pruebas en paralelo en la misma máquina porque la aplicación debe estar centrada para recibir eventos de teclado y mouse. En este escenario, puede acelerar los ciclos de prueba mediante la ejecución de pruebas en paralelo en diferentes máquinas. Consulte Ejecutar pruebas en paralelo para cualquier ejecutor de pruebas y ejecutar pruebas en paralelo mediante Visual Studio de prueba.

Pruebas de IU en modo de interfaz de usuario visible

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

Pruebas de IU visibles mediante agentes hospedados por Microsoft

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

Pruebas de IU visibles mediante agentes de Windows auto Windows

Los agentes que están configurados para ejecutarse como servicio solo pueden ejecutar pruebas de Selenium con exploradores sin sentido. Si no usa un explorador sin cabeza o si está ejecutando pruebas de interfaz de usuario para aplicaciones de escritorio, los agentes de Windows deben configurarse para que se ejecuten como un proceso interactivo con el inicio de sesión automático habilitado.

Al configurar agentes, seleccione "No" cuando se le pida que se ejecute como servicio. Los pasos posteriores permiten configurar el agente con inicio de sesión automático. Cuando se ejecutan las pruebas de interfaz de usuario, las aplicaciones y los exploradores se inician en el contexto del usuario especificado en la configuración de 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, simplemente desconectar el Escritorio remoto hace que el equipo se bloquee y se puedan producir errores en las pruebas de interfaz de usuario que se ejecutan en este agente. Para evitarlo, use el comando tscon en el equipo remoto para desconectarse 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 puede cambiar entre sesiones remotas, pero se puede ver en 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 y cree un acceso directo de escritorio en él y, a continuación, 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 la interfaz de usuario y permite ejecutar pruebas de IU.

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

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 interfaz de usuario, es posible que tenga que ajustar la resolución de pantalla para que las aplicaciones se represente 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 forma predeterminada, esta utilidad establece la resolución en el valor óptimo admitido por la máquina del agente.

Si se produce un error 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 desconectan de forma segura mediante el comando tscon, como se ha descrito anteriormente.

Nota

La tarea de la utilidad de resolución de pantalla se ejecuta en el agente unificado de compilación, versión y prueba, y no se puede usar con la tarea Ejecutar pruebas funcionalesen desuso .

Solución de problemas de errores en pruebas de IU

Cuando se ejecutan pruebas de interfaz de usuario de forma desatendida, la captura de 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.

Captura de pantallas

La mayoría de los marcos de pruebas de IU proporcionan la capacidad de capturar 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 Visual Studio para ejecutar pruebas, las capturas de pantalla capturadas deben agregarse como un archivo de resultados para que estén disponibles en el informe de pruebas. Para ello, use 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; }

Agregar el archivo de captura de pantalla mediante TestContext.AddResultFile(fileName); //Where fileName is the name of the file.

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

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

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

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

Captura de vídeo

Si usa la tarea Visual Studio prueba para ejecutar pruebas, se puede capturar el vídeo de la prueba y está disponible automáticamente como datos adjuntos al 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