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 の使用方法の詳細については、次のリソースをご覧ください。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# App Crawler\n\nUse the App Crawler tool, part of [Jetpack](/jetpack), to automatically test\nyour app without the need to write or maintain any code.\n\nThe crawler runs alongside your app, automatically issuing actions\n(tap, swipe, etc.) to explore the state-space of your app.\nThe crawl terminates automatically when there are no more unique actions to\nperform, the app crashes, or a timeout you designate is reached.\n\nTesting with the crawler is easy because there's no code to write or maintain.\nMoreover, you can run it on a variety of devices to look for crashes, visual\nissues, or performance problems. Typically, it's a good idea to use a\ncloud-based service like [Firebase Test\nLab](https://firebase.google.com/docs/test-lab/) to test multiple combinations\nof screen sizes and hardware configurations more easily and quickly.\n\nTarget audience\n---------------\n\nApp Crawler is targeted at developers who want to ensure their app's basic\nfunctionality with minimal configuration. In addition to purely opaque-box\ntesting, the crawler can also be configured to provide specific inputs,\nsuch as login credentials or deep links.\n\nGetting started\n---------------\n\nBefore starting, make sure you have a recent version of the Android SDK.\nThis comes with [Android Studio](/studio).\nIf you install a standalone Android SDK, make sure it includes the latest\nlatest build tools and platform tools.\n\nThen, [download the crawler binary\narchive](https://dl.google.com/appcrawler/beta1/app-crawler.zip).\n\nNext, either start an emulator or connect a physical device using a USB cable.\nConfirm the device is connected by running the following command: \n\n```\nadb devices\n```\n\nTo invoke the crawler, first extract the archive to the directory of your\nchoice. From that directory, invoke the crawler using the following command: \n\n```\njava -jar crawl_launcher.jar --apk-file path/to/my/app.apk --android-sdk path/to/my/android/sdk\n```\n\nCrawler options\n---------------\n\nYou can use the following options to invoke the crawler:\n\n| Option | Description |\n|-----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `--android-sdk `\u003cvar translate=\"no\"\u003epath\u003c/var\u003e | Specifies the path to your Android SDK. This is a **required** flag. |\n| `--apk-file `\u003cvar translate=\"no\"\u003efile\u003c/var\u003e | Specifies the path to your app APK, which App Crawler then installs and crawls. This is a **required** flag if `--app-package-name` isn't specified. |\n| `--app-package-name `\u003cvar translate=\"no\"\u003ename\u003c/var\u003e | Specifies the package name of your app. Use this option when your app is already installed on the device and no re-installation is required. This is a **required** flag if `--apk-file` isn't specified. |\n| `--key-store `\u003cvar translate=\"no\"\u003epath\u003c/var\u003e | Specifies the path to the keystore that signs your app and crawler APKs. Use this option when your app requires a specific signature to function properly. |\n| `--key-store-password `\u003cvar translate=\"no\"\u003epassword\u003c/var\u003e | Specifies the password for the keystore you provided for `--key-store` option. This is a **required** flag if `--key-store` is specified. |\n| `--timeout-sec `\u003cvar translate=\"no\"\u003etimeout\u003c/var\u003e | Specifies the timeout for your crawl in seconds. If not specified, the crawl stops after 60 seconds. |\n\nKnown issues\n------------\n\n**Failed to delete original signature files**\n\nPrior to the start of the crawl, JDK 9 users may see this error message: \n\n```\nandroidx.test.tools.crawler.launcher.exceptions.ApkSigningException: Failed to delete original signature files\n```\n\nIf you experience this behavior, we recommend using JDK 8 or 10+. For more\ninformation on this issue, see this\n[JDK 9 bug](https://bugs.openjdk.java.net/browse/JDK-8184940).\nSome users have fixed the issue by rebuilding their APK using an updated version\nof Android Studio.\n\nAdditional resources\n--------------------\n\nFor more information about using App Crawler, consult the\nfollowing resources.\n\n- [Firebase Test Lab Robo Test](https://firebase.google.com/docs/test-lab/android/robo-ux-test) contains detailed documentation as well as instructions for how to run crawler tests in the cloud."]]