自動化プロトコル
WebdriverIOでは、E2Eテストをローカルまたはクラウドで実行する際に、複数の自動化技術から選択できます。デフォルトでは、WebdriverIOはWebDriver Bidiプロトコルを使用してローカルの自動化セッションを開始しようとします。
WebDriver Bidiプロトコル
WebDriver Bidiは、双方向通信を使用してブラウザを自動化するためのプロトコルです。これはWebDriverプロトコルの後継であり、様々なテストユースケースのためのより多くの調査機能を提供します。
このプロトコルは現在開発中であり、将来的に新しいプリミティブが追加される可能性があります。すべてのブラウザベンダーはこのWeb標準の実装にコミットしており、多くのプリミティブがすでにブラウザに実装されています。
WebDriverプロトコル
WebDriverは、ユーザーエージェントの調査と制御を可能にするリモートコントロールインターフェースです。プロセス外のプログラムがリモートでWebブラウザの動作を指示する方法として、プラットフォームと言語に依存しないワイヤープロトコルを提供します。
WebDriverプロトコルは、ユーザーの視点からブラ ウザを自動化するように設計されており、ユーザーができることはすべてブラウザでも実行できます。アプリケーションとの一般的な対話(例:ナビゲーション、クリック、要素の状態の読み取りなど)を抽象化する一連のコマンドを提供します。Web標準であるため、すべての主要なブラウザベンダーでよくサポートされており、またAppiumを使用したモバイル自動化の基盤プロトコルとしても使用されています。
この自動化プロトコルを使用するには、すべてのコマンドを変換してターゲット環境(ブラウザやモバイルアプリなど)で実行するプロキシサーバーが必要です。
ブラウザ自動化の場合、プロキシサーバーは通常ブラウザドライバーです。すべてのブラウザで利用可能なドライバーがあります:
- Chrome – ChromeDriver
- Firefox – Geckodriver
- Microsoft Edge – Edge Driver
- Internet Explorer – InternetExplorerDriver
- Safari – SafariDriver
モバイル自動化を行うには、Appiumをインストールして設定する必要があります。これにより、同じWebdriverIOのセットアップを使用して、モバイル(iOS/Android)やデスクトップ(macOS/Windows)アプリケーションも自動化できます。
また、自動化テストを大規模にクラウドで実行できるサービスも多数あります。これらのドライバーをすべてローカルでセットアップする代わりに、クラウド上のこれらのサービス(例:Sauce Labs)と通信し、その結果をそのプラットフォームで確認することができます。テストスクリプトと自動化環境間の通信は次のようになります: