Usamos la automatización de la interfaz de usuario y Nunit para crear pruebas de pruebas de interfaz de usuario para la aplicación WPF. Hemos creado pruebas que funcionan bien cuando las ejecuta desde una máquina local. Esas pruebas nunca se ejecutan con éxito en nuestro servidor de compilación (utilizando TeamCity). Build siempre cuelga después de abrir la ventana de la aplicación. Pero si estoy conectado (escritorio remoto), en nuestro servidor de compilación todas las pruebas de automatización de UI también se ejecutan con éxito. Así que supongo que probablemente tenga algo que ver con ejecutar la sesión de Windows activa. ¿Alguna idea de cómo convencer a nuestro servidor de compilación para que cree una sesión de Windows activa o cualquier otra solución para hacer que esas pruebas se ejecuten en el servidor de compilación?Ejecución de pruebas de automatización de la interfaz de usuario en el servidor de compilación
Respuesta
No tiene muchas opciones. Voy a enumerar los dos que sé, la opción más preferida en primer lugar:
- Configurar una máquina virtualen su servidor de compilación. Tus compilaciones se ejecutan en la máquina virtual. Puede bloquear el host (también conocido como su servidor de compilación) para mantener las cosas seguras.
- Mantenga a alguien conectado todo el tiempo. Este acto crea un problema de seguridad. Puede aliviar este problema un poco quitando el mouse, el teclado y la pantalla y solo acceder al servidor de construcción a través de RDP o algo similar.
Editar
Tome un vistazo a este artículo TestComplete FAQ: Puede TestComplete ejecutar secuencias de comandos cuando el equipo está bloqueado?
OK, solo estoy adivinando aquí.
Pruebe y ejecute el servicio TeamCity con un usuario del servidor de compilación local en lugar de la cuenta del sistema. Tal vez tenga que iniciar sesión con esa cuenta una vez, antes de comenzar una nueva compilación.
Ya lo hemos intentado.Cuando dije que si estaba conectado (escritorio remoto), en nuestro servidor de compilación, todas las pruebas de Automatización de la interfaz de usuario también se ejecutan con éxito, he iniciado sesión como ese usuario y todas las pruebas se están ejecutando bajo ese usuario. El problema es que el segundo cuando este usuario está bloqueado la prueba falló. También fallaron si los ejecuté en una máquina local y bloqueé la computadora mientras corría. – andreja
Definitivamente parece que necesita ejecutar sus pruebas con una sesión interactiva en lugar de un servicio. Agregar el "Permitir que el servicio interactúe con el escritorio" podría ayudar, pero esto ya no es compatible con Vista.
Si puede ejecutar sus compilaciones interactivley como una línea de comandos, no un servicio que también debería funcionar.
Solíamos ejecutar nuestras pruebas de UIAutomation utilizando el agente de carga visual studo 2008 para distribuirlas, ejecutándose como una herramienta de línea de comandos en las máquinas virtuales sin ningún problema.
También estoy de acuerdo en que probablemente no deba ejecutar pruebas de UI en un servidor de compilación como parte de su compilación diaria.
Gracias, pero como mencionas, los servicios ya no pueden interactuar con el escritorio del usuario en Vista y Windows Server 2008. Usamos el servidor de Windows 2008. Al ejecutar como usuario de la consola también se bloquea el escritorio y las compilaciones fallan. – andreja
La compilación siempre cuelga después de abrir la ventana de la aplicación.
¿Pruebas que crean instancias de la IU? Eso no va a funcionar, p. si obtienes un diálogo modal, la compilación se bloqueará. Esta es la razón por la cual se inventó el patrón MVP, para aislar el código de presentación activo de una vista concreta.
¿Está utilizando una vista simulada en sus pruebas automatizadas?
No lo creo, no va a funcionar :) No estamos usando simulacro de vista. – andreja
Si bien el diseño de su código de UI para poder probarlo resuelve una multitud de problemas, aún existen ciertos escenarios en los que desea probar cosas que simplemente requieren un entorno interactivo para que la prueba sea significativa. (No necesariamente pruebas unitarias, pero también desea automatizar sus pruebas de integración, ¿no?) –
Algunas veces, solo desea probar que al hacer clic en un botón, se abre el cuadro de diálogo correspondiente. (es decir, QUIERES probar la interfaz de usuario). – BrainSlugs83
- 1. Automatización de la interfaz de usuario de Windows
- 2. Ejecución automática de pruebas unitarias en la compilación
- 3. ¿Cómo hacer la automatización de la interfaz de usuario de las aplicaciones Metro-Style?
- 4. Biblioteca de automatización de UI de Microsoft Vs Prueba de interfaz de usuario codificada
- 5. Automatización del proceso de compilación de MSI
- 6. Problema de rendimiento de WPF debido a la automatización de la interfaz de usuario
- 7. ¿Se puede usar el Marco de Automatización de Pruebas Ligero (LTAF) en la Integración Continua?
- 8. Automatización de compilación TFS 2010: habilitación de cobertura de código
- 9. ¿Existe un buen tutorial sobre las pruebas automáticas de interfaz de usuario de cacao táctil?
- 10. Detener la ejecución de compilación en Jenkins
- 11. Prueba de interfaz de usuario
- 12. Reconocimiento de imágenes para controlar la automatización de pruebas
- 13. Automatización de proceso de compilación simple en Windows
- 14. Ejecución de pruebas como un usuario diferente en Visual Studio
- 15. Tema de interfaz de usuario dinámica
- 16. ¿Qué hay de las pruebas de automatización de la interfaz de usuario para la aplicación de iOS con instrumentos y Javascripts
- 17. Excluir pruebas de la compilación de Maven
- 18. Automatización de la compilación DMG en Xcode 4.0
- 19. Automatización de perfiles/pruebas unitarias de los comportamientos de NHibernate
- 20. Pruebas de automatización Ui haga clic con el botón derecho en los menús
- 21. ¿Cuánto subdividir la función de larga ejecución para la interfaz de usuario receptiva?
- 22. Mac OS X - shell script de ejecución de la interfaz gráfica de usuario de escritorio
- 23. herramienta de automatización de interfaz de usuario para una ventana de aplicación de WPF con base Grabación y reproducción Feauture
- 24. Orden de ejecución de pruebas en TestNG
- 25. ¿cómo puedo mejorar la Automatización de UI de iPhone?
- 26. Inspeccionar los elementos de la interfaz de usuario en Android
- 27. Pruebas de ejecución de Go en Eclipse
- 28. Seleccionar un servidor de compilación
- 29. Creación de un servidor de automatización COM en C#
- 30. Herramientas de prueba de automatización para la aplicación Oracle Forms?
Ejecutamos todas las construcciones en la máquina virtual en nuestro servidor de compilación. Y todas las pruebas se ejecutan bajo la cuenta local (no el sistema). No resolvió el problema. Mantener a alguien conectado todo el tiempo no es una opción. Como dije, tenemos 3 máquinas virtuales, donde se puede ejecutar esta compilación. Por lo tanto, cada compilación elige la versión más rápida disponible. El usuario local en vm normalmente está conectado, pero no podemos asegurarnos de que no esté bloqueado. Y realmente nos gustaría automatizar este proceso tanto como sea posible, por lo que el inicio de sesión manual es la opción menos atractiva. – andreja
@andreja, he actualizado la respuesta con un enlace a Q & A de Testcomplete. Dudo que haya otra forma de evitar esto. Tienes que mantener a alguien conectado. No veo dónde esto plantea un problema de seguridad cuando su VM está "desbloqueada" y el host está "bloqueado" (pero yo no soy un administrador del sistema). –
@andreja: si desea automatizar el inicio de sesión, puede establecer algunos valores clave de registro y su usuario de compilación se registrará después de arrancar la máquina virtual de compilación. Si lo desea, puedo buscar las claves de registro correspondientes. –