3

アプリケーションをテストするためにwatir webdriverを使用しています。現在、Linux サーバーで 1 ~ 3 分ごとに 20 個の watir テストを開始しています。Firefox の動作方法が原因で、起動中にポート 7055 がロックされるため、常にテストの実行に失敗していました。同時に開始されたテストは、ポートが時間内に解放されなかった場合、最終的にタイムアウトになります。

たくさんの実験の後、このファイルを変更することでこの問題を回避できたようです:

宝石/selenium-webdriver-2.21.1/lib/selenium/webdriver/firefox/launcher.rb

デフォルトの 7055 の代わりにランダムなロック ポートを割り当てるために、このコードを一番上に追加しました。

これを行うためのより良い方法があるかどうか、またはこれが問題を引き起こす可能性があるかどうかを尋ねますか?

      ### added to attempt to reduce unable to open firefox issues
      if @port == 7055 then
            @port += rand(2000)
            puts "PORT: #{@port}"
      end

他の誰かがこれを台無しにしましたか?私はRubyにかなり慣れていないので、それをスクリプト化するためのはるかに良い方法があると推測しています.

ご提供いただけるご意見をお寄せいただきありがとうございます。

4

1 に答える 1

1

firefox launcher.rb を変更する代わりに、各スクリプトに何らかのロジックを組み込む方がよいと思います。このような何かが役立つかもしれません!

以下のリンクをご覧ください: Ruby - ポートが開いているかどうかを確認します

于 2012-06-28T12:06:02.083 に答える