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