Selenium-grids
セレン-グリッド
Selenium Gridは、複数の物理マシンまたは仮想マシンにテストを分散して、スクリプトを並行して(同時に)実行できるようにするツールです。 迅速かつ正確なフィードバックを提供することで、ブラウザー間およびプラットフォーム間のテストプロセスを劇的に加速します。
Selenium Gridを使用すると、同じコードベースを使用するWebDriverまたはSelenium Remote Controlテストの複数のインスタンスを並行して実行できるため、実行するシステムにコードが存在する必要がありません。 selenium-server-standaloneパッケージには、グリッドでスクリプトを実行するためのHub、WebDriver、およびSelenium RCが含まれています。
Selenium Gridには、ハブとノードがあります。
- ハブ-ハブは、テストがトリガーされる中心点として機能するサーバーとしても理解できます。 Selenium Gridにはハブが1つしかなく、単一のマシンで一度起動されます。
- ノード-ノードは、テストを実行するハブに接続されているSeleniumインスタンスです。 グリッドには1つ以上のノードがあり、任意のOSであることができ、Seleniumでサポートされているブラウザーを含めることができます。
建築
次の図は、Selenium Gridのアーキテクチャを示しています。
グリッドでの作業
グリッドを使用するには、特定のプロトコルに従う必要があります。 このプロセスに関与する主な手順は次のとおりです-
- ハブの構成
- ノードの構成
- スクリプトを開発してXMLファイルを準備する
- テスト実行
- 結果分析
これらの各ステップについて詳しく説明します。
ハブの構成
- ステップ1 *-http://docs.seleniumhq.org/download/から最新のSelenium ServerスタンドアロンJARファイルをダウンロードします。 以下に示すバージョンをクリックしてダウンロードします。
- ステップ2 *-次のコマンドを使用してSelenium Serverを起動し、ハブを起動します。 ここで、ポート「4444」を使用してハブを起動します。
注-ポート#4444で実行されている他のアプリケーションがないことを確認してください。
- ステップ3 *-ブラウザーを開き、ハブ(ステップ#2を実行したシステム)からURL http//localhost:4444に移動します。
- ステップ4 *-「コンソール」リンクをクリックし、「構成の表示」をクリックします。 ハブの構成は次のように表示されます。 現在のところ、ノードはないため、詳細を確認することはできません。
ノードの構成
- ステップ1 *-ノード(スクリプトを実行する場所)にログオンし、「selenium-server-standalone-2.42.2」をフォルダーに配置します。 ノードの起動中にselenium-server-standalone JARを指す必要があります。
- ステップ2 *-以下のコマンドを使用してFireFoxノードを起動します。
どこで、
D:\ JAR \ selenium-server-standalone-2.42.2.jar = Selenium ServerスタンドアロンJarファイルの場所(ノードマシン上)
http://10.30.217.157:4444 =ハブのIPアドレスと4444はハブのポート
browserName = firefox(ノードのブラウザー名を指定するパラメーター)
5555 = Firefoxノードが稼働するポート。
- ステップ3 *-コマンドの実行後、ハブに戻ります。 URL(http://10.30.217.157:4444)に移動すると、ハブに接続されたノードが表示されます。
- ステップ4 *-次に、Internet Explorerノードを起動します。 IEノードを起動するには、Internet Explorerドライバーをノードマシンにダウンロードする必要があります。
- ステップ5 *-Internet Explorerドライバーをダウンロードするには、http://docs.seleniumhq.org/download/に移動し、OSのアーキテクチャに基づいて適切なファイルをダウンロードします。 ダウンロードした後、exeファイルを解凍し、IEノードを起動するときに参照する必要があるフォルダーにそのファイルを配置します。
- ステップ6 *-次のコマンドを使用してIEを起動します。
どこで、
D:\ IEDriverServer.exe =ダウンロードされたIEドライバーの場所(ノードマシン上)
D:\ JAR \ selenium-server-standalone-2.42.2.jar = Selenium ServerスタンドアロンJarファイルの場所(ノードマシン上)
http://10.30.217.157:4444 =ハブのIPアドレスと4444はハブのポート
browserName = ie(ノードのブラウザー名を指定するパラメーター)
5558 = IEノードが稼働しているポート。
- ステップ7 *-コマンドの実行後、ハブに戻ります。 URL(http://10.30.217.157:4444)に移動すると、ハブに接続されているIEノードが表示されます。
- ステップ8 *-Chromeノードを起動します。 Chromeノードを起動するには、ノードマシンにChromeドライバーをダウンロードする必要があります。
- ステップ9 *-Chromeドライバーをダウンロードするには、http://docs.seleniumhq.org/download/に移動し、次に[サードパーティブラウザードライバー]領域に移動して、以下に示すようにバージョン番号 '2.10’をクリックします。
- ステップ10 *-OSのタイプに基づいてドライバーをダウンロードします。 Windows環境で実行するため、Windows Chromeドライバーをダウンロードします。 ダウンロードしたら、exeファイルを解凍し、Chromeノードの起動中に参照する必要があるフォルダーに配置します。
- ステップ11 *-次のコマンドを使用してChromeを起動します。
どこで、
D:\ chromedriver.exe =ダウンロードしたchromeドライバーの場所(ノードマシン上)
D:\ JAR \ selenium-server-standalone-2.42.2.jar = Selenium ServerスタンドアロンJarファイルの場所(ノードマシン上)
http://10.30.217.157:4444 =ハブのIPアドレスと4444はハブのポート
browserName = chrome(ノードのブラウザー名を指定するパラメーター)
5557 = chromeノードが稼働しているポート。
- ステップ12 *-コマンドを実行した後、ハブに戻ります。 URL(http://10.30.217.157:4444)に移動すると、Hubに接続されているChromeノードが表示されます。
スクリプトを開発してXMLファイルを準備する
- ステップ1 *-TestNGを使用してテストを開発します。 次の例では、リモートwebDriverを使用してこれらのブラウザーをそれぞれ起動します。 ドライバーがノードで実行するすべての情報を持つように、その機能をドライバーに渡すことができます。
ブラウザパラメータは、「XML」ファイルから渡されます。
- ステップ2 *-ブラウザパラメータはXMLを使用して渡されます。 プロジェクトフォルダーの下にXMLを作成します。
- ステップ3 *-「一般」から「ファイル」を選択し、「次へ」をクリックします。
- ステップ4 *-ファイルの名前を入力し、[完了]をクリックします。
- ステップ5 *-以下に示すように、プロジェクトフォルダーの下にTestNg.XMLが作成されます。
- ステップ6 *-XMLファイルの内容を以下に示します。 すべてのテストが並行して実行されるように、3つのテストを作成してスイートに入れ、parallel = "tests"に言及します。
テスト実行
- ステップ1 *-作成されたXMLを選択します。右クリックして、「実行」>>「TestNG Suite」を選択します。
- ステップ2 *-すべてのブラウザノードを起動したノードを開きます。 3つのブラウザがすべて同時に実行されていることがわかります。
結果分析
- ステップ1 *-実行が完了すると、他の実行と同様に結果を分析できます。 次のスナップショットに示すように、結果の概要がコンソールに出力されます。
- ステップ2 *-[実行中のスイートの結果]タブに移動すると、TestNGは以下に示すように結果の概要を表示します。
- ステップ3 *-HTMLを生成すると、テスト結果をHTML形式で見ることができます。