私たちの現在の C#/Nunit 2.6.3 テスト フレームワークには、1 台の PC で実行するのに 35 時間以上かかる回帰スイートがあり、一部のテストは 20 分もかかります。複数のマシンで実行するテストのバッチをセットアップするのは時間がかかり、非効率的であるため、テストを NUnit 3 に移行して、Selenium Grid での並列実行の利点を得ようとしています。
IE の 1 つのインスタンスを実行する 12 のノードを持つことが私の目標です。ただし、VS 用の NUnit3 テスト アダプターは、すべてのテストを同時に実行しようとしているようです。
ノードを持つよりも多くのフィクスチャから常にテストを実行するため、ノードが使用可能になるまでフィクスチャをキューに入れることが重要です。実際には、テスト フィクスチャはノードが解放されるまで数時間待たなければならない場合があります。現在の構成実験では、次のように設定しています。
- 次の構成を持つハブ:
java -jar selenium-server-standalone-2.48.2.jar -role hub -newSessionWaitTimeout:-1 -browserTimeout 120 -timeout 3600
デフォルト構成の単一ノード。
それぞれ 10 個のテストを含む 2 つのテスト フィクスチャ。テスト フィクスチャには次の属性があります。
[Parallelizable(ParallelScope.Self)]
この状況では、IE の 1 つのインスタンスをサポートする 1 つのノードのみが実行されるため、1 つのテストのみが実行されると予想されます。ハブは、ノードが解放されると、キュー内の次のテストをノードに送信します。ただし、両方のテスト フィクスチャが同時に実行されているようです。1 つのテストがノードにプッシュされますが、他のフィクスチャのテストは失敗し、次のメッセージが表示されます。
結果メッセージ: OpenQA.Selenium.WebDriverException : URL http://localhost:4444/wd/hub/session
のリモート WebDriver サーバーへの HTTP 要求が60 秒後にタイムアウトしました。----> System.Net.WebException : 操作がタイムアウトしました
Java/JUnit フレームワークの Eclipse でグリッドを使用したとき、問題はありませんでした。ハブは、デフォルトの構成を使用して、タイムアウトなしでノードが解放されるまでテストをキューに入れます。
正しい構成を知っている人はいますか、それとも NUnit 3 テスト アダプターの問題ですか? 残念ながら、ブラウザの選択は IE に固定されています。