開発者ブログ
HTML5資料室 » Selenium Grid

Selenium Grid

Last modified by kashi on 2017/02/21, 12:43

テスト環境

  • Windows7 64bit SP1/ Windows 10 Pro 64bit / Mac OS X 10.11.6 / macOS 10.12.3
  • JDK 1.8.0_111

Hubサーバのインストール~起動

インストール

Javaのインストール

  1. JRE1.8以上をインストールする。

※ Selenium 3系ではJava8以上が必要です。Java7以下を利用する場合は、Selenium 2系をお使いください。

Selenium Serverのダウンロード

  1. http://www.seleniumhq.org/download/ から
        selenium-server-standalone-3.0.1.jar をダウンロードし、
        任意の場所に保存する。

Hubの起動

  1. コマンドプロンプトを立ち上げ、Selenium Serverのjarが保存されている
        フォルダへ移動する。
  2. 次のコマンドを実行し、Hubを起動する。
        java -jar selenium-server-standalone-3.0.1.jar -role hub
  3. ブラウザで次のURLを開き、「Grid Console」のページが見えることを確認する。
       http://localhost:4444/grid/console

Nodeサーバのインストール~起動

インストール

Javaのインストール

  1. JRE1.8をインストールする。

Selenium Serverのダウンロード

  1. http://www.seleniumhq.org/download/ から
        selenium-server-standalone-3.0.1.jar をダウンロードし、
        任意の場所に保存する。

各種Driverのダウンロード

 ブラウザごとにDriverファイルをダウンロードします。

Node上でIEのテストを実行したい場合(Windowsのみ)

  1. http://www.seleniumhq.org/download/ から
        IEDriverServer_x64_3.xx.x.zip をダウンロードし、
        Selenium Serverのjarファイルと同じ場所に解凍する
        (.jarと.exeを同じフォルダに配置する)。
    64bit版 Windows + 64bit版 IE Driver Server を利用すると、文字入力(Sendkeysコマンド)が
      非常に遅くなるという問題がある。
      この問題は32bit版の IE Driver Serverを利用すると改善されるため、必要に応じて32bit版を
      ダウンロードする。

     ⇒ 2015/6/29時点では、すべてのゾーンの保護モードおよび拡張保護モードを有効にすると解消する。
      設定方法はこちらを参照(Japan IE Support Team Blogです)

    テストライブラリを使用するときは、mod版をご使用ください。⇒ mod版のダウンロード

Node上でChromeのテストを実行したい場合

  1. https://sites.google.com/a/chromium.org/chromedriver/ から
        最新のchromedriverをダウンロードし、Selenium Serverのjarファイルと同じ場所に解凍する
        (.jarと.exeを同じフォルダに配置する)。

Node上でFirefoxのテストを実行したい場合

  1. https://github.com/mozilla/geckodriver/releasesから最新のzipファイルを取得し、解凍して geckodriver.exe を取得し、Selenium Serverのjarファイルと同じ場所に解凍する

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

Node上でMicrosoft Edgeのテストを実行したい場合 (Windows 10のみ)

  1. https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ から
        最新のMicrosoft WebDriverをダウンロードし、Selenium Serverのjarファイルと同じ場所に解凍する

Node上でSafariのテストを実行したい場合(Max OS Xのみ)

  1. Safari9以前またはOS X 10.10(Yosemite)以前を使っている場合
      こちらを参照して、SafariDriverをインストールしてください
  2. Safari10以降、を使っている場合
      Safari 10からはSafariDriverはプリインストールされているため、インストール作業は不要です。以下の設定をしてください。
    1. 設定画面を開いて、開発メニューの表示をする
      開発メニュー.png
    2. リモートオートメーションを許可する
      リモートオートメーション.png

※ 初回Seleniumテスト時には実行前にMacのアカウントパスワード入力画面が表示されます。2回目以降は普通に実行されます。

(IE利用時のみ)IEの設定

