Pruebas de interfaz de usuario web automatizada

¿Cuáles son las buenas herramientas de prueba de UI web automatizadas?

Quiero poder usarlo en el mundo .Net, pero no tiene que estar escrito en .net.

Características como un modo de registro, integración en el proceso de comstackción / integración continua serían agradables.

Voy a mirar:

  • Watir
  • Selenio

¿Hay otros que debería mirar?

Definitivamente recomiendo Selenium, puede usarlo desde .NET, admite diferentes navegadores, funciona en comstackciones automáticas y procesos de CI (lo utilizamos desde CCNet). El código es estable. Tiene algunos caprichos, pero después de todo, todos lo hacen.

Cualquiera que sea la herramienta que elijas, te recomiendo que hagas tu propia clase de fachada de prueba a su alrededor. La fachada debe diseñarse para satisfacer sus necesidades de prueba de concreto, sin exponer demasiado los detalles de la API de la herramienta de prueba. Esto hará que el código de prueba sea más fácil de escribir y mantener.

ACTUALIZACIÓN: si utiliza el estado de vista ASP.NET en su aplicación, puede tener problemas al usar una herramienta de prueba HTTP pura. Aquí es donde los controladores de navegador (como el Selenio) son mucho mejores.

WatiN

Automatiza FF e IE

[Test] public void SearchForWatiNOnGoogle() { using (IE ie = new IE("http://www.google.com")) { ie.TextField(Find.ByName("q")).TypeText("WatiN"); ie.Button(Find.ByName("btnG")).Click(); Assert.IsTrue(ie.ContainsText("WatiN")); } } 

http://watin.sourceforge.net/

Watin es bastante inestable para usarlo en proyectos serios. A menudo falla con motivos inesperados como “EI está ocupado” o algo así como “Error con el objeto COM”. El selenium es mucho más estable y ya tiene muchas herramientas de apoyo. Por ejemplo, Selenium GRID es una solución que permite disminuir significativamente el tiempo de ejecución de las pruebas. (Nuestras pruebas de humo en Watin demoran 6 horas en ejecutarse).

Actualmente en mi trabajo uso QTP y hasta ahora, al menos, puedo manejar casi cualquier cosa que arrojemos en la UI y tiene un modo especial para probar servicios que no son gui, lo que nos permite controlar ambos y ayudarnos a reducir los problemas donde ocurren algunos problemas. cuando cambiamos el sistema En mi opinión, es muy configurable y la inclusión de vbscript como su lenguaje permite la integración con muchas y muchas cosas en Windows para permitirle hacer prácticamente todo lo que quiera. Por ejemplo, lo usamos para controlar el objeto excel com para crear informes personalizados de Excel de éxito y fracaso, de modo que el formato de los resultados sea el mismo si se ejecutó manualmente una prueba y también en otro proyecto se usó el objeto adodb para verificar que una página ¡envía información a la base de datos que la base de datos contiene los datos correctos para ese registro!

En cuanto a la integración en el proceso de comstackción no lo he probado yo mismo, pero es posible ejecutar qtp y una prueba desde un archivo vbs, así que supongo que esto debería ser bastante trivial ya que las herramientas ms tienden a permitirle ejecutar archivos vbs bastante fácilmente desde la mayoría de las herramientas.

¡Lo recomendaría a cualquiera que suponga que puede conseguir que alguien compre la licencia!

También puede probar VSTT – http://blogs.msdn.com/b/slumley/archive/2009/05/28/vsts-2010-feature-enhancements-for-web-test-playback-ui.aspx

Telerik Test Tools – http://www.telerik.com/automated-testing-tools.aspx

Extensibilidad de la prueba de interfaz de usuario de Visual Studio: escenarios y principios rectores: http://blogs.msdn.com/b/mathew_aniyan/archive/2011/03/28/visual-studio-ui-test-extensibility-scenarios-amp-guiding-principles .aspx

Primer paso a paso de VSTS Web Test – http://blogs.msdn.com/b/jimmymay/archive/2009/02/23/vsts-web-test-step-by-step-primer-7-minute- video-por-microsoft-ace-performance-engineer-chris-lundquist-con-copiosas-notas-screen-shots-from-your-hummble-correspondent.aspx

