Gridプラットフォームの歴史
このドキュメントは以前 wiki にありました
Grid 2 についてはこちらをご覧ください
Selenium Gridプラットフォーム
このセクションでは、Selenium Grid ノードと [DesiredCapabilities] オブジェクトの設定で使用される PLATFORM オプションについて説明します。
プラットフォームの歴史
Grid から新しい WebDriver セッションをリクエストする際、ユーザーはリモートブラウザの [DesiredCapabilities] を指定できます。ブラウザ名、バージョン、プラットフォームなどは、テストで指定できるオプションのリストに含まれています。DesiredCapabilities を指定します。
次のコードは、Windows XP プラットフォーム上の Internet Explorer バージョン 9 の DesiredCapability を示しています
[[DesiredCapabilities]] capability = DesiredCapabilities.internetExplorer();
capability.setVersion("8");
capability.setPlatform(Platform.XP);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
指定された DesiredCapability を持つ新しいセッションのリクエストは Grid Hub に送信され、Grid Hub は登録されているすべてのノードを調べて、テストで指定された仕様に一致するノードがあるかどうかを確認します。仕様に一致するノードがない場合、CapabilityNotPresentOnTheGridException が返されます。
PLATFORM は、新しいセッションが作成されるオペレーティングシステムを選択する機能を決定するという誤解がよくあります。この状況では、プラットフォームとオペレーティングシステムは同じではありません。したがって、プラットフォームを「Windows 2003 Server」と指定しても、Windows XP、Vista、および 2003 サーバーから選択することはできません。この誤解は、プラットフォームの名前がオペレーティングシステムの名前と一致する Mac OSX や Linux などのプラットフォームから生まれる可能性があります。
Selenium Grid の場合、プラットフォームは、Driver Atoms と Web ブラウザ間の基盤となるインタラクションを指します。Mac OSX および Linux ベースのオペレーティングシステム (Centos、Ubuntu、Debian など) は、Firefox や Chrome などの Web ブラウザとの間で比較的安定した通信を行います。したがって、プラットフォーム名は、以下の例に見られるように、理解しやすいものです
capability.setPlatform(Platform.MAC); //Set platform to OSX
capability.setPlatform(Platform.LINUX); // Set platform to Linux based systems
Vista のリリース前、Windows ベースのオペレーティングシステムにはプラットフォームが 1 つしかありませんでした。以下に示します
capability.setPlatform(Platform.WINDOWS); //Set platform to Windows
ただし、Windows Vista で UAC が導入されたことにより、WebDriver と Internet Explorer 間の基盤となるインタラクションに大きな変更が加えられました。UAC の制約を回避するために、Windows ベースのオペレーティングシステムを持つノードに新しいプラットフォームが追加されました
capability.setPlatform(Platform.VISTA); //Set platform to VISTA
Windows 8 のリリースにより、WebDriver が Internet Explorer と通信する方法に別の大きな見直しが行われ、Windows 8 ベースのノードに新しいプラットフォームが追加されました
capability.setPlatform(Platform.WIN8); //Set platform to Windows 8
同様のことが Windows 8.1 の導入でも起こりました。この例では、プラットフォームは Windows 8.1 に設定されています
capability.setPlatform(Platform.WIN8_1); //Set platform to Windows 8.1
オペレーティングシステムプラットフォーム
次のリストは、オペレーティングシステムの一部と、それらがどのプラットフォームの一部であるかを示しています
MACすべての OSX オペレーティングシステム LINUX Centos Ubuntu UNIXSolarisBSD XP Windows Server 2003 Windows XP Windows NT VISTAWindows VistaWindows 2008 ServerWindows 7 WIN8 Windows 2012 Server Windows 8 WIN8_1Windows 8.1
ファミリー
異なるプラットフォームは、プラットフォームの「ファミリー」にグループ化されます。たとえば、Win8 および XP プラットフォームは WINDOWS ファミリーの一部です。同様に、ANDROID および LINUX は UNIX ファミリーの一部です。
プラットフォームとプラットフォームファミリーの選択
[DesiredCapabilities] オブジェクトにプラットフォームを設定する場合、個々のプラットフォームまたはプラットフォームのファミリーを設定できます。例:
capability.setPlatform(Platform.VISTA); //Will return a node with Windows Vista or 2008 Server or Windows 7 Operating System.
capability.setPlatform(Platform.XP); //Will return a node with Windows XP or 2003 Server or Windows 2000 Professional Operating System.
capability.setPlatform(Platform.WINDOWS); //Will return a node with ANY Windows Operating System
詳細情報
最新のプラットフォームの詳細については、このファイルをご覧ください
org.openqa.selenium.Platform.java