第6章. リモートWebDriver
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
本書で説明する例では、テストを実行するマシンにローカルにインストールされたウェブブラウザを使用する。この 章では、Selenium WebDriver API のもうひとつの関連機能、すなわちリモートブラウザ (他のホストにインストールされたブラウザ) を使う機能について説明します。最初に、Selenium WebDriver でリモートブラウザを使用できるアーキテクチャをレビューする。第二に、Selenium WebDriver のテストにリモートブラウザを提供するネットワークインフラである Selenium Grid を研究する。第3に、最も関連性の高いクラウドプロバイダ、すなわち自動テスト用のマネージドサービスを提供する企業を分析する。最後に、Seleniumのブラウザ・インフラをサポートするためにDockerを使用する方法を探る。
Selenium WebDriverアーキテクチャ
第1章で紹介したように、Selenium WebDriverはウェブ・ブラウザをプログラムで制御するためのライブラリである。自動化は、各ブラウザのネイティブ機能に基づいている。したがって、Selenium WebDriver API を使ったスクリプト(通常はテスト)とブラウザの間に、ドライバと呼ばれるバイナリファイルを配置する必要がある。本書でこれまで見てきた例では、ローカルブラウザ、つまり Selenium WebDriver API を使うテストを実行するのと同じマシンにインストールされたブラウザを使っています。図 6-1はこの方法を示している。この場合、そして Selenium WebDriver API の Java 言語バインディングを使用する場合は、 Chrome を制御するChromeDriver のインスタンスを作成し、FirefoxDriver Firefox などを制御する インスタンスを作成する必要がある。
図6-1. ローカルブラウザを使った Selenium WebDriver のアーキテクチャ
このプロセスをサポートする通信プロトコル()は、W3C WebDriverと呼ばれている。この標準プロトコルは、HTTP上のJSONメッセージに基づいている。このおかげで、Selenium WebDriver のアーキテクチャは、相互接続された異なるコンピュータ(ホスト)に分散させることができる。図6-2はリモートアーキテクチャの概略図である。
図6-2. リモートブラウザを使ったSelenium WebDriverのアーキテクチャ
この場合、Selenium WebDriver API は W3C WebDriver メッセージを 通常Selenium Server と呼ばれるサーバ側コンポーネントに送信する。このサーバは、自動化が行われるウェブブラウザを提供する他のホストへのクライアントリクエストのプロキシとして動作する。このリモートアーキテクチャは、クロスブラウザテスト(すなわち、複数のブラウザタイプ、バージョンまたはオペレーティングシステムでウェブアプリケーションを検証すること)と並列テスト実行を容易にする。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access