عامل تست برنامه، یک عامل تولید، مدیریت و اجرای موارد آزمایشی است که توسط Gemini در Firebase پشتیبانی میشود. شما اهداف آزمایشی را به زبان طبیعی تعریف میکنید و عامل از هوش مصنوعی برای درک و پیمایش برنامه شما، شبیهسازی تعاملات کاربر و ارائه نتایج دقیق آزمایش استفاده میکند.
چگونه عامل تست برنامه از دادههای شما استفاده میکند
عامل تست برنامه توسط Gemini در Firebase ارائه میشود و تحت همان شرایط اداره میشود. برای اطلاعات بیشتر در مورد نحوه استفاده Gemini در Firebase از دادههای شما، به بخش «نحوه استفاده Gemini در Firebase از دادههای شما» مراجعه کنید.
قبل از اینکه شروع کنی
اگر هنوز برنامه خود را در Firebase ثبت نکردهاید، آن را ثبت کنید .
اگر از هیچ محصول Firebase دیگری استفاده نمیکنید، فقط باید یک پروژه ایجاد کنید و برنامه خود را ثبت کنید. نیازی به اضافه کردن SDK به برنامه خود ندارید. با این حال، اگر تصمیم دارید در آینده از محصولات دیگری استفاده کنید، حتماً تمام مراحل Add Firebase را با استفاده از کنسول Firebase انجام دهید.
وقتی آماده توزیع نسخه پیشانتشار برنامه خود برای آزمایشکنندگان شدید، APK یا AAB خود را با استفاده از فرآیند معمول خود بسازید و آن را در App Distribution در کنسول Firebase آپلود کنید. باید APK را با کلید اشکالزدایی یا کلید امضای برنامه خود امضا کنید.
یک مورد آزمایشی ایجاد کنید
برای اجرای تستهای هدایتشده توسط هوش مصنوعی، عامل تست برنامه از موارد تست زبان طبیعی شما برای اجرای تستها روی برنامهتان استفاده میکند.
هر مورد آزمایشی به مراحلی تقسیم میشود که به ترتیب اجرا میشوند. مراحل به شما این امکان را میدهند که مورد آزمایشی خود را به فازهایی تقسیم کنید که هر کدام معیارهای موفقیت خاص خود را دارند. عامل ممکن است در طول هر مرحله اقدامات زیادی انجام دهد.
برای ایجاد یک نمونه آزمایشی، صفحه App Distribution کنسول Firebase را باز کنید و مراحل زیر را انجام دهید:
- در تب Test Cases ، روی New test case کلیک کنید. اگر نمیخواهید Test Case خودتان را ایجاد کنید، میتوانید Test Case نمونه ارائه شده را تغییر دهید یا از آن استفاده کنید.
- در پنجرهی محاورهای «افزودن مورد آزمایشی» ، نامی برای مورد آزمایشی تعیین کنید. این نام برای شناسایی آزمون استفاده میشود، اما توسط عامل نادیده گرفته میشود.
- (اختیاری) یک مورد آزمون پیشنیاز را انتخاب کنید که شامل مراحل راهاندازی برای اجرا قبل از آزمون اصلی باشد. اگر آزمون پیشنیاز با شکست مواجه شود، کل آزمون به عنوان یک شکست علامتگذاری میشود. مراحل و نتایج حاصل از آزمونهای پیشنیاز و اصلی با هم در نتایج آزمون نشان داده میشوند.
- با کلیک روی دکمه «افزودن یک مرحله دیگر» ، میتوانید آزمایش خود را به چند مرحله تقسیم کنید.
- به هر مرحله یک هدف (Goal) بدهید که توصیف میکند عامل تست برنامه (App Testing agent) در طول آن مرحله چه کاری باید انجام دهد.
- (اختیاری) یک راهنما (Hint) اضافه کنید تا اطلاعات بیشتری ارائه دهد و به عامل تست برنامه کمک کند تا برنامه شما را در آن مرحله درک و هدایت کند.
- (اختیاری) معیارهای موفقیت را اضافه کنید تا به عامل تست برنامه کمک کنید تا تشخیص دهد چه زمانی مرحله با موفقیت انجام شده است.
- پس از اتمام سفارشیسازی آزمون، روی ذخیره کلیک کنید.
نمونه مورد آزمون
در ادامه مثالی از نحوه ایجاد یک مورد آزمایشی با استفاده از App Testing agent ارائه شده است:
تست صفحه اصلی | |
---|---|
عنوان آزمون | بارگذاری صفحه اصلی |
هدف | بارگذاری صفحه اصلی |
نکته | از هر صفحهی ورود به سیستم عبور کنید. پنجرههای بازشو را رد کنید. وارد سیستم نشوید. |
معیارهای موفقیت | صفحه اصلی برنامه روی صفحه قابل مشاهده است، همه تصاویر بارگذاری شدهاند و هیچ خطایی نمایش داده نمیشود. |
یک آزمون اجرا کنید
عامل تست برنامه به شما امکان میدهد با کلیک بر روی دکمه اجرای تستها از صفحه Releases یا Test Cases ، تستهای هدایتشده توسط هوش مصنوعی را در کنسول اجرا کنید. این کار صفحه سفارشیسازی عامل تست برنامه را باز میکند، جایی که میتوانید یک یا چند مورد از تستهای موجود خود را برای اجرا توسط عامل انتخاب کنید. همچنین میتوانید دستگاههایی را که میخواهید روی آنها تست کنید و اینکه آیا اعتبارنامه ورود ارائه دهید یا خیر، انتخاب کنید.
همچنین میتوانید با تغییر نوع تست، یک تست خزش تصادفی (Random crawl test) اجرا کنید. تستهای خزش تصادفی از ویژگی تستر خودکار (Automated Tester) استفاده میکنند.
شما میتوانید نتایج آزمایشهای خود را از صفحه انتشارها در تب App Testing agent مربوط به یک انتشار مشاهده کنید. دکمه View details پنجره نتایج آزمایش را باز میکند و هرگونه مشکل، اسکرینشات از برنامه و اقداماتی که Gemini در طول آزمایش انجام داده است را به شما نشان میدهد.
ساختهای خود را به طور خودکار آزمایش کنید
برای اجرای خودکار تستهای App Testing agent روی نسخههای جدید خود، مثلاً از CI/CD pipelines، میتوانید نسخههای خود را با استفاده از Gradle یا افزونههای fastlane در App Distribution یا Firebase CLI روی agent توزیع کنید.
برای استفاده از ویژگی App Testing agent باید حداقل یک دستگاه آزمایشی و یک شناسه مورد آزمایشی مشخص کنید. شناسههای مورد آزمایشی را میتوان در صفحه Test Cases کنسول Firebase یافت و دانلود کرد. برای اطلاعات بیشتر در مورد شروع کار با Firebase CLI و روشهای مختلف پیکربندی توزیع خود، به Distribute Android apps to testers using the Firebase CLI مراجعه کنید.
دستور appdistribution:distribute
برای آپلود برنامه خود اجرا کنید و از پارامترهای زیر برای پیکربندی توزیع خود با ویژگی App Testing agent استفاده کنید:
appdistribution: گزینههای توزیع | |
---|---|
--test-devices یا --test-devices-file | دستگاههای آزمایشی که میخواهید توزیع کنید، به ویژگی App Testing agent ساخته میشوند. شما میتوانید دستگاههای تست را به صورت لیستی از دستگاههای تست که با نقطه ویرگول از هم جدا شدهاند، مشخص کنید: --test-devices "model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait" یا میتوانید مسیر یک فایل متنی ساده حاوی لیستی از دستگاههای آزمایشی که با نقطه ویرگول از هم جدا شدهاند را مشخص کنید: --test-devices-file "/path/to/test-devices.txt" شما میتوانید مدلهای دستگاههای موجود را با استفاده از gcloud CLI جستجو کنید. |
--test-username | نام کاربری برای ورود خودکار که در طول آزمونها استفاده میشود. |
--test-password یا --test-password-file | رمز عبور برای ورود خودکار که در طول آزمونها استفاده میشود. یا میتوانید مسیر یک فایل متنی ساده حاوی رمز عبور را مشخص کنید: --test-password-file "/path/to/test-password.txt" |
--test-non-blocking | تستها را به صورت ناهمگام اجرا کنید. برای مشاهده نتایج تست خودکار، به کنسول Firebase مراجعه کنید. |
--test-case-ids یا --test-case-ids-file | فهرستی از شناسههای موارد آزمون که با کاما از هم جدا شدهاند برای اجرای آزمونهای خودکار مبتنی بر هوش مصنوعی: --test-case-ids "load-app,play-the-first-level" یا میتوانید مسیر یک فایل متنی ساده حاوی لیستی از شناسههای موارد آزمایشی که با کاما یا خط جدید از هم جدا شدهاند را مشخص کنید: --test-case-ids-file "/path/to/test-case-ids.txt" |
برای استفاده از ویژگی App Testing agent باید حداقل یک دستگاه تست و یک شناسه مورد تست مشخص کنید. شناسههای مورد تست را میتوان در صفحه Test Cases کنسول Firebase یافت و دانلود کرد. برای اطلاعات بیشتر در مورد شروع کار با Gradle و روشهای مختلف پیکربندی توزیع خود، به Distribute Android apps to testers using Gradle مراجعه کنید.
شما میتوانید App Distribution با اضافه کردن حداقل یک بخش firebaseAppDistribution
پیکربندی کنید و از پارامترهای زیر برای پیکربندی توزیع به ویژگی App Testing agent استفاده کنید:
پارامترهای ساخت App Distribution | |
---|---|
testDevices یا testDevicesFile | دستگاههای آزمایشی که میخواهید توزیع کنید، به ویژگی App Testing agent ساخته میشوند. شما میتوانید دستگاههای آزمایشی را به صورت فهرستی از مشخصات دستگاه که با نقطه ویرگول از هم جدا شدهاند، مشخص کنید. testDevices="model=tokay, version=36, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait" یا میتوانید مسیر فایلی را مشخص کنید که حاوی لیستی از مشخصات دستگاه است که با نقطه ویرگول از هم جدا شدهاند: testDevicesFile="/path/to/testDevices.txt" شما میتوانید مدلهای دستگاههای موجود را با استفاده از gcloud CLI جستجو کنید. |
testUsername | نام کاربری برای ورود خودکار که در طول آزمونها استفاده میشود. |
testPassword یا testPasswordFile | رمز عبور برای ورود خودکار که در طول آزمونها استفاده میشود. یا میتوانید مسیر یک فایل متنی ساده حاوی رمز عبور را مشخص کنید: testPasswordFile="/path/to/testPassword.txt" |
testNonBlocking | تستها را به صورت ناهمگام اجرا کنید. برای نتایج تست خودکار به کنسول FIrebase مراجعه کنید. |
testCases یا testCasesFile | فهرستی از شناسههای موارد آزمون که با کاما از هم جدا شدهاند برای اجرای آزمونهای خودکار مبتنی بر هوش مصنوعی: testCases: "load-app,play-the-first-level" یا میتوانید مسیر یک فایل متنی ساده حاوی لیستی از شناسههای موارد آزمایشی که با کاما یا خط جدید از هم جدا شدهاند را مشخص کنید: testCasesFile: "/path/to/test-case-ids.txt" |
برای استفاده از ویژگی App Testing agent، باید حداقل یک دستگاه تست و یک شناسه مورد تست مشخص کنید. شناسههای مورد تست را میتوان در صفحه Test Cases کنسول Firebase یافت و دانلود کرد. برای اطلاعات بیشتر در مورد شروع کار با fastlane و روشهای مختلف پیکربندی توزیع خود، به Distribute Android apps to testers using fastlane مراجعه کنید.
در مسیر ./fastlane/Fastfile
، یک بلوک firebase_app_distribution
اضافه کنید. از پارامترهای زیر برای پیکربندی توزیع خود با ویژگی App Testing agent استفاده کنید:
پارامترهای firebase_app_distribution | |
---|---|
test_devices یا test_devices_file | دستگاههای آزمایشی که میخواهید برای ویژگی App Testing agent ایجاد کنید. میتوانید دستگاههای آزمایشی را به صورت لیستی از دستگاههای آزمایشی که با نقطه ویرگول از هم جدا شدهاند، مشخص کنید: test_devices: "model=tokay, version=36, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait" یا میتوانید مسیر یک فایل متنی ساده حاوی لیستی از دستگاههای آزمایشی که با نقطه ویرگول از هم جدا شدهاند را مشخص کنید: test_devices_file: "/path/to/test-devices.txt" شما میتوانید مدلهای دستگاههای موجود را با استفاده از gcloud CLI جستجو کنید. |
test_username | نام کاربری برای ورود خودکار که در طول آزمونها استفاده میشود. |
test_password یا test_password_file | رمز عبور برای ورود خودکار که در طول آزمونها استفاده میشود. یا میتوانید مسیر یک فایل متنی ساده حاوی رمز عبور را مشخص کنید: test_password_file: "/path/to/test-password.txt" |
test_non_blocking | تستها را به صورت ناهمگام اجرا کنید. برای مشاهده نتایج تست خودکار، به کنسول Firebase مراجعه کنید. |
test_case_ids یا test_case_ids_file | فهرستی از شناسههای موارد آزمون که با کاما از هم جدا شدهاند برای اجرای آزمونهای خودکار مبتنی بر هوش مصنوعی: test_case_ids: "load-app,play-the-first-level" یا میتوانید مسیر یک فایل متنی ساده حاوی لیستی از شناسههای موارد آزمایشی که با کاما یا خط جدید از هم جدا شدهاند را مشخص کنید: test_case_ids_file: "/path/to/test-case-ids.txt" |
نتایج آزمایش خود را اشکالزدایی کنید
اگر نتایج آزمایش شما با آنچه انتظار داشتید متفاوت است، میتوانید با استفاده از گزینه نمایش نمای عامل در زیر مشاهده جزئیات در صفحه نتایج آزمایش، آزمایش خود را اشکالزدایی کنید. نمای عامل عناصر روی صفحه را که عامل تست برنامه هنگام استفاده از اطلاعات دسترسی برنامه قادر به تشخیص آنها بوده است، به شما نشان میدهد. اگر میخواهید نگاه دقیقتری به آنچه عامل دیده است بیندازید، میتوانید آن اطلاعات را از منوی سرریز عملیات دانلود کنید.
همچنین میتوانید از دکمهی «مشاهدهی مصنوعات» در صفحهی نتایج آزمایش استفاده کنید تا تمام ویدیوها، گزارشها و سایر مصنوعات ابری مربوط به نتایج آزمایش خود را مشاهده کنید.
مشکلات و محدودیتهای شناختهشده
پیشنمایش App Testing agent محدودیتهای شناختهشدهای دارد:
- از آنجا که عامل تست برنامه از هوش مصنوعی مولد برای آزمایش برنامه شما استفاده میکند، گاهی اوقات اقدامات متفاوتی انجام میدهد در حالی که همچنان از همان دستورالعملها پیروی میکند.
- عامل تست برنامه فقط از اقدامات زیر پشتیبانی میکند: ضربه زدن، وارد کردن متن، کشیدن انگشت به بالا/پایین/چپ/راست، فشار طولانی، کشیدن و رها کردن، بازگشت و انتظار.
- عامل تست برنامه در اجرای تستهایی که فقط شامل یک مرحله هستند و برای انجام آنها به اقدامات زیادی نیاز است، مشکل دارد. این عامل زمانی عملکرد بهتری دارد که وظایف پیچیده به چندین مرحله کوتاهتر تقسیم شوند.
- گاهی اوقات، عامل تست برنامه برای نمایش سایر عناصر خارج از صفحه، اسکرول نمیکند. این اتفاق بیشتر زمانی میافتد که هیچ نشانه بصری از قابلیت اسکرول وجود نداشته باشد. به عنوان یک راه حل، میتوان از فیلد "نکات" برای پیشنهاد اسکرول کردن استفاده کرد.
- عامل تست برنامه گاهی اوقات در شمارش مشکل دارد، برای مثال انجام یک عمل به تعداد دفعات مشخص.
- اگر
FLAG_SECURE
فعال باشد، عامل تست برنامه نمیتواند برنامه شما را پیمایش کند. به جای اسکرینشات از برنامه شما، فقط یک صفحه خالی مشاهده خواهد کرد.
سهمیههای آزمون
در طول پیشنمایش، آزمونهای هدایتشده توسط هوش مصنوعی بدون هیچ هزینهای و در محدوده سهمیهای ارائه میشوند. محدودیت سهمیه پیشفرض، ۲۰۰ آزمون در ماه، برای هر پروژه Firebase است.
توجه داشته باشید که اگر تصمیم دارید چندین مورد آزمایشی یا یک مورد آزمایشی را روی چندین دستگاه اجرا کنید، این به عنوان چندین تست حساب میشود. به عنوان مثال، اگر 2 مورد آزمایشی را روی 2 دستگاه اجرا کنید، در مجموع 4 تست حساب میشود.
برای افزایش سهمیه خود بالاتر از حد پیشفرض، با پشتیبانی Firebase تماس بگیرید و مورد استفاده خود را شرح دهید.