این سند نحوه استفاده از اسکریپتهای Robo را شرح میدهد، که تستهایی هستند که وظایف کنترل کیفیت دستی را برای برنامههای تلفن همراه خودکار میکنند و ادغام مداوم (CI) و استراتژیهای تست پیش از راهاندازی را فعال میکنند. به عنوان مثال، میتوانید از اسکریپتهای Robo برای آزمایش یک سفر کاربری مشترک یا ارائه ورودی رابط کاربری (UI) خاص، مانند نام کاربری و رمز عبور، استفاده کنید. اسکریپتهای Robo یکی از ویژگیهای تست Robo هستند.
با اسکریپتهای Robo، شما در حال انجام یک گردش کار در برنامه خود، فیلم میگیرید، سپس آن فیلم ضبط شده را در کنسول Firebase آپلود میکنید تا در تستهای Robo اجرا شود. وقتی یک تست Robo را با یک اسکریپت متصل اجرا میکنید، Robo ابتدا اقدامات از پیش نوشته شده شما را انجام میدهد و سپس طبق معمول برنامه را بررسی میکند.
اسکریپتهای Robo از تست Robo به عنوان موتور تست استفاده میکنند. در ابتداییترین شکل، یک اسکریپت Robo شامل دنبالهای از اقدامات رابط کاربری مانند وارد کردن متن «نام کاربری» و سپس ضربه زدن روی دکمه OK است . اسکریپتهای Robo همچنین میتوانند شامل اقداماتی مانند انتظار برای ظاهر شدن یک عنصر، ضربه زدن در یک نقطه خاص در یک عنصر و اجرای دستورات پوسته Android Debug Bridge ( adb ) باشند.
اسکریپتهای Robo نسبت به چارچوبهای تست سنتی مزایای زیر را دارند:
| قابلیت | توضیحات |
| بسیار مقاوم | اسکریپتهای روبو میتوانند تفاوتهای ساختاری و رفتاری قابل توجهی بین نسخههای برنامه و پوسته پوسته شدن برنامه را تحمل کنند. |
| پایان باز | پس از اتمام یک اسکریپت Robo، تست پایه Robo میتواند کنترل را به دست گرفته و به آزمایش برنامه ادامه دهد. این رویکرد آزمایش مداوم چندین مورد استفاده کلیدی را امکانپذیر میکند. به عنوان مثال، میتوانید از یک اسکریپت Robo برای وارد کردن یک برنامه به یک حالت خاص با انجام یک جریان ورود سفارشی استفاده کنید. |
| قابل ضبط | نیازی نیست اسکریپتهای Robo را به صورت دستی کدنویسی کنید. آنها را میتوان با استفاده از ضبطکننده اسکریپت Robo در اندروید استودیو ضبط کرد. ایجاد یا اصلاح اسکریپتهای Robo معمولاً نیازی به دانش توسعه موبایل ندارد. |
| انعطافپذیر | اسکریپتهای Robo میتوانند با عناصر رابط کاربری غیربومی که در بازیها رایج هستند، تعامل داشته باشند. |
اسکریپتهای Robo به صورت شرطی در طول تست Robo فعال میشوند، که به کاربران اجازه میدهد رفتار Robo را تقویت کنند - معمولاً برای دستیابی به پوشش بیشتر یا هدف قرار دادن عملکرد خاص. برخلاف چارچوبهای تست سنتی، اسکریپتهای Robo از موارد زیر پشتیبانی میکنند:
- شرایط مختلف راهاندازی، برای مثال، فعال بودن (یا نبودن) نام بسته برنامه خاص یا نمایش (یا عدم نمایش) یک عنصر خاص روی صفحه.
- کنترلهای اجرا، برای مثال، حداکثر تعداد اجراها، اولویت، مرحله خزش مربوطه.
- انواع اقدامات نامتعارف (شرطی، نادیده گرفتن عنصر، بستن صفحه).
توصیه میکنیم تا حد امکان از اسکریپتهای Robo استفاده کنید زیرا نگهداری از آنها آسان است. به عنوان مثال، میتوانید از یک اسکریپت Robo برای انجام موارد زیر استفاده کنید:
- برای رسیدن به هسته اصلی عملکرد یک برنامه، گردشهای کاری قابل توجهی را پیمایش کنید. به عنوان مثال، میتوانید ورود به سیستم را انجام دهید، وضعیت برنامه را پس از اولین اجرا تنظیم کنید و یک کاربر جدید ثبت کنید.
- برای اینکه از زمان تست Robo بیشترین بهره را ببرید، Robo را روی بخش خاصی از برنامه متمرکز کنید. اسکریپت Robo، تست Robo را برای رسیدن به بخش مربوطه از برنامه هدایت میکند، جایی که تست Robo یک خزش کاملاً خودکار را از سر میگیرد.
- برای انجام تجزیه و تحلیل، یک برنامه را به یک حالت یا صفحه خاص ببرید، به عنوان مثال، برای تجزیه و تحلیل یک پیام درون برنامهای، سیاست حفظ حریم خصوصی یا سطح خاصی از یک بازی.
- یک تست ابزار دقیق سرتاسری انجام دهید، چه با تست Robo و چه بدون آن، و پس از تکمیل اسکریپت Robo، یک خزش کاملاً خودکار را از سر بگیرید.
از ویژگیهای پیشرفتهتر اسکریپت Robo برای انجام موارد زیر استفاده کنید:
- قبل از اینکه Robo شروع به خزیدن در برنامهی تحت آزمایش کند یا بعد از پایان خزیدن، اقداماتی را انجام دهد، برای مثال، دادههای برنامهی تحت آزمایش را قبل از خزیدن پاک کند یا تنظیمات دستگاه را تغییر دهد.
- جنبههای رفتاری ربات را در طول خزیدن تغییر دهید، به ویژه:
- کاری کنید که Robo برخی از ویجتهای رابط کاربری یا صفحات برنامه را نادیده بگیرد.
- یک اقدام سفارشی برای Robo ارائه دهید تا هنگام بازگشت از یک صفحه خاص، انجام دهد.
- هر زمان که در حین خزیدن با صفحه برنامه خاصی مواجه شدید، Robo اقدامات خاصی را انجام دهد.
- نحوهی انجام خزش توسط Robo را کاملاً سفارشی کنید. به عنوان مثال، از ترکیبی از اقدامات شرطی و غیرشرطی استفاده کنید تا برنامه در طول خزش در پسزمینه در حال آزمایش باشد، در حالی که دستکاریهای دستگاه را انجام میدهد و هرگونه پنجرهی بازشو که در طول مسیر ظاهر میشود را رد میکند.
Keep in mind that Robo scripts don't replace all kinds of tests. You still need unit tests to catch low-level logic bugs in your app; these tests typically don't require an Android or iOS environment. We recommend that you supplement Robo script tests with targeted instrumentation tests that can have specific, detailed assertions about business logic, which are best expressed in code.
ضبط یک اسکریپت Robo با استفاده از Test Lab در اندروید استودیو
ضبطکننده اسکریپت Robo در اندروید استودیو به شما امکان میدهد اسکریپتهای Robo را با تعامل مستقیم با برنامه روی دستگاه خود ضبط کنید. برای شروع اسکریپتنویسی Robo از طریق ابزار Firebase در اندروید استودیو، این دستورالعملها را دنبال کنید:
اندروید استودیو را باز کنید و از منوی Tools گزینه Firebase را انتخاب کنید.
در پنل فایربیس، روی گزینهی «ضبط اسکریپت روبو و استفاده از آن برای هدایت تست روبو» کلیک کنید.
روی ضبط اسکریپت Robo کلیک کنید. کادر محاورهای انتخاب هدف استقرار ظاهر میشود.
دستگاهی را که میخواهید اسکریپت Robo را در آن ضبط کنید، انتخاب کنید.
پس از اینکه اسکریپت Robo را در دستگاه ضبط کردید، فایل را به عنوان یک فایل JSON در مکان مورد نظر ذخیره کنید.
صفحه Test Lab را در کنسول Firebase باز کنید و فایل اسکریپت JSON و APK برنامه را آپلود کنید.
روی دکمهی «ادامه» کلیک کنید. از شما خواسته میشود دستگاه و سطح API را انتخاب کنید. پس از تکمیل اسکریپت تست، Test Lab گزارش تست را تولید میکند.
(اختیاری) برای کپی یا دانلود فایل گزارش آزمایش و ویدیو، روی «مشاهده فایلهای منبع» کلیک کنید.
By default, Robo script robustness mechanisms prevent it from failing early. If you choose the strict execution mode and a Robo script fails at any point, Test Lab abandons all further steps in the script and resumes a regular Robo crawl. Most often, Robo scripts fail because Robo can't find a required element on the screen. To avoid failures, make sure that your app navigation is predictable and that your screens are shown in a deterministic order.
اجرای اسکریپت Robo در Test Lab
برای اجرای اسکریپت Robo در Test Lab ، این دستورالعملها را دنبال کنید:
صفحه Test Lab را در کنسول Firebase باز کنید.
فایل APK یا AAB برنامه را در فیلد App 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 مراجعه کنید.
- یک تست روبو اجرا کنید .