Tengo una aplicación web bastante complicada que se escribe con Grails. Estoy intentando establecer un marco de prueba funcional, inicialmente usando Selenium, pero me he encontrado con dos problemas.¿Cuál es la mejor herramienta para pruebas funcionales de una aplicación web compleja?
Parte de la página que deseo probar implica una estructura de datos arborescente que se muestra con jstree. El problema aquí es que la acción que deseo simular -el usuario haciendo clic en un nodo para mostrar sus hijos- parece activarse al hacer clic en una determinada coordenada dentro de un div, que está resultando difícil de probar. He logrado solucionar el problema abriendo este nodo utilizando Javascript pasado directamente al navegador por el método executeScript() de Selenium.
Webapp hace un uso intensivo de las cargas de archivos, y esto es algo que definitivamente debo probar. No hay una manera directa de enviar cargas de archivos usando Selenium.
¿Cuál es la mejor manera de solucionar esto? Estoy considerando probar Tellurium (pero no está claro al leer si las cargas de archivos funcionan) o iMacros (en el supuesto de que una extensión del navegador manejará mejor las cargas de archivos). Esta no puede ser una situación rara en la que estoy; ¿Alguien puede sugerir una mejor alternativa?
Estamos usando el plugin 'functional-test' y simplemente simulamos solicitudes web, sin navegador involucrado. Puede simplificar algunas cosas. –
Sería bueno poder probar usando HTMLUnit. Desafortunadamente, nos ha resultado difícil probar algunos de los recursos enriquecidos de la interfaz de usuario sin encender realmente un navegador, y realmente queremos mantener todas las pruebas en un solo marco. – mojones
No difiere mucho de las pruebas de integración. Creo que sí tiene pruebas de unidad e integración de Grails, por lo que casi no hay sobrecarga de infraestructura aquí. Simplemente separe claramente, qué se usa para qué. Seguro, 'prueba funcional' nunca te permitirá probar la lógica del navegador. –