عامل «آزمایش برنامه» عامل تولید، مدیریت، و اجرای مورد آزمون است که با بهرهگیری از Gemini در Firebase ارائه میشود. اهداف آزمایش را به زبان طبیعی تعریف میکنید، و عامل از هوش مصنوعی برای درک و پیمایش برنامهتان، شبیهسازی تعاملات کاربر، و ارائه نتایج آزمایش دقیق استفاده میکند.
عامل «آزمایش برنامه» چگونه از دادههای شما استفاده میکند
عامل «آزمایش برنامه» توسط Gemini در Firebase ارائه میشود و تحت همان شرایط اداره میشود. برای کسب اطلاعات بیشتر درباره نحوه استفاده Gemini در Firebase از دادههایتان، نحوه استفاده Gemini در Firebase از دادههایتان را ببینید.
قبل از شروع
اگر قبلاً این کار را نکردهاید، برنامهتان را در Firebase ثبت کنید.
اگر از هیچیک از محصولات دیگر Firebase استفاده نمیکنید، فقط باید پروژهای ایجاد کنید و برنامهتان را ثبت کنید. لازم نیست هیچ کیت توسعه نرمافزاری به برنامهتان اضافه کنید. بااینحال، اگر در آینده تصمیم گرفتید از محصولات دیگری استفاده کنید، حتماً همه مراحل افزودن Firebase بااستفاده از Firebase کنسول را تکمیل کنید.
ایجاد مورد آزمایشی
برای اجرای آزمایشهای هدایتشده با هوش مصنوعی، عامل «آزمایش برنامه» از موارد آزمون زبان طبیعی شما برای اجرای آزمایشها دربرابر برنامهتان استفاده میکند.
هر مورد آزمایشی به مراحلی تقسیم میشود که بهترتیب اجرا خواهند شد. مراحل به شما امکان میدهد تا مورد آزمایشی خود را به فازهایی تقسیم کنید که هرکدام ادعای خود را دارند. عامل ممکن است در هر مرحلهای کنشهای زیادی انجام دهد.
دو روش برای ایجاد مورد آزمون وجود دارد: استفاده از فایل YAML یا استفاده از کنسول Firebase. فایلهای YAML به شما امکان میدهند موارد آزمون را خودتان مدیریت کنید، معمولاً در مخزن کد منبع نسخهبندیشده. یا اینکه کنسول Firebase میتواند موارد آزمایشی شما را بههمراه دادههای «توزیع برنامه» از دور ذخیره کند.
استفاده از فایلهای YAML
نمونه زیر فایل YAML را نشان میدهد که دو مورد آزمایشی را تعریف میکند:
tests:
- displayName: Login as guest
id: login-as-guest
steps:
- goal: Log in as a guest
finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
prerequisiteTestCaseId: login-as-guest
steps:
- goal: Open the article on "Bob Dylan"
hint: Use the search function to find it
finalScreenAssertion: >-
The article is opened and the title "Bob Dylan" is visible.
- goal: Find Bob Dylan's birthday in the article
hint: >-
Look for the "Born" section in the infobox on the right side of the page.
finalScreenAssertion: >-
The text "May 24, 1941" is visible on the screen.
میتوانید گروههای آزمایش را در یک فایل سازماندهی کنید و این مجموعههای آزمایش را در چند فایل جدا کنید. با افزودن شناسه به
آزمایش و سپس ارجاع دادن به آن شناسه بااستفاده از prerequisiteTestCaseId، میتوانید مورد آزمون پیشنیاز اضافه کنید.
استفاده از کنسول App Distribution
یا میتوانید موارد آزمایشیتان را در Firebase Console ایجاد و مدیریت کنید. برای ایجاد مورد آزمون، صفحه App Distribution را در Firebase کنسول باز کنید و مراحل زیر را انجام دهید:
- در برگه موارد آزمایشی، روی مورد آزمایشی جدید کلیک کنید. اگر نمیخواهید مورد آزمون خودتان را ایجاد کنید، میتوانید مورد آزمون مثال ارائهشده را اصلاح کنید یا از آن استفاده کنید.
- در کادر گفتگوی افزودن مورد آزمون، نامی برای مورد آزمون انتخاب کنید. این برای شناسایی آزمایش استفاده میشود، اما عامل آن را نادیده میگیرد.
- (اختیاری) مورد آزمون پیشنیاز را که حاوی مراحل راهاندازی برای اجرا قبلاز آزمون اصلی است انتخاب کنید. اگر آزمون پیشنیاز ناموفق باشد، کل آزمون بهعنوان ناموفق علامتگذاری خواهد شد. مراحل و پیامدهای آزمون پیشنیاز و آزمون اصلی در نتایج آزمون با هم نشان داده خواهد شد.
- با کلیک کردن روی دکمه افزودن مرحله دیگر، آزمایش خود را به چند مرحله تقسیم کنید.
- به هر مرحله هدف بدهید که توضیح دهد نماینده «آزمایش برنامه» باید در آن مرحله چه کاری انجام دهد.
- (اختیاری) راهنمایی اضافه کنید تا اطلاعات بیشتری ارائه دهید و به «عامل آزمایش برنامه» کمک کنید درطول این مرحله برنامه شما را درک و در آن پیمایش کند.
- ادعای صفحه پایانی را اضافه کنید تا به عامل «آزمایش برنامه» کمک کند تشخیص دهد این مرحله باموفقیت تکمیل شده است. این ادعا باید فقط به آنچه در صفحه نمایان است اشاره کند.
- پساز سفارشیسازی آزمایشتان، روی ذخیره کردن کلیک کنید.
چارچوب تست نمونه
در زیر نمونهای از نحوه ایجاد مورد آزمون بااستفاده از عامل «آزمایش برنامه» آمده است:
عنوان آزمایشی |
صفحه اصلی بار میشود |
هدف |
بار کردن صفحه اصلی |
راهنمایی |
از صفحههای آشناسازی عبور کنید. همه بالاپرها را ببندید. به سیستم وارد نشوید. |
ادعای صفحه نهایی |
صفحه اصلی برنامه اصلی در صفحه قابلمشاهده است، همه تصاویر بارگیری شدهاند، و هیچ خطایی نمایش داده نمیشود. |
اجرای آزمایش
نحوه اجرای آزمایشهایتان به نحوه ایجاد و مدیریت موارد آزمایشی بستگی دارد. اگر موارد آزمون را بااستفاده از فایلهای YAML تعریف کنید، آن آزمونها را بااستفاده از «خط فرمان Firebase» اجرا خواهید کرد. اگر موارد آزمایشی خود را در کنسول «توزیع برنامه» ایجاد کنید، آنها را از کنسول یا ازطریق یکی از ابزارهای خط فرمان «توزیع برنامه» اجرا خواهید کرد.
استفاده از فایلهای YAML
موارد آزمایشی تعریفشده در فایلهای YAML را میتوان بااستفاده از Firebase CLI اجرا کرد.
- جدیدترین نسخه Firebase CLI را نصب یا به آن بهروزرسانی کنید. توصیه میکنیم باینری مستقل برای CLI مخصوص سیستمعامل خود را بارگیری کنید.
- به سیستم وارد شوید و آزمایش کنید که میتوانید به پروژههایتان دسترسی داشته باشید. توجه داشته باشید که اگر از Firebase CLI در محیط CI استفاده میکنید، میتوانید با حساب خدمات یا بااستفاده از login:ci نیز اصالتسنجی کنید.
فرمان
apptesting:executeرا اجرا کنید. برای مثال:firebase apptesting:execute \ --app=1:1234567890:android:0a1b2c3d4e5f67890 \ --test-dir=./mytests \ ./app/build/outputs/apk/debug/app-debug.apk
| apptesting:execute [گزینهها] [/path/to/app/binary] | |
|---|---|
--app
|
الزامی: شناسه برنامه Firebase برنامه شما. میتوانید «شناسه برنامه» را در کنسول Firebase، در صفحه تنظیمات کلی پیدا کنید.
|
--test-dir
|
مسیر فهرست راهنمایی که حاوی فایلهای YAML مورد آزمون است. این فرمان بهصورت بازگشتی در این دایرکتوری جستجو میکند، بنابراین فایلها میتوانند بهصورت اختیاری در زیردایرکتوریها سازماندهی شوند. اگر تنظیم نشده باشد، بهطور پیشفرض از «./tests» استفاده میشود. |
--test-devices یا --test-devices-file
|
دستگاههایی که آزمونها در آنها اجرا میشود. میتوانید دستگاههای آزمایش را بهصورت فهرست مشخصات دستگاه جداشده با نقطهویرگول مشخص کنید: --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 بروید. اگر این پرچم تنظیم نشده باشد، فرمان تا زمانی که آزمایشها کامل شوند مسدود خواهد شد و اگر هریک از آزمایشها ناموفق باشد، با کد ناموفق از آن خارج خواهد شد. |
--results-bucket
|
باکت سفارشی Google Cloud Storage (GCS) که نتایج آزمایش در آن ذخیره میشود. اگر خالی بگذارید، از دستهبندی پیشفرض استفاده میشود. مالک این دستهبندی باید پروژهای با صورتحساب فعال باشد و مشخص کردن دستهبندی منجر به کسر هزینه صورتحساب برای فضای ذخیرهسازی استفادهشده میشود. |
--test-file-pattern
|
الگوی عبارت باقاعده. فقط آزمایشهای موجود در فایلهایی که با این الگو مطابقت دارند اجرا خواهند شد. |
--test-name-pattern
|
الگوی عبارت باقاعده. فقط آزمایشهایی با نامهای نمایشی که با این الگو مطابقت دارند اجرا خواهند شد. |
/path/to/app/binary
|
اختیاری: مسیر فایل باینری برنامه شما. اگر حذف شود، نماینده از آخرین نسخه پخش بارگذاریشده در App Distribution برای برنامه مشخصشده استفاده خواهد کرد. |
استفاده از کنسول App Distribution
برای اجرای موارد آزمایشی ذخیرهشده در «توزیع برنامه»، میتوانید از Firebase کنسول، Firebase CLI، یا افزونههای Gradle یا fastlane App Distribution استفاده کنید.
وارد کردن و صادر کردن چارچوبهای تست با فایلهای YAML
وارد کردن موارد آزمایشی از فایلهای YAML زمانی مفید است که بخواهید موارد آزمایشی را خارج از کنسول Firebase مدیریت کنید. همچنین صادر کردن موارد آزمایشی برای انتقال آنها بین پروژهها میتواند مفید باشد. میتوانید از مدل زبانی بزرگ برای پالایش موارد آزمون موجود یا ایجاد موارد آزمون جدید استفاده کنید. میتوانید موارد آزمون را از صفحه «موارد آزمون» در کنسول Firebase یا بااستفاده از Firebase CLI بهصورت برنامهنویسی وارد و صادر کنید. برای نمونهای از چارچوب تست YAML، به ایجاد چارچوب تست YAML مراجعه کنید.
مشاهده نتایج آزمایش
میتوانید نتایج آزمایشهایتان را در صفحه نسخههای پخش در برگه عامل «آزمایش برنامه» نسخه پخش مشاهده کنید. دکمه مشاهده جزئیات گفتگوی «نتایج آزمایش» را باز میکند و مشکلات، نماگرفتهای برنامه، و کنشهایی را که Gemini درطول آزمایش انجام داده است به شما نشان میدهد.
اگر آزمایشی شامل کنشهای بازپخششده باشد، میتوانید اجرای آزمایشی اصلی با راهنمایی هوش مصنوعی را مشاهده کنید یا حافظه نهان را پاک کنید.
برای کسب اطلاعات بیشتر درباره نتایج آزمون، از جدول زیر استفاده کنید:
| نماد | نام | شرح |
|---|---|---|
| spark | کنش هوشوارهای | نشان میدهد که عامل «آزمایش برنامه» از Gemini برای تصمیمگیری درباره انجام کنش یا پایان دادن به مرحله استفاده کرده است. |
| پخش مجدد | کنش بازپخش شد | نشان میدهد که عامل «آزمایش برنامه» کنشی را از اجرای موفق قبلی آزمایش بازپخش کرده است. |
| spark | ادعای هوش مصنوعی | نشان میدهد که عامل «آزمایش برنامه» از Gemini برای تأیید ادعای صفحه نهایی پساز بازپخش کنشهای اجرای موفق قبلی همان آزمایش استفاده کرده است. |
عیبیابی کردن نتایج آزمایش
اگر نتایج آزمایشتان با آنچه انتظار داشتید متفاوت است، میتوانید بااستفاده از کلید نمایش نمای کارگزار در بخش مشاهده جزئیات در صفحه «نتایج آزمایش»، اشکالزدایی کنید. نمای کارگزار عناصر روی صفحه را که کارگزار «آزمایش برنامه» توانسته است هنگام استفاده از اطلاعات دسترسپذیری برنامه تشخیص دهد به شما نشان میدهد. اگر میخواهید نگاه دقیقتری به آنچه نماینده دیده است بیندازید، میتوانید آن اطلاعات را از منو سرریز کنش بارگیری کنید.
همچنین میتوانید از دکمه مشاهده آرتیفکتها در صفحه «نتایج آزمایش» برای مشاهده همه ویدیوها، گزارشها، و دیگر آرتیفکتهای Cloud برای نتایج آزمایشتان استفاده کنید.
مشکلات و محدودیتهای شناختهشده
پیشنمایش عامل «آزمایش برنامه» دارای برخی محدودیتهای شناختهشده است:
- آزمایشهای هدایتشده با هوش مصنوعی ۵ دقیقه زمان اتمام دارند. پساز شروع آزمایش، باید در این مدت موفق شود، درغیراینصورت آزمایش زودتر از موعد پایان مییابد و بهعنوان آزمایش ناموفق درنظر گرفته میشود.
- ازآنجاییکه عامل «آزمایش برنامه» از هوش مصنوعی زایا برای آزمایش برنامهتان استفاده میکند، گاهی اوقات کنشهای متفاوتی انجام میدهد اما همچنان از همان دستورالعملها پیروی میکند.
- عامل «آزمایش برنامه» فقط از کنشهای زیر پشتیبانی میکند: تکضرب، وارد کردن نوشتار، کشیدن به بالا/پایین/چپ/راست، فشار طولانی، کشیدن و رها کردن، برگشتن، و انتظار.
- عامل «آزمایش برنامه» در اجرای آزمایشهایی که فقط یک مرحله دارند و برای تکمیل آن به کنشهای زیادی نیاز است مشکل دارد. وقتی کارهای پیچیده به چند مرحله کوتاهتر تقسیم شوند، عملکرد بهتری دارد.
- عامل «آزمایش برنامه» گاهی اوقات برای آشکار کردن عناصر دیگر خارج از صفحه پیمایش نمیکند. این اتفاق بیشتر زمانی رخ میدهد که هیچ نشانه دیداری از قابلیت پیمایش وجود نداشته باشد. بهعنوان راهکار موقت، میتوان از فیلد «نکات» برای پیشنهاد پیمایش استفاده کرد.
- عامل «آزمایش برنامه» گاهی اوقات در شمارش مشکل دارد، برای مثال، انجام کنش در تعداد دفعات مشخص.
- اگر
FLAG_SECUREفعال باشد، نماینده «آزمایش برنامه» نمیتواند در برنامه شما پیمایش کند. بهجای نماگرفتهای برنامه شما، فقط صفحهای خالی خواهد دید.
آزمایش سهمیهها
درطول پیشنمایش، آزمایشهای هدایتشده با هوش مصنوعی بدون هزینه و با محدودیت سهمیه ارائه خواهد شد. حد سهمیه پیشفرض ۲۰۰ آزمایش در ماه برای هر پروژه Firebase است.
توجه داشته باشید که اگر انتخاب کنید چندین مورد آزمون را اجرا کنید، یا مورد آزمون یکسانی را در چندین دستگاه اجرا کنید، این بهعنوان چندین آزمون محسوب میشود. برای مثال، اگر ۲ مورد آزمایشی را در ۲ دستگاه اجرا کنید، این کار بهعنوان مجموعاً ۴ آزمایش محسوب میشود.
برای افزایش سهمیه خود فراتر از حد پیشفرض، با پشتیبانی Firebase تماس بگیرید و مورد استفاده خود را اعلام کنید.