App Crawler

Jetpack に含まれる App Crawler ツールを使用すると、コードの作成やメンテナンスの手間をかけずに、アプリを自動的にテストできます。

クローラはアプリとともに実行され、アクション(タップやスワイプなど)を自動的に実行してアプリの状態空間を探索します。実行する一意のアクションがなくなるか、アプリがクラッシュするか、指定されたタイムアウト期限に到達すると、クロールは自動的に終了します。

コードの作成やメンテナンスの必要がないため、クローラを使用したテストは簡単に実施できます。さらに、さまざまなデバイスでテストを実行して、クラッシュ、視覚的な問題、パフォーマンスの問題を検出できます。一般的には、Firebase Test Lab などのクラウドベースのサービスを使用して、画面サイズとハードウェア構成の複数の組み合わせをテストするのが、容易かつ迅速にテストを実施できる良い方法です。

ターゲット ユーザー

App Crawler は、最小限の構成でアプリの基本機能を実現したいデベロッパーを対象としています。純粋な不透明ボックステストに加えて、ログイン認証情報やディープリンクなどの特定の入力を提供するようにクローラを構成することもできます。

開始する

開始する前に、Android SDK の最新バージョンがあることを確認してください。 これは Android Studio に付属しています。 スタンドアロンの Android SDK をインストールする場合は、最新のビルドツールとプラットフォーム ツールが含まれていることを確認してください。

次に、クローラのバイナリ アーカイブをダウンロードします。

続いて、エミュレータを起動するか、USB ケーブルで実機を接続します。 次のコマンドを実行して、デバイスが接続されていることを確認します。

adb devices

クローラを起動するには、まず、選択したディレクトリにアーカイブを展開します。そのディレクトリから、次のコマンドでクローラを起動します。

java -jar crawl_launcher.jar --apk-file path/to/my/app.apk --android-sdk path/to/my/android/sdk

クローラのオプション

クローラを起動する際に、以下のオプションを使用できます。

オプション 説明
--android-sdk path

Android SDK へのパスを指定します。

このフラグは必須です。

--apk-file file

App Crawler がインストールしてクロールするアプリ APK へのパスを指定します。

--app-package-name を指定しなかった場合、このフラグは必須です。

--app-package-name name

アプリのパッケージ名を指定します。アプリがすでにデバイスにインストール済みで再インストールが不要な場合は、このオプションを使用します。

--apk-file を指定しなかった場合、このフラグは必須です。

--key-store path

アプリとクローラ APK に署名するキーストアへのパスを指定します。アプリが適切に機能するために特定の署名が必要な場合は、このオプションを使用します。

--key-store-password password

--key-store オプションに指定したキーストアのパスワードを指定します。

--key-store を指定した場合、このフラグは必須です。

--timeout-sec timeout

クロールのタイムアウトを秒単位で指定します。指定しなかった場合、クロールは 60 秒後に停止します。

既知の問題

元の署名ファイルを削除できない

JDK 9 ユーザーの場合、クロールが開始する前に次のエラー メッセージが表示されることがあります。

androidx.test.tools.crawler.launcher.exceptions.ApkSigningException: Failed to delete original signature files

この現象が発生する場合は、JDK 8 または 10 以上の使用をおすすめします。この問題の詳細については、こちらの JDK 9 のバグをご覧ください。ユーザーによっては、Android Studio のアップデート バージョンを使用して APK を再ビルドすることで、問題が解決した場合もあります。

参考情報

App Crawler の使用方法の詳細については、次のリソースをご覧ください。