web-dev-qa-db-ja.com

Seleniumを使用する場合と使用しない場合の分度器の実行の違い

分度器 documentation をチェックすると、directConnect: trueフラグを使用してSeleniumサーバーを使用せずに分度器を実行するオプションがあります。

後者の場合、Chrome、Firefoxのみがサポートされているという事実以外に、SeleniumサーバーとSeleniumサーバーなしで分度器テストを実行することの違いは何ですか?

25
meteor

まず第一に、現在、 5つの異なる組み込みオプション/ブラウザドライバに接続する方法があります

  1. seleniumServerJarを指定して、Seleniumスタンドアロンサーバーをローカルで起動します
  2. seleniumAddressを指定して、実行中のSeleniumサーバー(ローカルまたはリモート)に接続します
  3. sauceUserおよびsauceKeyを設定して、Sauce LabsリモートSeleniumサーバーに接続します
  4. browserStackを介してリモートSeleniumサーバーを使用するようにbrowserstackUserおよびbrowserstackKeyを設定します
  5. 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)を使用します。

関連トピックも参照してください。

49
alecxe

簡単に言えば、directConnectがtrueの場合、Seleniumサーバーを使用せずにテストを実行します。 Seleniumサーバーは、 Selenium Grid (ハブとノード)に類似したセットアップを意味します。 Selenium Serverを介してテストを実行すると、リモートマシンまたはローカルマシンでテストを実行でき、異なるノード間で実行負荷を分散するオプションが提供されます。 Seleniumサーバーを使用して、複数のブラウザーで同時にテストを実行することもできます。

directConnect falseは、FireFoxとChromeのローカルインストールでのみテストを実行します。テストコードベースが存在する同じマシンでテストを実行します。

4