LoginSignup
3
3

More than 5 years have passed since last update.

【SauceLabs】タイムアウトを設定する

Last updated at Posted at 2014-08-04

現象

  • タイムアウトの時間はデフォルトで90秒
  • 何回か回していると高確率で以下のエラーがでるようになった
  • 90秒以内にSauceLabsとの接続が完了しなかったと。。
  • 自分の環境では本当に時間が足りていないのではないかという疑いが
  • そこで、タイムアウトの時間をのばしてみると以降このエラーはでなくなったのでメモメモ
  • 実行しているのはEC2@small instance
  • なんでこんなに接続に時間がかかっているのかは不明
  • ちなみにTravis+Saucelabsで動かしているときにもたまに目にした
[Connecting to Sauce Labs...]
  Sauce Connect failed to connect after 90 seconds (RuntimeError)
  /home/ec2-user/.rvm/gems/ruby-1.9.3-p547/gems/sauce-connect-3.4.1/lib/sauce/connect.rb:119:in `wait_until_ready'
  /home/ec2-user/.rvm/gems/ruby-1.9.3-p547/gems/sauce-3.4.9/lib/sauce/utilities/connect.rb:20:in `start'
  /home/ec2-user/.rvm/gems/ruby-1.9.3-p547/gems/sauce-cucumber-3.4.0/lib/sauce/cucumber.rb:71:in `around_hook'
  /home/ec2-user/.rvm/gems/ruby-1.9.3-p547/gems/sauce-cucumber-3.4.0/lib/sauce/cucumber.rb:162:in `Around'

対応

  • sauce_helper.rbに以下を追加するだけ
    • デフォルト90 -> 270に変更
features/support/sauce_helper.rb
require 'sauce/connect'
Sauce::Connect::TIMEOUT = 270
  • 以下のようにsauce_helper.rbに一行追加してもだめだったので注意!
features/support/sauce_helper.rb
require "sauce"
require 'sauce/capybara'
require "sauce/cucumber"

Capybara.default_driver = :sauce

Sauce.config do |c|
  c[:browsers] = [ 
    ["Windows 8", "Internet Explorer", "10"],             
    ["Windows 7", "Firefox", "20"],
    ["OS X 10.8", "Safari", "6"],                         
    ["Linux", "Chrome", nil]          
  ]
  c[:idle_timeout] = 120 # <= 90秒(デフォルト)から120秒に変更
end

メモ

  • sauce-connectのバージョンは3.1.0と2014/08/21現在の3.3.1とではタイムアウトまわりの部分が結構変わっていた

3.1.0と3.3.1との違い

lib/sauce/connect.rb
### 一部を抜粋
module Sauce
  class Connect
    TIMEOUT = 90
    def initialize(options={})
      @timeout = options.fetch(:timeout) { TIMEOUT } #<= ここが追加されている
    end

    def wait_until_ready
      start = Time.now
      while !@ready and (Time.now-start) < @timeout and @error != "Missing requirements"
        sleep 0.5
      end
...


~ただの宣伝~

  • 全国のSeleniumer必読
  • Seleniumerといっていますが、Selenium, SauceLabs, Travis, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3