8

きゅうりのテストを実行しているときに遭遇した問題を誰かが助けてくれることを願っていました。

次のエラーが表示されます。

  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'

何が原因なのか誰にもわかりませんか?

このエラーは、テスト スイートの実行中にランダムに発生します。スイートでは、150 のようなシナリオがあり、このエラーがさまざまな段階で発生するのを見てきました。たとえば、シナリオ 50 またはシナリオ 100 で発生する可能性があります。Jenkins の rake ファイルまたは cmd ウィンドウを介してテストを実行しましたが、いずれかの方法を使用するとエラーが発生します。

ここのテストサイトは少し不安定で、ここで奇妙なタイムアウトになる可能性があり、おそらく予想される. ただし、このエラーが発生し始めると、エラーが発生したテストに続く他のすべてのテストで同じ問題が発生します。私のシナリオはどれも互いに依存していません。各シナリオは通常、ステップから始まります。ファイルI go to the homepageのこのステップに含まれているので、前のシナリオからのデータは残っていません。.rb@browser.cookies.clear

他の誰かがこれに遭遇しましたか? もしそうなら、それを分類するためにどのような手順をとりましたか?

4

2 に答える 2

2

私は最近同じ問題を抱えていました。あなたのコードを見ることができないので、正確に何が起こっているのかわかりませんが、ある種のレスキューを使用するとうまくいくはずです。私の問題は、ヘッドレスブラウザを使用して救助していました...

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

これがうまくいくかどうか教えてください。

于 2013-02-22T05:46:47.267 に答える