این سند نحوه استفاده از دستورگان Robo را توضیح میدهد. این دستورگان آزمونهایی هستند که وظایف دستی «تضمین کیفیت» را برای برنامههای تلفن همراه خودکارسازی میکنند و استراتژیهای آزمایش پیشاز راهاندازی و یکپارچهسازی مداوم (CI) را فعال میکنند. برای مثال، میتوانید از دستورگانهای Robo برای آزمایش مسیر کاربر رایج یا ارائه ورودی واسط کاربر (UI) خاص، مانند نام کاربری و گذرواژه، استفاده کنید. کدهای Robo یکی از ویژگیهای آزمایش Robo است.
با دستورگان Robo، خودتان را درحال پیمایش گردش کار در برنامهتان ضبط میکنید، سپس آن ضبط را در کنسول Firebase بارگذاری میکنید تا در آزمونهای Robo اجرا شود. وقتی «آزمایش Robo» را با یک متن پیوستشده اجرا میکنید، Robo ابتدا کنشهای پیشمتننویسیشده شما را گامبهگام اجرا میکند و سپس برنامه را طبق معمول کاوش میکند.
دستورگان Robo از آزمون Robo
بهعنوان موتور آزمون استفاده میکنند. در سادهترین شکل، یک دستورگان Robo از
دنبالهای از کنشهای رابط کاربری مانند وارد کردن نوشتار «نام کاربری» و
سپس ضربه زدن روی دکمه «تأیید» تشکیل شده است. دستورگان Robo همچنین میتواند شامل کنشهایی مثل انتظار برای ظاهر شدن عنصر، ضربه زدن در نقطه خاصی از عنصر، و اجرای دستورات شل «پل اشکالزدایی Android» (adb) باشد.
دستورگان Robo نسبتبه چارچوبهای آزمایش سنتی مزایای زیر را دارد:
| قابلیت | شرح |
| بسیار قوی | دستورگان Robo میتواند تفاوتهای ساختاری و رفتاری قابلتوجه بین نسخههای برنامه و ناپایداری برنامه را تحمل کند. |
| تشریحی | پساز تکمیل شدن دستورگان Robo، آزمون Robo پایه میتواند کنترل را بهدست بگیرد و آزمایش برنامه را ادامه دهد. این رویکرد ادامه آزمایش چندین مورد استفاده کلیدی را امکانپذیر میکند. برای مثال، میتوانید از یک دستورگان Robo برای قرار دادن برنامه در وضعیت خاصی با اجرای گردش کار ورود به سیستم سفارشی استفاده کنید. |
| قابلضبط | نیازی نیست که دستورگانهای Robo را بهصورت دستی کدنویسی کنید. میتوانند بااستفاده از ضبطکننده متن Robo در Android Studio ضبط شوند. ساختن یا اصلاح کردن دستورگان Robo معمولاً نیازی به داشتن دانش توسعه تلفن همراه ندارد. |
| انعطافپذیر | اسکریپتهای روبو میتوانند با عناصر میانای کاربر غیربومی که در بازیها رایج هستند تعامل داشته باشند. |
دستورگان Robo بهصورت شرطی درطول «آزمایش Robo» راهاندازی میشوند، که به کاربران امکان میدهد رفتار Robo را بهبود دهند - معمولاً برای دستیابی به پوشش بیشتر یا هدفیابی عملکرد خاص. برخلاف چارچوبهای آزمایش سنتی، دستورگان Robo از موارد زیر پشتیبانی میکند:
- شرایط راهاندازی مختلف، برای مثال، نام بسته برنامه خاصی فعال (یا غیرفعال) باشد یا عنصر خاصی در صفحه نمایش داده شود (یا نمایش داده نشود).
- کنترلهای اجرا، برای مثال، حداکثر تعداد اجراها، اولویت، مرحله خزیدن مربوطه.
- انواع کنش غیرمعمول (شرطی، نادیده گرفتن عنصر، بستن صفحه).
توصیه میکنیم هرگاه ممکن بود از دستورگانهای Robo استفاده کنید زیرا میتوانند بدون زحمت نگهداری شوند. برای مثال، میتوانید از دستورگان Robo برای انجام کارهای زیر استفاده کنید:
- برای رسیدن به عملکرد اصلی برنامه، در گردش کارهای مهم پیمایش کنید. برای مثال، میتوانید ورود به سیستم انجام دهید، وضعیت برنامه را پساز اولین راهاندازی تنظیم کنید، و کاربر جدیدی را ثبت کنید.
- Robo را روی بخش خاصی از برنامه متمرکز کنید تا بیشترین بهره را از زمان آزمایش Robo ببرید. دستورگان Robo، «آزمایش Robo» را راهنمایی میکند تا به بخش مربوطه برنامه برسد، جایی که «آزمایش Robo» خزیدن کاملاً خودکار را ازسر میگیرد.
- برنامه را به وضعیت یا صفحه خاصی میبرد تا تجزیهوتحلیل انجام دهد، برای مثال، برای تجزیهوتحلیل پیام درونبرنامهای، خطمشی رازداری، یا سطح خاصی از بازی.
- آزمایش ابزار دقیق سرتاسر را با یا بدون «آزمایش Robo» انجام دهید و پساز تکمیل شدن دستورگان Robo، خزیدن کاملاً خودکار را ازسر بگیرید.
از ویژگیهای پیشرفتهتر «دستورگان Robo» برای انجام موارد زیر استفاده کنید:
- کنشهایی را قبلاز شروع خزیدن «روبو» در برنامه درحال آزمایش یا پساز پایان خزیدن انجام دهید، برای مثال، دادههای برنامه درحال آزمایش را قبلاز خزیدن پاک کنید یا تنظیمات دستگاه را تغییر دهید.
- تغییر جنبههای رفتار «روبوت» درطول خزیدن، بهویژه:
- Robo برخیاز ابزارههای واسط کاربر یا صفحههای برنامه را نادیده بگیرد.
- کنش سفارشیای ارائه دهید تا Robo هنگام برگشتن از صفحهای خاص آن را انجام دهد.
- هرگاه صفحه برنامه خاصی درحین خزیدن با Robo مواجه شد، Robo کنشهای خاصی انجام دهد.
- نحوه خزیدن Robo را کاملاً سفارشیسازی کنید. برای مثال، از ترکیبی از کنشهای شرطی و غیرشرطی استفاده کنید تا برنامه تحت آزمایش را درطول خزیدن در پسزمینه نگه دارید، درحالیکه دستکاریهای دستگاه را انجام میدهید و هرگونه چارگوش گفتگوی بالاپری را که درطول مسیر ظاهر میشود میبندید.
بهخاطر داشته باشید که دستورگانهای Robo جایگزین همه انواع آزمایشها نمیشوند. همچنان به آزمایشهای واحد نیاز دارید تا اشکالات منطقی سطح پایین را در برنامهتان پیدا کنید؛ این آزمایشها معمولاً به محیط Android یا iOS نیاز ندارند. توصیه میکنیم آزمایشهای «نوشتار Robo» را با آزمایشهای ابزار دقیق هدفمند که میتوانند ادعاهای خاص و دقیقی درباره منطق کسبوکار داشته باشند تکمیل کنید. این ادعاها بهتر است در کد بیان شوند.
ضبط کردن دستورگان Robo بااستفاده از Test Lab در «استودیو Android»
ضبطکننده متن Robo در Android Studio به شما امکان میدهد با تعامل مستقیم با برنامه در دستگاهتان، متنهای Robo را ضبط کنید. برای شروع کار با نوشتن دستورات Robo ازطریق ابزار Firebase در Android Studio، این دستورالعملها را دنبال کنید:
استودیو Android را باز کنید و ابزارها -> Firebase را انتخاب کنید.
در قاب Firebase، روی ضبط کردن «دستورگان روبو» و استفاده از آن برای هدایت «آزمون روبو» کلیک کنید.
روی ضبط کردن متن روبوکال کلیک کنید. کادر گفتگوی «انتخاب هدف استقرار» نمایان میشود.
دستگاهی را که میخواهید «دستورگان روباتی» در آن ضبط شود انتخاب کنید.
پساز ضبط کردن «دستورگان روبو» در دستگاه، فایل را بهعنوان فایل JSON در مکان موردنظر ذخیره کنید.
صفحه Test Lab را در کنسول Firebase باز کنید و فایل دستورگان JSON و برنامه APK را بارگذاری کنید.
روی دکمه ادامه کلیک کنید. از شما درخواست میشود دستگاه و سطح API را انتخاب کنید. پساز تکمیل شدن دستورگان آزمایش، Test Lab گزارش آزمایش را تولید میکند.
(اختیاری) برای کپی کردن یا بارگیری logcat گزارش آزمایش و ویدیو، روی مشاهده فایلهای منبع کلیک کنید.
بهطور پیشفرض، سازوکارهای استحکام اسکریپت Robo از خرابی زودهنگام آن جلوگیری میکنند.
اگر حالت اجرای strict را انتخاب کنید و یک دستورگان Robo در هر نقطهای با خطا مواجه شود،
Test Lab همه مراحل بعدی در دستورگان را رها میکند و خزیدن Robo معمولی را ازسر میگیرد. اغلب، دستورگان Robo بهدلیل اینکه Robo نمیتواند عنصر موردنیاز را در صفحه پیدا کند با مشکل مواجه میشود. برای جلوگیری از خطا، مطمئن شوید که ناوبری برنامه شما قابل پیشبینی است و صفحههای شما به ترتیب مشخصی نمایش داده میشوند.
اجرای متن Robo در Test Lab
برای اجرای «دستورگان Robo» در Test Lab، این دستورالعملها را دنبال کنید:
صفحه Test Lab را در کنسول Firebase باز کنید.
فایل APK یا AAB برنامه را در فیلد APK یا AAB برنامه بارگذاری کنید.
فایل نوشتار Robo ضبطشده یا ایجادشده دستی را در فیلد نوشتار Robo (اختیاری) بارگذاری کنید.
ارائه کردن دستورگان Robo برای اجرای آزمایش Robo محلی
برای ارائه کردن دستورگان Robo به اجرای آزمایشی Robo محلی، از گزینه آزمایشی Robo زیر استفاده کنید:
--robo-script-file <robo-script-path>
<robo-script-path> را با مسیر فایل دستورگان Robo در سیستم فایل محلی جایگزین کنید. دستورالعملهای اجرای آزمایش محلی Robo را دنبال کنید.
مشخص کردن دستورگان Robo در فراخوانی آزمایشی gcloud CLI
برای مشخص کردن یک دستورگان Robo در فراخوانی آزمایشی gcloud CLI، از پرچم gcloud CLI زیر استفاده کنید:
--robo-script = <robo-script-path>
<robo-script-path> را با مسیری به فایل دستورگان Robo در سیستم فایل محلی یا در Cloud Storage بااستفاده از نماد gs:// جایگزین کنید. برای مثال:
gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>
مراحل بعدی
- برای آشنایی با ساختار، قابلیتها، استفاده، و کنشهای «دستورگان Robo»، راهنمای مرجع دستورگان Robo را ببینید.
- اجرای «آزمایش Robo».