with test script run phantom installing casper javascript testing phantomjs

javascript - test - phantomjs script



Alternativa a PhantomJS para pruebas (4)

Actualmente estoy tratando de construir un pequeño conjunto de pruebas para CI (Hudson). He escrito un script complejo que invoca dinámicamente otros scripts y rellena un elemento DIV dado.

Mis pruebas de Selenium funcionan para ejemplos triviales (carga www.google.com, busca el elemento q, etc.)

Pero cuando intento ejecutar una prueba compleja, que funciona con Firefox-Driver, en mi instancia de PhantomJS, se bloquea. Se produce una falla de seguridad.

Mi pregunta es, ¿cómo puedo escribir pruebas para mi JS frontend que funciona en un servidor Hudson que se ejecuta (sin cabeza)?

¿O hay una manera de depurar lo que causa segfault?


Las instalaciones sin cabeza son posibles cuando se usa Xvfb como búfer de marco virtual (en máquinas Linux que albergan los nodos de la red). Terminé usando este y el predeterminado de Firefox.


Phantom es un producto en evolución, y solo recientemente ha adquirido la capacidad de integración con Selenium, por lo que es posible que hayas encontrado un error; ¿Has intentado reportarlo a los desarrolladores de Phantom?

  • Alternativas a Phantom:

    No hay muchos Zombie es uno que conozco, pero Phantom está muy por encima de cualquier otro navegador sin cabeza.

    También puede intentar usar un servidor virtual sin cabeza para ejecutar cualquiera de los navegadores web normales. (Esto también tendría la ventaja de ser una prueba más real que Phantom)

  • Alternativas al selenio:

    Podrías usar Sahi como un reemplazo directo a Selenium. Es capaz de muchas de las mismas cosas, pero funciona de manera muy diferente. Sus guiones de prueba tendrían que ser reescritos, por supuesto.

    Phantom está diseñado para ser programado, por lo que no necesita usar una herramienta de controlador como Selenium para ello; simplemente puede escribirlo directamente o usar una herramienta como CasperJS para escribir sus scripts de prueba.



jsdom es una buena alternativa ahora, es bastante madura.

https://github.com/tmpvar/jsdom/

Es para pruebas sin cabeza. No creo que haga capturas de pantalla como lo hicieron phantomjs, ya que no tiene webkit o gekko renderer es su JS puro.

Encontré esto desde phantomjs segfaults y la nueva versión no se construirá. slimerjs no es realmente sin cabeza, y su base de XULRunner, que FireFox acaba de eliminar, no funciona con mi FF actual.

jsdom es bastante bueno, comenzó su vida como un analizador XML y ahora tiene un backend de red completo y soporte jQuery.

API no es lo mismo que phantomjs.