分度器 documentation をチェックすると、directConnect: true
フラグを使用してSeleniumサーバーを使用せずに分度器を実行するオプションがあります。
後者の場合、Chrome、Firefoxのみがサポートされているという事実以外に、SeleniumサーバーとSeleniumサーバーなしで分度器テストを実行することの違いは何ですか?
まず第一に、現在、 5つの異なる組み込みオプション/ブラウザドライバに接続する方法があります :
seleniumServerJar
を指定して、Seleniumスタンドアロンサーバーをローカルで起動しますseleniumAddress
を指定して、実行中のSeleniumサーバー(ローカルまたはリモート)に接続しますsauceUser
およびsauceKey
を設定して、Sauce LabsリモートSeleniumサーバーに接続しますbrowserstackUser
およびbrowserstackKey
を設定しますdirectConnect
を使用して、ChromeまたはFirefoxに直接接続します。追加のchromeDriver
およびfirefoxPath
設定があり、カスタムChromeドライバーおよびFirefoxアプリケーションバイナリの場所を定義するために使用できます。最初の4つのオプションは、基本的に「プロキシ」、Seleniumサーバーを介して機能します。
サーバーは、テストスクリプト(WebDriver APIで作成)とブラウザードライバー(WebDriverプロトコルで制御)の間のプロキシとして機能します。サーバーは、スクリプトからドライバーにコマンドを転送し、ドライバーからスクリプトに応答を返します。
直接のWebドライバー接続ではなく、中間のSeleniumサーバーを介してブラウザーを自動化する主な理由は、Seleniumサーバーが Selenium Grid として機能する場合、テストを拡張/スケーリングできることです複数のブラウザ、複数のシステム上の複数のブラウザ、たとえば、 Sauce Labs Selenium Grid を参照してください。参考までに、 BrowserStack
service もあります。これは、他の機能とは別に、Sauce Labsと同様に、膨大な量のさまざまな機能/構成(ブラウザーおよびシステム)でSeleniumサーバーとして機能します。
Seleniumサーバーを起動し(オプション2について)、directConnect
を使用しない他の使用例は、テストを実行する特定の構成がある場合です。たとえば、ボードにIE 11を搭載したWindowsマシンとFirefox 35を搭載したUbuntuがあるとします。この場合、これらのマシンを Seleniumサーバーに接続するSeleniumノードとして構成できます。/hub 。
テストをローカルで実行しており、ターゲットブラウザーがChromeまたはFirefoxである場合、directConnect
を使用すると、テストの実行が速くなります。
ただし、テストをローカルで実行していて、IE、Safari、または他のブラウザーに対してテストする必要がある場合、これらのブラウザーは「直接接続」モードで動作できないため、オプション1〜4(通常1)を使用します。
関連トピックも参照してください。
簡単に言えば、directConnect
がtrueの場合、Seleniumサーバーを使用せずにテストを実行します。 Seleniumサーバーは、 Selenium Grid (ハブとノード)に類似したセットアップを意味します。 Selenium Serverを介してテストを実行すると、リモートマシンまたはローカルマシンでテストを実行でき、異なるノード間で実行負荷を分散するオプションが提供されます。 Seleniumサーバーを使用して、複数のブラウザーで同時にテストを実行することもできます。
directConnect
falseは、FireFoxとChromeのローカルインストールでのみテストを実行します。テストコードベースが存在する同じマシンでテストを実行します。