اجرای یک اسکریپت Robo (اندروید)

این سند نحوه استفاده از اسکریپت‌های 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 را کاملاً سفارشی کنید. به عنوان مثال، از ترکیبی از اقدامات شرطی و غیرشرطی استفاده کنید تا برنامه در طول خزش در پس‌زمینه در حال آزمایش باشد، در حالی که دستکاری‌های دستگاه را انجام می‌دهد و هرگونه پنجره‌ی بازشو که در طول مسیر ظاهر می‌شود را رد می‌کند.

به خاطر داشته باشید که اسکریپت‌های Robo جایگزین همه انواع تست‌ها نمی‌شوند. شما هنوز هم برای یافتن اشکالات منطقی سطح پایین در برنامه خود به تست‌های واحد نیاز دارید. این تست‌ها معمولاً به محیط اندروید یا iOS نیاز ندارند. توصیه می‌کنیم تست‌های اسکریپت Robo را با تست‌های ابزار دقیق هدفمند تکمیل کنید که می‌توانند ادعاهای خاص و دقیقی در مورد منطق کسب‌وکار داشته باشند که به بهترین شکل در کد بیان می‌شوند.

ضبط یک اسکریپت Robo با استفاده از Test Lab در اندروید استودیو

ضبط‌کننده اسکریپت Robo در اندروید استودیو به شما امکان می‌دهد اسکریپت‌های Robo را با تعامل مستقیم با برنامه روی دستگاه خود ضبط کنید. برای شروع اسکریپت‌نویسی Robo از طریق ابزار Firebase در اندروید استودیو، این دستورالعمل‌ها را دنبال کنید:

  1. اندروید استودیو را باز کنید و از منوی Tools گزینه Firebase را انتخاب کنید.

  2. در پنل فایربیس، روی گزینه‌ی «ضبط اسکریپت روبو و استفاده از آن برای هدایت تست روبو» کلیک کنید.

  3. روی ضبط اسکریپت Robo کلیک کنید. کادر محاوره‌ای انتخاب هدف استقرار ظاهر می‌شود.

  4. دستگاهی را که می‌خواهید اسکریپت Robo را در آن ضبط کنید، انتخاب کنید.

  5. پس از اینکه اسکریپت Robo را در دستگاه ضبط کردید، فایل را به عنوان یک فایل JSON در مکان مورد نظر ذخیره کنید.

  6. صفحه Test Lab را در کنسول Firebase باز کنید و فایل اسکریپت JSON و APK برنامه را آپلود کنید.

  7. روی دکمه‌ی «ادامه» کلیک کنید. از شما خواسته می‌شود دستگاه و سطح API را انتخاب کنید. پس از تکمیل اسکریپت تست، Test Lab گزارش تست را تولید می‌کند.

  8. (اختیاری) برای کپی یا دانلود فایل گزارش آزمایش و ویدیو، روی «مشاهده فایل‌های منبع» کلیک کنید.

به طور پیش‌فرض، مکانیسم‌های پایداری اسکریپت Robo از شکست زودهنگام آن جلوگیری می‌کنند. اگر حالت اجرای strict را انتخاب کنید و یک اسکریپت Robo در هر نقطه‌ای شکست بخورد، Test Lab تمام مراحل بعدی اسکریپت را رها می‌کند و یک خزش معمولی Robo را از سر می‌گیرد. اغلب، اسکریپت‌های Robo شکست می‌خورند زیرا Robo نمی‌تواند عنصر مورد نیاز را روی صفحه پیدا کند. برای جلوگیری از شکست، مطمئن شوید که پیمایش برنامه شما قابل پیش‌بینی است و صفحات شما به ترتیب قطعی نشان داده می‌شوند.

اجرای اسکریپت Robo در Test Lab

برای اجرای اسکریپت Robo در Test Lab ، این دستورالعمل‌ها را دنبال کنید:

  1. صفحه Test Lab را در کنسول Firebase باز کنید.

  2. فایل APK یا AAB برنامه را در فیلد App APK یا AAB آپلود کنید.

  3. فایل اسکریپت 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>

مراحل بعدی