自動化プロトコル
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)と通信し、プラットフォームで結果を確認できます。テストスクリプトと自動化環境間の通信は次のようになります