2011-03-07 20 views
6

Actualmente estoy automatizando las pruebas con selenio RC que se ejecutan cada hora. Todo funciona sin problemas la mayor parte del tiempo, pero hay veces en que Firefox se bloquea o el selenio RC simplemente se cuelga y debido a estos dos problemas, la prueba no se continúa y se detiene. ¿Alguien sabe cómo puedo hacer que se maten firefox.exe y/o java.exe (instancia de selenio) cuando se cuelgan o cuelgan, por lo que las pruebas pueden reanudarse. Los problemas que veo son detectar automáticamente cuando Firefox o el selenio se cuelga y matarlo a través de un script automáticamente.Cómo manejar las caídas de selenio

gracias!

Respuesta

1

No estoy seguro que tienen la última respuesta para usted, pero puede ofrecer algunas ideas:

  • selenio tendrá un tiempo de espera para hacer frente a la congelación Firefox. Debe verificarlo dos veces para asegurarse de que está configurado correctamente y funcionando.
  • Lo que sea que esté ejecutando su selenio (como el control de crucero o la ciudad del equipo) también debería tener un tiempo de espera que puede matar al servidor de selenio.
  • Las personas a menudo vuelven a reiniciar sus servidores una vez al día e informan resultados positivos. (No yo)
  • Realmente les recomiendo que averigüen la causa raíz de esto. El selenio puede sentirse frustrante y escamoso, pero después de excavar, siempre he encontrado que era un problema diagnosticable que podría corregirse (como this).

(Se nos empuja a extremos terribles:.. En realidad escribimos un trabajo ssh desencadenó en TeamCity que inició sesión en una máquina Windows y reinicie el servidor de selenio no definitiva que no lo usamos)

2

Idealmente , cada una de tus pruebas comenzará desde un estado limpio, sin procesos de Firefox o IE en ejecución. En sus métodos tearDown() de prueba, debe cerrar/salir de sus navegadores. Incluso con este enfoque, a veces, los procesos extraviados aún pueden aparecer. Si está ejecutando su servidor Selenium en Windows, a través de Java RC, poner este comando en el método startUp() de sus pruebas puede ayudar a garantizar que no se ejecuten navegadores/instancias:

Runtime.getRuntime().exec("TASKKILL /F /IM Firefox.exe"); 
Runtime.getRuntime().exec("TASKKILL /F /IM iexplore.exe"); 

En cuanto a la detección de cuándo fallan, Firefox mostrará un cuadro de diálogo de alerta que indica un bloqueo. Puede interactuar programáticamente con esta ventana a través de herramientas externas, como AutoIT, que puede presionar automáticamente el botón "Aceptar" en este cuadro de diálogo si lo necesita. Descubrí que la creación de un script AutoIT externo que se ejecuta constantemente en segundo plano para manejar ventanas emergentes, bloqueos, advertencias, etc. es muy útil.

Cuestiones relacionadas