ドライバーとプラグインの管理
Appiumで何か便利なことをするには、少なくとも1つのドライバーがインストールされている必要があります。そうしないと、Appiumは何を自動化すればよいかわかりません。そこにはドライバーとプラグインのエコシステム全体があります!
このガイドでは、これらのドライバーとプラグインを管理する方法について説明します。基本的な戦略は2つあります。Appiumの拡張CLIインターフェイスを使用するか、npm
ベースのプロジェクトで拡張機能を自分で管理するかです。
注意
他のパッケージマネージャーは現在サポートされていません。
Appiumの拡張CLIの使用¶
Appiumの拡張CLIを使用すると、Appiumにドライバーとプラグインの管理を任せることができます。CLIコマンドを使用して、インストール、更新、または削除する拡張機能をAppiumに指示します。CLIを使用してドライバーをインストールする方法の例を次に示します。
このコマンドは、XCUITestドライバーの最新バージョンをインストールします。拡張CLIには、さまざまなコマンドとパラメーターが付属しています。詳細については、そのコマンドのドキュメントを参照してください。
Appiumが拡張機能を管理している場合に最も重要な質問は、それらがどこにインストールされているかということです。Appiumは、APPIUM_HOME
環境変数で指定されたディレクトリで拡張機能を管理します。その変数を好きなように設定でき、Appiumはそこに拡張機能を管理します。したがって、たとえば、競合するバージョンで同じドライバーをインストールする場合など、APPIUM_HOME
環境変数を使用して、さまざまな拡張機能のセットを管理することもできます。
APPIUM_HOME=/path/to/home1 appium driver install [email protected]
APPIUM_HOME=/path/to/home2 appium driver install [email protected]
これらのコマンドを実行すると、2つの異なるAPPIUM_HOME
ディレクトリが作成され、対応するバージョンのXCUITestドライバーが設定されます。次に、同じ環境変数を使用して、起動時に使用するバージョンをAppiumに指示できます。
APPIUM_HOME=/path/to/home1 appium # use xcuitest driver 4.11.1
APPIUM_HOME=/path/to/home2 appium # use xcuitest driver 4.11.2
必要ない場合は、APPIUM_HOME
を設定する必要はありません。デフォルトでは、AppiumはAPPIUM_HOME
をユーザーのホームディレクトリの.appium
ディレクトリに設定します。
これらのインストールされたパッケージは、$APPIUM_HOME/node_modules/.cache/appium/extensions.yaml
のextensions.yaml
によって管理されます。
npm
を使ったDIY¶
AppiumとAppiumドライバーはNode.jsプログラムであるため、Appiumスクリプトを独自のNode.jsプロジェクトに統合している場合は、ドライバーとプラグインを管理する別の方法があります。それは、他の依存関係と同様にnpm
を介して行う方法です。基本的に、Appiumを実行するときはいつでも、APPIUM_HOME
を明示的に設定していない場合は、次のようになります。
- 現在のディレクトリが
npm
パッケージ内にあるかどうかを判断しようとします。 - もしそうなら、プロジェクトの
package.json
でappium
が依存関係(dev、prod、またはpeer)であるかどうかを確認します。 - もしそうなら、環境で
APPIUM_HOME
を指定していない限り、Appiumはそのpackage.json
ファイルで定義されているドライバーとプラグインのロードを無視します。
つまり、Appiumドライバーとプラグインを通常のパッケージ依存関係または開発依存関係として自由に追加できます。たとえば、プロジェクトに次のものを含むpackage.json
がある場合
次に、プロジェクト内でnpx appium
を実行すると、Appiumはそれがプロジェクトの依存関係であることを検出し、プロジェクトの開発依存関係としてもリストされているXCUITestドライバーをロードします。
この戦略は、プロジェクトですでにnpm
を使用している場合にのみ推奨されます。それ以外の場合は、Appiumの拡張CLIを使用し、必要に応じて、保存された拡張機能の場所を変更するためにAPPIUM_HOME
を調整することをお勧めします。