2012-01-03 8 views
3

私はGallio/mbUnitを使用してブラウザを開いて、google.comに移動し、検索ボックスに「seleniumhq」と入力して、検索ボタンをクリックします。ノード上のHtmlUnitを持つWebDriverグリッドはノードCPUをペグします

私は私のホストを作成します。

java -jar \"C:\\selenium-server-standalone-2.15.0.jar\" -role hub -port 4444 

と私のノードを持つ:

のjava -jarの\ "C:セレンサーバースタンドアロン・2.15.0.jarの\ \" - ロールノード -hubます。http:// [次のhostIP]:4444 /グリッド/ -port 5556 -browser browserName = htmlunitを登録し、プラットフォーム= ANY、バージョン= Firefoxの、MAXINSTANCES = 1

私はwebdriverをインスタンスを作成し、私が使う:

ドライバ=新RemoteWebDriver( "のhttp:// localhostを:4444/WD /ハブ"、 DesiredCapabilities.HtmlUnitWithJavaScript());

私は自分のノードマシンを監視しています。テストが開始されると、CPUはわずか1回のテスト実行で99%にペグします。その要素が一貫HtmlUnitのために表示されていない理由について

var wait = new WebDriverWait(WebDriver, new TimeSpan(0, 0, 0, 40)); 
wait.Until(m => m.FindElement(By.Name("btnG")).Displayed); 

任意の考え:表示するには、検索ボタンを待っているとき、私はそれがさらに40秒後に、ただ、そこに表示されていない...タイムアウトを取得しますか?

なぜCPUがリモートノードのHtmlUnitで100%または100%に近づき、メモリが最大800,000Kになるのかについての考えはありますか?

同じテストを10個作成し、クリック検索ボタンのコードを削除すると、HtmlUnitテストに65秒かかります。このテストでは、DegreeOfParallelismを10に設定し、MaxInstancesを各ノードに5に設定した2つのノードを使用しています。 Chromeで同じパラメータを使って同じテストを実行すると、35秒で実行され、CPUが狂っているとは思えません。誰にもこれに関するアイデアはありますか? HtmlUnitは、私が読んだものから約4倍速くなるはずです。私はかなり間違っているはずの何かがあることを推測しています。

ご協力いただきありがとうございます。

答えて

0

少し遅れて、しかし:

は、HtmlUnitDriverが何をしているかを知るjstack <pid>を使用してスレッドダンプを取得します。あなたはおそらく、それがデッドロックされているか、ループ内に止まっているのを見るでしょう。

私はHtmlUnitを古いバージョンを使用して、いくつかのデッドロック&吊り問題があったしましたが、最新のSelenium server versions(2.31.0)は、これらの問題を解決したと思われHtmlUnit 2.11を使用しています。

HtmlUnit 2.9が含まれているSelenium 2.15を使用しているようですが、これが問題になる可能性があります。

関連する問題