Estoy a cargo de probar una aplicación web empresarial que hace un uso intensivo de AJAX. Necesito construir un sistema que permita la ejecución continua de pruebas sin intervención humana. Actualmente estoy interesado principalmente en la prueba de carga, pero quiero que los mismos scripts utilizados para generar carga se utilicen en pruebas funcionales.Navegador sin cabeza real
Actualmente para la prueba de carga Estoy utilizando el grinder. Grabamos guiones y luego los procesamos para manejar, entre otras cosas, las solicitudes asincrónicas. Este sistema funciona por ahora; sin embargo, los guiones son delicados y no puedo mantenerlos durante nuestro ciclo de desarrollo. Necesito poder 'ejecutar un navegador' a través de un lenguaje de programación que resuma los detalles de html y javascript, pero debe ser sin cabeza. En otras palabras, si mi script de prueba se rompe, debe representar una ruptura real de la aplicación. Ejecutar Firefox en xvfb no funciona, ya que Firefox todavía usa demasiados recursos, incluso en una máquina sin linux corriendo con xvfb. Intenté conducir Firefox con Webdriver en el servidor x sin cabeza.
He estado trabajando en HTMLUnit durante días ya que esta es la solución ideal. He estado escribiendo controladores HTMLUnit en Jython y, por lo tanto, puedo usarlos con la rectificadora. Desafortunadamente, me estoy encontrando con errores de JavaScript (que no son errores reales en firefox/Chrome/IE) y creo que estoy al final del camino para esto. En cualquier caso, estoy al tanto de HtmlUnit y realmente necesito una alternativa.
Sé que hay algunas otras soluciones (envjs y zombie.js); sin embargo, no sé cómo se desarrollaron estas tecnologías y no quiero perder otra semana yendo por un callejón sin salida.
¿Qué tan difícil sería tomar el código fuente para Firefox o Webkit y comentar todas las llamadas de renderizado/GUI y crear un verdadero explorador sin cabeza? Ha hecho esto? ¿Sería más fácil hacer esto con uno que con otro? Honestamente, no puedo entender por qué esto no se ha hecho ya, así que supongo que es mucho más difícil de lo que anticipo.
Supongo que si puedo obtener un navegador realmente sin cabeza con características de rendimiento razonables (tengo una gran flota de servidores para resolver este problema, pero no es lo suficientemente grande para Firefox real con renderizado GUI) entonces me estableceré .
Ha considerado el uso de un servicio comercial como BrowserMob (http://browsermob.com/performance-testing) o Gómez (http://www.gomez.com/products-solutions/products/load-testing/). Aunque no es barato, parece mucho más fácil que tratar de hackear Firefox/Webkit. –
Realmente no he investigado estos servicios pero he oído hablar de ellos. Me apasiona armar un sistema interno preferiblemente con tecnología de código abierto. Tenemos muchos servidores de prueba y realmente quiero utilizarlos. Gracias por la sugerencia, sin embargo. Gracias – user573225