IE7以上、Windows Vista または7の場合

  1. InternetExplorerを起動し、「インターネット オプション」を開く。
  2. 「セキュリティ」タブを開く。
  3. 「インターネット」~「制限付きサイト」の全てのゾーンで、
        「保護モードを有効にする」のチェックをONまたはOFFに統一する。

IE10以上の場合

  1. さらに、「詳細設定」タブを開き、「拡張保護モードを有効にする」のチェックを外す。

IE11のみ

Selenium WebDriver用セキュリティアップデートのインストール

  1. https://msdn.microsoft.com/en-us/library/ie/dn800898(v=vs.85).aspx に従い、
        KB2990999をインストールする。
     

レジストリキーの編集

  1. レジストリエディタを開き、次のレジストリキーを捜す。
        見つからない場合は作成する。
      ・32bit:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
      ・64bit:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
  2. 上記キーの中に、「iexplore.exe」の名前でDWORD valueを作成する。値は0でよい。

※ 2015/01/21現在、更新プログラムKB3025390がインストールされていると
  IE11でテストが動作しない。修正パッチ待ち。
  → 2015/02/10 リリースの KB3021952で修正された。

nodeConfig.jsonファイルの用意

  1. Selenium Serverのjarファイルと同じフォルダに、次のような内容で
        nodeConfig.jsonを作成する。
{
"capabilities":
  [
   {
  "platform": "WINDOWS",
  "browserName": "firefox",
  "maxInstances": 2,
  "version": "33.0",
  "seleniumProtocol": "WebDriver"
   },
  
   {
  "platform": "WINDOWS",
  "browserName": "internet explorer",
  "maxInstances": 2,
  "version": "11.0",
  "seleniumProtocol": "WebDriver"
   },
   {
  "platform": "WINDOWS",
  "browserName": "MicrosoftEdge",
  "maxInstances": 2,
  "seleniumProtocol": "WebDriver"
   }
  ],
 "maxSession": 5,
 "hub": "http://localhost:4444/grid/register",
 "port": "5051",
 "register": true
}

Safariの場合は、以下の通り

{
"capabilities":
  [
   {
  "platform": "MAC",
  "version": "10.0",
  "browserName": "safari"
   }
  ],
 "maxSession": 5,
 "hub": "http://localhost:4444/grid/register",
 "port": "5051",
 "register": true
}

 ●項目の説明
 ・platform:Nodeを動作させる端末のOS。 ex) WINDOWS, MAC, LINUX
 ・browserName:そのNode上で起動できるブラウザ。 ex) firefox, internet explorer, chrome, safari
 ・maxInstances:browserNameで指定したブラウザを同時起動させる最大数。
 ・version:ブラウザのバージョン。
 ・seleniumProtocol:Selenium RC(Selenium1)、Selenium WebDriverのどちらのモードで実行するか。
 ・hub:このNodeを登録するHubのアドレス。
      (上記はHubとNodeを同じ端末上で起動した例。別端末の場合はホストを書き換える。)
 ・port:Nodeを起動するポート。

Nodeの起動

  1. コマンドプロンプトを立ち上げ、Selenium Serverのjarが保存されている
        フォルダへ移動する。
  2. 次のコマンドを実行し、Nodeを起動する。
        java -jar selenium-server-standalone-3.0.1.jar -role node -nodeConfig nodeConfigLocal.json
      ●テストしたいブラウザによって、それぞれ次のオプションを -jar の前に追加して起動する。
       -Dwebdriver.ie.driver=IEDriverServer.exe (Windowsの場合のみ)
       -Dwebdriver.chrome.driver=chromedriver.exe
       -Dwebdriver.gecko.driver=geckodriver.exe
       -Dwebdriver.edge.driver=MicrosoftWebDriver.exe (Windows10の場合のみ)
       -Dwebdriver.safari.driver=/usr/bin/safaridriver (Safari 10+の場合のみ)
  3. ブラウザでGrid Consoleのページを開き、2で立ち上げたノードが
        コンソール画面に追加されていることを確認する。

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