2016-05-04 21 views
1

私たちの現在のC#/ Nunit 2.6.3テストフレームワークは、1台のPCで実行するのに35時間を要する回帰スイートと、20分もの長いテストでフィクスチャを持っています。複数のマシンで実行するテストのバッチを設定するのは時間がかかり、効率が悪いので、テストをNUnit 3に移行して、Selenium Gridで並列実行のメリットを得ようとしています。NUnit3並列テスト実行でSelenium Gridを設定するには?

IEの1つのインスタンスをそれぞれ実行する12のノードを持つことが私の目的です。しかし、VS用のNUnit3テストアダプタは、すべてのテストを同時に実行しようとしているようです。

ノードを持つよりも多くのフィクスチャからテストを実行するので、ノードが使用可能になるまで、フィクスチャがキューに入ることが重要です。実際には、テストフィクスチャは空いているノードのために数時間待たなければならないかもしれません。

  • ハブ以下の設定で:デフォルトの設定でjava -jar selenium-server-standalone-2.48.2.jar -role hub -newSessionWaitTimeout:-1 -browserTimeout 120 -timeout 3600
  • 単一ノード私は以下のように設定している私の現在のコンフィギュレーション実験のために 。

  • 2つのテストフィクスチャ、それぞれ10テスト。私は、単一のテストをIEの単一のインスタンスをサポートしているような単一のノードが実行されることが期待される。このような状況において[Parallelizable(ParallelScope.Self)]

:試験装置は、以下の属性を有します。その後、ハブは、キュー内の次のテストを解放したときにノードに送信します。しかし、両方のテストフィクスチャが同時に実行されているようです。一つの試験がノードにプッシュされるが、他の固定具上のテストは次のメッセージで失敗する:

結果メッセージ:
OpenQA.Selenium.WebDriverException:URL http://localhost:4444/wd/hub/sessionためのリモートwebdriverをサーバにHTTPリクエストが後にタイムアウト60秒。 ----> System.Net.WebException:操作がタイムアウトしました

私はJava/JUnitフレームワークでEclipseでグリッドを使用しても問題はありませんでした。ハブは、デフォルト設定を使用して、タイムアウトなしでノードが解放されるまでテストをキューに入れます。

誰かが正しい設定を知っていますか、これはNUnit 3テストアダプタの問題ですか?ブラウザーの選択は残念ながらIEとして修正されています。

答えて

2

AssemblyInfoのLevelOfParallelism属性を設定することで、並列スレッドの数を制御できることがわかりました。

//Determines the number parallel threads that run simultaneously 
[assembly: LevelOfParallelism(7)] 

この属性に使用可能なノードの数が設定されている場合、期待どおりのテスト待ち行列になります。

関連する問題