開発者ブログ

02.環境構築(Selenium Grid)

Last modified by kashi on 2017/04/13, 17:20

Pitalium は Selenium と Selenium Grid を利用してマルチブラウザ環境でのテストを実現します。
ここでは、Selenium と Selenium Grid を利用してWindows上のデスクトップブラウザ(Internet Explorer、Firefox、Google Chrome)でテストを行うことが出来る環境を構築します。

事前準備

Javaのインストール

Selenium Gridの実行にはJavaが(Selenium 3以上ではJava8が)必要です。まずはコマンドプロンプトを開いて次のコマンドを実行して下さい。
java -version
実行した結果「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示される場合、Javaのインストールが必要です。こちらからJDKをダウンロードし、インストールを行ってください。

Google Chrome、Firefoxのインストール

  • Google Chromeを こちら のページからインストールします。
  • Firefoxをこちらのページからインストールします。

必要なファイルの取得

環境構築に必要なファイルをいくつかダウンロードし、任意のディレクトリに保存します。
このチュートリアルでは特筆ない限り C:\pitalium\ というディレクトリに保存します。

Selenium Standalone Server

Selenium Downloadページからselenium-server-standalone-3.xx.x.jarをダウンロードします。
※ 現在、Pitaliumで推奨しているSelenium Standalone Serverのバージョンは2.x.x ですが、Firefox 47以上でテストを動作させる場合は Selenium Standalone Server 3.0 以上が必要です。
  Firefox 47以上でテストを実行したい場合は、バージョン 3.0 以上をダウンロードしてください。

Internet Explorer Driver Server

こちらのThe Internet Explorer Driver Serverから取得します。
※Internet Explorer Driver Serverはzip形式で圧縮されていますので、解凍して IEDriverServer.exe を取得してください。

Chrome driver

Google Chrome上のテストに必要なWebDriverをWebDriver for Chromeページ から取得します。
※Chrome driverはzip形式で圧縮されていますので、解凍して chromedriver.exe を取得してください。

Gecko driver

FireFox 47.0以上のテストでは、Gecko Driver が必要になっています。
zipファイルを取得し、解凍して geckodriver.exe を取得してください。
※ Gecko Driver を使用する場合、Selelnium Standalone Server 3.0以上が必要です。
※ 2016年9月時点でGecko Driverは開発中であり、動作が不完全です。Gecko Driverの開発状況は、MozillaのWebDriver Statusを参照してください。

Internet Explorerの設定

Internet Explorerは、初期設定ではSeleniumからの操作に失敗します。
(IE利用時のみ)IEの設定を参考に、
Internet Explorerの設定が必要です。

Selenium Grid サーバーの起動

ハブサーバーの起動

Selenium Grid Hubの起動を参考に、ハブサーバーを起動します。
例えば、コマンドプロンプトを開き、selenium-server-standalone-3.xx.x.jar を次のコマンドで実行することで起動できます。

java -jar C:/pitalium/selenium-server-standalone-3.0.1.jar -role hub

ノードサーバーの起動

nodeConfig.jsonファイルの用意を参考に、テストが実行可能なブラウザの情報を記述した設定ファイルを作成します。
ここでは、次の内容でファイルを作成して保存します。
C:\pitalium\NodeConfigBrowser.json

{
 "capabilities": [
    {
     "browserName": "firefox",
     "maxInstances": 3,
     "seleniumProtocol": "WebDriver"
    },
    {
     "browserName": "chrome",
     "maxInstances": 3,
     "seleniumProtocol": "WebDriver"
    },
    {
     "browserName": "internet explorer",
     "version": "11",
     "maxInstances": 1,
     "seleniumProtocol": "WebDriver"
    }
  ],
 "hub": "http://localhost:4444/grid/register",
 "register": true
}

Nodeの起動を参考に、ノードサーバーを起動します。
Internet ExplorerおよびGoogle Chromeをテストに利用するため、ノードサーバーの起動コマンドは以下の様になります。

java -Dwebdriver.ie.driver=C:/pitalium/IEDriverServer.exe ^
    -Dwebdriver.chrome.driver=C:/pitalium/chromedriver.exe ^
    -Dwebdriver.gecko.driver=C:/pitalium/geckodriver.exe ^
    -Dwebdriver.firefox.bin="C:\Program Files\Mozilla Firefox\firefox.exe" ^
    -jar C:/pitalium/selenium-server-standalone-2.46.0.jar ^
    -role node ^
    -nodeConfig C:/pitalium/NodeConfigBrowser.json

※GeckoDriverはFirefox 47.0以上の場合のみ必要です。
※設定値はGrid2 - SeleniumHQ/selenium Wikiも参考にしてください。

http://localhost:4444/grid/consoleにアクセスして、以下のようにブラウザのアイコンが3つ表示されていれば、ブラウザがnodeに登録されたことになります。
grid-console.PNG

動作確認

PCブラウザ(Google Chrome)でテストを行うの手順1-6に従い、Seleniumのテスト実行要プロジェクトを作成します。
以下のテストクラスを作成し、実行します。

import java.net.URL;
import org.junit.Test;
import org.openqa.selenium.Platform;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

public class SeleniumGridTestSample {
   @Test
   public void test() throws Exception {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setPlatform(Platform.WINDOWS);
        capabilities.setBrowserName("internet explorer");

        RemoteWebDriver driver =
               new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
        driver.get("https://www.htmlhifive.com/");
        driver.quit();
   }
}

このコードを実行することで Selenium Grid サーバー経由でInternetExplorerを起動し、hifiveのウェブページが表示されます。
以上で、Selenium Gridの環境構築が終わりました。
次のステップから、ライブラリの使用方法についての説明に入ります。

次のステップ ⇒ 03.基本的なテストコードの書き方

参照


Copyright (C) 2012-2017 NS Solutions Corporation, All Rights Reserved.