2012-08-17 25 views
8

Esperaba que alguien pudiera ayudarme con un problema que encuentro al ejecutar mis pruebas de pepino.Errores de tiempo de espera al ejecutar las pruebas Pepino/Watir

recibo el siguiente error:

Timeout::Error (Timeout::Error) 
     C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill' 
     C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill' 
     C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil' 
     C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in `readline' 
     C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line' 
     C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2551:in `read_new' 
     C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request' 
     C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `catch' 
     C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request' 
     C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1293:in `request' 
     C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1286:in `block in request' 
     C:/Ruby193/lib/ruby/1.9.1/net/http.rb:745:in `start' 
     C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1284:in `request' 
     C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/default.rb:82:in `response_for' 
     C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/default.rb:38:in `request' 
     C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call' 
     C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:598:in `raw_execute' 
     C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:576:in `execute' 
     C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:242:in `getScreenshot' 
     C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb:34:in `screenshot_as' 
     C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb:18:in `block in save_screenshot' 
     C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb:18:in `open' 
     C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb:18:in `save_screenshot' 

¿Alguien tiene alguna idea de lo que causa esto?

Este error se produce de forma aleatoria durante la ejecución de mi suite de pruebas. En la suite tendría algo así como 150 escenarios y he visto este error en diferentes etapas. Por ejemplo, podría suceder en el escenario 50 o escenarios 100. Ejecuto mis pruebas a través de un archivo de rake de Jenkins o a través de la ventana de cmd, pero el error ocurre si uso cualquiera de los métodos.

Nuestros sitios de prueba aquí pueden ser un poco escuetos y es probable que haya un tiempo de espera impar aquí y allí. Sin embargo, una vez que este error comience a ocurrir, todas las demás pruebas posteriores a la prueba en la que ocurrió el error tendrán el mismo problema. Ninguno de mis escenarios depende uno del otro. Cada escenario generalmente comienza con un paso I go to the homepage - en este paso en mi archivo .rb tengo @browser.cookies.clear incluido, por lo que no debería haber datos restantes del escenario anterior.

¿Alguien más ha encontrado esto y, en caso afirmativo, qué pasos tomó para ordenarlo?

+0

¿Se utiliza la misma instancia de navegador para todas las pruebas? ¿Qué navegador estás usando (es decir, es un problema específico del navegador)? –

+0

Hola Justin: estoy viendo este problema principalmente en Firefox 14. He visto otros problemas al usar Chrome pero no con el mismo problema. Voy a instalar Opera y ver si recibo los mismos problemas. Estoy empezando a pensar que puede ser Firefox, tuve algunos problemas diferentes desde que actualicé. Te dejaré saber cómo va. ¡¡Gracias!! – user1523236

+0

Oye, así que volví a Firefox 12 pero todavía veo este problema. También veo que este problema ocurre en Chrome, así que supongo que no es el navegador. ¿Podría ser un reproductor flash? Tuve una gran cantidad de problemas con Firefox y la versión flash 11.3, tanto que tuve que volver a la versión 11.2. Sin embargo, el problema aún persiste. – user1523236

Respuesta

2

Tuve el mismo problema recientemente. Como no puedo ver su código, no estoy seguro de qué está sucediendo exactamente, pero usar algún tipo de rescate debería funcionar. Mi problema era utilizar un navegador sin cabeza y rescatar ...

begin 
    browser = Watir::Browser.start site 
    rescue Timeout::Error 
    puts "Timeout Rescue" 
    retry 

Avísame si esto funciona.

+0

Esto es lo que funcionó para mí. Parece que la página parece estar cargando debido a las llamadas AJAX. Solo necesitaba tomar el tiempo de espera y continuar porque la página ya está cargada. – genegc

Cuestiones relacionadas