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

این سند نحوه استفاده از اسکریپت‌های Robo را شرح می‌دهد، که آزمایش‌هایی هستند که وظایف QA دستی را برای برنامه‌های تلفن همراه خودکار می‌کنند و یکپارچه‌سازی مداوم (CI) و استراتژی‌های آزمایش پیش از راه‌اندازی را فعال می‌کنند. برای مثال، می‌توانید از اسکریپت‌های Robo برای آزمایش سفر مشترک کاربر یا ارائه ورودی رابط کاربری خاص (UI) مانند نام کاربری و رمز عبور استفاده کنید. اسکریپت های Robo یکی از ویژگی های تست Robo هستند.

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

اسکریپت های Robo از تست Robo به عنوان موتور تست استفاده می کنند. در ابتدایی‌ترین شکل آن، یک اسکریپت Robo متشکل از دنباله‌ای از اقدامات رابط کاربری است، مانند وارد کردن متن «نام کاربری» و سپس ضربه زدن روی دکمه تأیید . اسکریپت‌های Robo همچنین می‌توانند شامل اقداماتی مانند انتظار برای ظاهر شدن یک عنصر، ضربه زدن روی یک نقطه خاص در یک عنصر، و اجرای دستورات پوسته Android Debug Bridge ( adb ) باشند.

اسکریپت های Robo دارای مزایای زیر نسبت به چارچوب های آزمایشی سنتی هستند:

قابلیت توضیحات
بسیار مقاوم اسکریپت‌های Robo می‌توانند تفاوت‌های ساختاری و رفتاری قابل‌توجهی بین نسخه‌های برنامه و پوسته پوسته شدن برنامه را تحمل کنند.
پایان باز پس از تکمیل اسکریپت Robo، تست پایه Robo می‌تواند برنامه را کنترل کند و به آزمایش آن ادامه دهد. این رویکرد آزمایش مداوم چندین مورد استفاده کلیدی را امکان پذیر می کند. برای مثال، می‌توانید از یک اسکریپت Robo برای آوردن یک برنامه به یک وضعیت خاص با انجام یک جریان ورود سفارشی استفاده کنید.
قابل ضبط شما نیازی به کدنویسی دستی اسکریپت های Robo ندارید. آنها را می توان با استفاده از ضبط کننده اسکریپت Robo در Android Studio ضبط کرد. ایجاد یا اصلاح اسکریپت های Robo معمولاً نیازی به دانش توسعه موبایل ندارد.
انعطاف پذیر اسکریپت‌های Robo می‌توانند با عناصر UI غیر بومی که در بازی‌ها رایج هستند، تعامل داشته باشند.

اسکریپت‌های Robo به صورت مشروط در طول تست Robo فعال می‌شوند، که به کاربران امکان می‌دهد رفتار Robo را تقویت کنند - معمولاً برای دستیابی به پوشش بیشتر یا عملکرد خاص هدف. برخلاف چارچوب‌های تست سنتی، اسکریپت‌های Robo از موارد زیر پشتیبانی می‌کنند:

  • شرایط راه‌اندازی مختلف، به‌عنوان مثال، فعال بودن (یا نبودن) یک نام بسته برنامه خاص یا نمایش یک عنصر خاص روی صفحه (یا نه).
  • کنترل های اجرا، به عنوان مثال، حداکثر تعداد اجرا، اولویت، مرحله خزیدن مربوطه.
  • انواع اقدام غیر متعارف (شرطی، نادیده گرفتن عناصر، بسته شدن صفحه).

توصیه می کنیم در صورت امکان از اسکریپت های Robo استفاده کنید زیرا می توان آنها را بدون زحمت نگهداری کرد. به عنوان مثال، می توانید از اسکریپت Robo برای انجام کارهای زیر استفاده کنید:

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

از ویژگی های پیشرفته تر Robo script برای انجام کارهای زیر استفاده کنید:

  • قبل از اینکه Robo شروع به خزیدن در برنامه تحت آزمایش یا پس از پایان خزیدن کند، اقداماتی را انجام دهید، برای مثال، داده‌های برنامه تحت آزمایش را قبل از خزیدن پاک کنید یا تنظیمات دستگاه را تغییر دهید.
  • تغییر جنبه های رفتار روبو در طول خزیدن، به ویژه:
    • کاری کنید که Robo برخی ویجت‌های رابط کاربری یا صفحه‌های برنامه را نادیده بگیرد.
    • یک عمل سفارشی برای Robo ارائه دهید تا هنگام عقبگرد از یک صفحه خاص انجام دهد.
    • هر زمان که در حین خزیدن با صفحه برنامه خاصی مواجه شد، Robo را وادار کنید تا اقدامات خاصی را انجام دهد.
  • نحوه انجام خزیدن Robo را کاملاً سفارشی کنید. به عنوان مثال، از ترکیبی از کنش‌های شرطی و غیرشرطی برای نگه داشتن برنامه تحت آزمایش در پس‌زمینه در طول خزیدن استفاده کنید، در حالی که دستکاری‌های دستگاه را انجام می‌دهید و هر پنجره بازشوی را که در طول مسیر ظاهر می‌شود حذف کنید.

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

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

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

  1. Android Studio را باز کنید و Tools -> Firebase را انتخاب کنید.

  2. در پنجره Firebase، روی Record Robo Script کلیک کنید و از آن برای هدایت تست Robo استفاده کنید .

  3. روی Record Robo script کلیک کنید. کادر گفتگوی Select Deployment Target ظاهر می شود.

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

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

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

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

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

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

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

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

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

  2. APK یا AAB برنامه را در قسمت APK یا AAB برنامه آپلود کنید.

  3. فایل اسکریپت Robo ضبط شده یا ایجاد شده دستی خود را در قسمت Robo script (اختیاری) آپلود کنید.

یک اسکریپت 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>

مراحل بعدی