すべてのブラウザーを使用するには、5 つのテストを同時にトリガーする必要があります。すべて同じハブを指しています。さまざまなテストからコマンドを受信すると、ハブはそれらのコマンドを機能に一致する RC に渡します。このページで詳細を確認できます: http://selenium-grid.seleniumhq.org/how_it_works.html .
このサイトあたり:-
もちろん、Selenium Grid を実際に活用するには、テストを並行して実行する必要があります。Selenium テストを Java で作成している場合は、TestNG 並列実行または Parallel JUnit を利用できます。Selenium テストを Ruby で記述したい場合は、DeepTest を調べるか、複数のプロセスを生成することをお勧めします。お気に入りのプログラミング言語と開発プラットフォームには、既にソリューションが用意されている可能性があります。
編集: 上記のサイトは Selenium 1.x バージョン用で、Grid 2.0 用ではありません。ただし、並列テストを実行するための基本的な概念は変わりません
EDIT2: 手順とサンプル プログラムは以下のとおりです。これは、グリッドがテストを並行して実行する方法を示すためだけの非常に基本的なテストであることに注意してください。
Step1 - グリッドハブを起動
java -jar selenium-server-standalone.jar -role hub
ステップ 2 - RC ノードを開始します。たとえば、使用しているテストは webdriver テストです。そのため、webdriver ノードを開始する必要があります。このコマンドは、5 つの firefox ブラウザー、5 つの googlechrome および 1 つの IE ブラウザーをサポートする webdriver ノードを開始します。これは、webdriver のデフォルトの構成です。
java -jar selenium-server-standalone.jar -role wd -hub http://localhost:4444/grid/register
ステップ 3- 以下に示すような 5 つの個別のプログラムを作成します。このプログラムはJAVAです。必要な言語に変更する必要があります。クラス名を Program2、Program3 などに変更します。前述のように、これはテストを並行して実行する最良の方法ではありません。複数のテストを同時にトリガーするには、testNG または jUnit を使用する必要があります。それ自体は別のトピックなので、ここでは説明しません。
public class Program1{
public static void main(String args[]){
WebDriver wd;
//Assign a remotewebdriver object to webdriver with firefox capability
wd=new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),DesiredCapabilities.firefox());
wd.get("http://www.google.com");
//Sleep for 2 seconds so that RC will not be released. This is to demonstrate Hub using multiple RCs
Thread.sleep(120000);
//Close webdriver
wd.quit();
}
}
ステップ 4 - 5 つのプログラムすべてを同時に実行します。
ステップ 5 - グリッドが 5 つのテストを並行して実行する魔法を観察します。:)