خزنده برنامه
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.

از ابزار خزنده برنامه، بخشی از Jetpack برای آزمایش خودکار برنامه خود بدون نیاز به نوشتن یا نگهداری کد استفاده کنید.
خزنده در کنار برنامه شما اجرا می شود و به طور خودکار اقداماتی (ضربه زدن، کشیدن انگشت، و غیره) را برای کاوش در فضای وضعیت برنامه شما انجام می دهد. خزیدن بهطور خودکار خاتمه مییابد زمانی که هیچ اقدام منحصربهفردی دیگری برای انجام وجود نداشته باشد، برنامه از کار بیفتد یا زمانی که شما تعیین کردهاید به پایان برسد.
آزمایش با خزنده آسان است زیرا هیچ کدی برای نوشتن یا نگهداری وجود ندارد. علاوه بر این، میتوانید آن را روی دستگاههای مختلفی اجرا کنید تا به دنبال خرابی، مشکلات بصری یا مشکلات عملکرد باشید. به طور معمول، ایده خوبی است که از یک سرویس مبتنی بر ابر مانند 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 | مسیر APK برنامه شما را مشخص میکند، که App Crawler سپس آن را نصب و میخزد. اگر --app-package-name مشخص نشده باشد، این یک پرچم ضروری است. |
--app-package-name name | نام بسته برنامه شما را مشخص می کند. از این گزینه زمانی استفاده کنید که برنامه شما قبلاً روی دستگاه نصب شده باشد و نیازی به نصب مجدد نباشد. اگر --apk-file مشخص نشده باشد، این یک پرچم ضروری است. |
--key-store path | مسیری را به فروشگاه کلید که فایلهای APK برنامه و خزنده شما را امضا میکند، مشخص میکند. از این گزینه زمانی استفاده کنید که برنامه شما برای عملکرد صحیح به امضای خاصی نیاز دارد. |
--key-store-password password | رمز عبور را برای keystore که برای گزینه --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 را ببینید. برخی از کاربران با بازسازی APK خود با استفاده از نسخه به روز شده اندروید استودیو، مشکل را برطرف کرده اند.
منابع اضافی
برای اطلاعات بیشتر در مورد استفاده از App Crawler، به منابع زیر مراجعه کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-29 بهوقت ساعت هماهنگ جهانی."],[],[],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."]]