独自のグリッドを設定する

Selenium4でのグリッド設定のさまざまなモード

  • スタンドアロン
  • ハブとノード
  • 分散
  • Docker

スタンドアロンモード

新しいSeleniumServer Jarには、グリッドを実行するために必要なすべてのものが含まれています。 Seleniumグリッドを起動するのも最も簡単なモードです。 デフォルトでは、サーバーは http://localhost:4444 でリッスンします。 これは、RemoteWebDriverテストを指定する必要があるURLです。 サーバーは、システムパスから使用できる使用可能なドライバーを検出します。

java -jar selenium-server-4.0.0-alpha-7.jar standalone

ハブとノードモード

ハブを開始する

java -jar selenium-server-4.0.0-alpha-7.jar hub

ノードを登録する

java -jar selenium-server-4.0.0-alpha-7.jar node --detect-drivers true

Seleniumグリッドをクエリする

Selenium 4では、必要なデータを簡単にクエリしてまったく同じものを取得する新しい方法であるGraphQLを追加しました。

curl -X POST -H "Content-Type: application/json" --data '{ "query": "{grid{uri}}" }' -s http://localhost:4444/graphql | jq .



分散モード

  • Step 1: まず、イベントバスを開始します。 これは、後続のステップで他のグリッドコンポーネントへの通信パスとして機能します。

    java -jar selenium-server-4.0.0-alpha-7.jar  event-bus
    
  • Step 2: セッションマップを開始します。 これは、セッションIDをセッションが実行されているノードにマッピングする役割を果たします。

        java -jar selenium-server-4.0.0-alpha-7.jar sessions
    
  • Step 3: 新しいセッションキューを起動すると、新しいセッション要求がローカルキューに追加されます。 ディストリビューターはキューからリクエストを受け取ります。

        java -jar selenium-server-4.0.0-alpha-7.jar sessionqueuer
    
  • Step 4: ディストリビューターを起動します。 すべてのノードは、ディストリビュータープロセスの一部として接続されます。 セッションの作成要求が呼び出されたときに、ノードを割り当てる必要があります。

        java -jar selenium-server-4.0.0-alpha-7.jar distributor --sessions http://localhost:5556 --sessionqueuer http://localhost:5559 --bind-bus false
    
  • Step 5: 次に、Webに公開するアドレスであるルーターを起動します。

        java -jar selenium-server-4.0.0-alpha-7.jar router --sessions http://localhost:5556 --distributor http://localhost:5553 --sessionqueuer http://localhost:5559
    
  • Step 6: 最後に、ノードを追加します。

        java -jar selenium-server-4.0.0-alpha-7.jar node --detect-drivers true
    

Dockerイメージを介してスタンドアロングリッドを開始する

次のコマンドでノードを起動できます。

    java -jar selenium-server-4.0.0-alpha-1.jar node -D selenium/standalone-firefox:latest '{"browserName": "firefox"}'

Seleniumサーバーを起動し、Dockerに新しいインスタンスを作成することを委任できます。

     java -jar selenium-server-4.0.0-alpha-7.jar standalone -D selenium/standalone-firefox:latest '{"browserName": "firefox"}' --detect-drivers false