también podría estar interesado en echar un vistazo a lo que el equipo de ASP.NET cocinaba por sí mismo: Marco de automatización de prueba liviano .

También hay un foro dedicado para eso.

Habiendo utilizado varias soluciones de prueba automatizadas diferentes (TestComplete, QTP, etc.), tengo que votar por Telerik + Visual Studio. Telerik tiene excelentes foros de soporte y es muy compatible con cualquier marco de prueba que se te ocurra. Nuestros desarrolladores ponen identificadores únicos en su código HTML para que nuestros scripts no tengan que ser reescritos, incluso con refactores de IU bastante drásticos. Definitivamente es más desafiante que la grabación y la reproducción, pero una vez que tiene sus identificaciones únicas en su lugar, el código de automatización requiere poco o ningún mantenimiento.

Prueba httpunit

Depende de lo que te gustaría lograr.

Puede usar la prueba web incorporada en Visual Studio Tester Edition. Es bastante bueno y fácil de automatizar. Puede usar datos externos como fuente de datos de prueba y se integra muy bien con VS.

También hay una herramienta de prueba por QA automatizado (se olvidó el nombre) que se ve bien pero es costoso.

Y hay Selenio. Esa es la que estamos usando en Symantec. La mayor ventaja es que realmente usa un navegador que desea probar. VS imita un navegador cambiando solo los parámetros de solicitud http, por lo que es posible que no pueda probar su sitio para la compatibilidad entre navegadores. Selenium, por otro lado, utiliza el navegador y lo automatiza para que pueda probar su sitio en IE, Firefox, etc. También puede integrarse con las pruebas de unidades VS para que pueda ver los resultados de las pruebas en VS.

Así que recomendaría Selenium o VS.

He usado Selenio. Las características eran buenas, y se podía usar, pero tenía errores.

El IDE a menudo registraba los eventos incorrectamente (por lo que las pruebas tendrían que cambiarse manualmente), y los archivos de prueba a veces se volvían completamente inutilizables sin motivo aparente, lo que significaba que tendrían que volverse a crear. También el desarrollo en Selenium IDE parece haberse detenido; no ha habido correcciones de errores y parches por un tiempo, y los informes de errores parecen pasar desapercibidos.

El molibdeno es una alternativa basada en el selenium que vale la pena examinar.

http://www.molyb.org/

Solo para descartar otra opción (de la que no lo he probado pero me gusta Telerik) es el nuevo WebUI Testing Studio de Telerik. También me haré eco de los votos de Selenium.

Olvidé una buena herramienta y puedo encontrar un enlace en ella, pero encuentre esto … http://weblogs.asp.net/bsimser/archive/2008/02/21/automated-ui-testing-with-project-white.aspx tal vez puede ayudar.

Si está buscando una herramienta simple, entre navegadores con grabación y reproducción, reproducción multiproceso, integración con procesos de comstackción, secuencias de comandos poderosas, buenos informes y excelente soporte, elija Sahi . Será mucho más fácil para sus probadores / desarrolladores aprender y mantener.

Es posible que desee tener en cuenta cerca de Selenium también Rational Functional Tester. ya sea que esté familiarizado con la encoding en .Net o Java y quiera simplemente jugar con la grabación y reproducción o si desea crear pruebas programáticas más sofisticadas, lo recomendaría.

WebDriver es otra posibilidad: http://code.google.com/p/webdriver

Están trabajando en un contenedor .NET que puede ser interesante para usted.

Prueba QEngine . Tiene todas las características de QTP.

Es posible que desee consultar RIATest para pruebas multiplataforma de aplicaciones web entre navegadores.

Funciona en Windows y Mac, los navegadores compatibles son Firefox, IE y Chrome. Los scripts de prueba automatizados escritos en una plataforma / navegador pueden ejecutarse contra todas las demás plataformas / navegadores compatibles.

Tiene las funciones que desea: modo de grabación de interacción con el usuario e integración con servidores de CI (los resultados de salida en formato JUnit pueden ser consumidos por servidores de CI como Hudson).

(Descargo de responsabilidad: soy un miembro del equipo RIATest).