با تست های Robo شروع کنید

Robo test یک ابزار تست است که با Firebase Test Lab یکپارچه شده است. تست Robo ساختار رابط کاربری برنامه شما را تجزیه و تحلیل می کند و سپس آن را به صورت روشمند بررسی می کند و به طور خودکار فعالیت های کاربر را شبیه سازی می کند. برخلاف تست UI/Application Exerciser Monkey ، تست Robo همیشه همان فعالیت‌های کاربر را به همان ترتیب شبیه‌سازی می‌کند، زمانی که از آن برای آزمایش یک برنامه در یک پیکربندی دستگاه خاص با تنظیمات مشابه استفاده می‌کنید. این به شما امکان می‌دهد از تست Robo برای اعتبارسنجی رفع اشکال‌ها و آزمایش رگرسیون‌ها به روشی استفاده کنید که هنگام آزمایش با آزمون UI/Application Exerciser Monkey امکان‌پذیر نیست.

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

آمار خزیدن تست Robo

Robo برای کمک به تفسیر نتایج تست Robo خود، آمار را در طول هر خزیدن تست ثبت می کند. Test Lab آمار را در بالای برگه Robo در صفحه نتایج آزمون شما نمایش می دهد:

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

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

تایم اوت تست Robo

بسته به پیچیدگی رابط کاربری برنامه شما، تست Robo ممکن است پنج دقیقه یا بیشتر طول بکشد تا مجموعه کاملی از تعاملات رابط کاربری را تکمیل کند. توصیه می کنیم مدت زمان آزمایش را برای اکثر برنامه ها حداقل 120 ثانیه (2 دقیقه) و برای برنامه های نسبتاً پیچیده 300 ثانیه (5 دقیقه) تنظیم کنید. مقدار پیش‌فرض تایم اوت 300 ثانیه (5 دقیقه) برای آزمایش‌هایی است که از Android Studio و کنسول برنامه‌نویس Google اجرا می‌شوند، و 1500 ثانیه (25 دقیقه) برای آزمایش‌هایی که از خط فرمان gcloud اجرا می‌شوند.

خطاهای زمان راه‌اندازی برنامه

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

کنترل بیشتر با اسکریپت های Robo

گاهی اوقات شما نیاز به کنترل بیشتری روی تست های خود دارید. برای مثال، ممکن است بخواهید یک سفر مشترک کاربر را آزمایش کنید یا ورودی رابط کاربری خاصی مانند نام کاربری و رمز عبور را ارائه دهید. اسکریپت های Robo می توانند کمک کنند.

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

با برنامه نویسی Robo از طریق ابزار Firebase در Android Studio شروع کنید:

  1. اندروید استودیو را باز کنید.
  2. در منوی اصلی، Tools > Firebase را انتخاب کنید.
  3. Test Lab را انتخاب کنید و روی Record Robo Script کلیک کنید و از آن برای راهنمای تست Robo استفاده کنید .
  4. بقیه مراحل در ابزار را برای ضبط Robo Script خود دنبال کنید.
  5. آن Robo Script را در آزمایشگاه تست آپلود کنید و آزمایش خود را شروع کنید.

خطاهای اسکریپت Robo

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

تست‌های Robo و ویجت‌های رابط کاربری غیر اندروید

تست‌های Robo از API Android برای انجام مستقیم اقدامات روی ویجت‌های رابط کاربری Android استفاده می‌کنند. این به آزمایش‌ها کمک می‌کند UI شما را به‌طور خودکار بررسی کنند، اما همچنین به این معنی است که آنها باید بتوانند یک سلسله‌مراتب رابط کاربری اندروید را برای یک صفحه استخراج کنند تا آزمایش‌ها را روی آن اجرا کنند.

اگر صفحه‌ای در برنامه شما از ویجت‌های رابط کاربری Android استفاده نمی‌کند، تست‌های Robo برای آزمایش آن صفحه روی Monkey Actions بازمی‌گردند. برخلاف اقدامات روشمندتر Robo، Monkey Actions به سادگی رویدادهای ضربه زدن را در مکان های نیمه تصادفی روی صفحه نمایش دستگاه شبیه سازی می کند.

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

ادغام با گوگل پلی

هنگام آپلود و انتشار فایل APK برنامه خود با استفاده از کانال آلفا یا بتا، می‌توانید از تست Robo در کنسول Google Play استفاده کنید. تست Robo روی مجموعه‌ای از دستگاه‌های فیزیکی محبوب از مکان‌های جغرافیایی مختلف اجرا می‌شود و پوشش آزمایشی را در فاکتورهای فرم و پیکربندی‌های سخت‌افزاری مختلف ارائه می‌دهد. برای کسب اطلاعات بیشتر، به استفاده از گزارش‌های پیش از راه‌اندازی برای شناسایی مشکلات مراجعه کنید.

ورود به حساب کاربری و ورودی متن از پیش تعریف شده را آزمایش کنید

تست Robo از ورود به حساب کاربری آزمایشی پشتیبانی می کند و همچنین به شما امکان می دهد متن از پیش تعریف شده را در فیلدهای برنامه خود وارد کنید. برای ورود سفارشی و سایر ورودی های متنی از پیش تعریف شده، تست Robo می تواند متن را در قسمت های EditText در برنامه شما وارد کند. برای هر رشته، باید فیلد EditText را با استفاده از نام منبع Android شناسایی کنید. برای کسب اطلاعات بیشتر، به دسترسی به منابع مراجعه کنید.

ورود

تست Robo دو روش انحصاری متقابل برای پشتیبانی از ورود به سیستم دارد:

  • ورود به سیستم سفارشی: اگر اعتبارنامه‌های حساب آزمایشی را ارائه می‌کنید، باید به تست Robo بگویید کجا آنها را وارد کند، و همچنین اعتبارنامه‌ها را ارائه کنید.
  • ورود به سیستم خودکار: اگر برنامه شما دارای صفحه ورود به سیستم است که از یک حساب Google برای احراز هویت استفاده می کند، تست Robo از یک حساب آزمایشی Google استفاده می کند، مگر اینکه اعتبار حساب آزمایشی را برای ورود به سیستم سفارشی ارائه کنید.

برای ارائه اعتبارنامه حساب آزمایشی برای ورود سفارشی، موارد زیر را انجام دهید:

  1. در صفحه انتخاب ابعاد ، گزینه های اضافی را انتخاب کنید.
  2. در قسمت اعتبارنامه حساب آزمایشی (اختیاری) ، نام کاربری و نام منابع رمز عبور و نام کاربری و رمز عبور حساب آزمایشی را وارد کنید.

ورودی متن از پیش تعریف شده

می‌توانید متن ورودی سفارشی را برای سایر فیلدهای نوشتاری مورد استفاده برنامه خود ارائه دهید. برای ارائه ورودی متن برای فیلدهای اضافی، موارد زیر را انجام دهید:

  1. در صفحه انتخاب ابعاد ، گزینه های اضافی را انتخاب کنید.
  2. در قسمت فیلدهای اضافی (اختیاری) ، یک یا چند نام منبع و رشته هایی را که باید وارد کنید در فیلدهای متنی مربوطه وارد کنید.

خطاهای ورودی متن از پیش تعریف شده

Robo فیلدهای EditText را با نام منبع Android که با عبارت منظم ارائه شده مطابقت دارد جستجو می کند. اگر Robo نتواند یک فیلد منطبق را پیدا کند، متن شما را وارد نمی‌کند، اما در غیر این صورت طبق معمول به خزیدن خود ادامه می‌دهد.

می توانید حداکثر سه پیوند عمیق را که توسط برنامه شما پشتیبانی می شود برای آزمایش ارائه دهید. پیوندهای عمیق به عنوان هدف Android ACTION_VIEW برای برنامه شما صادر می شوند. بنابراین، هر پیوند باید با یک فیلتر قصد در برنامه شما مطابقت داشته باشد.

اگر یک یا چند پیوند عمیق ارائه شود، برنامه ابتدا به طور عادی راه اندازی می شود (با استفاده از هدف ACTION_MAIN ) و تا زمان تعیین شده خزیده می شود. پس از خزیدن اصلی، هر پیوند عمیق به مدت 30 ثانیه دیگر خزیده می شود.

اگر Robo نتواند فعالیتی مطابق با پیوند عمیق شما پیدا کند، آزمایشگاه تست پیوند را نادیده می گیرد. مشکلات پیوند عمیق معمولاً نتیجه اختلاف بین پیوند عمیق ارائه شده و تعریف آن در برنامه شما است. URL ارائه شده و برنامه خود را از نظر غلط املایی یا تناقضات دیگر بررسی کنید.

پشتیبانی از مجوز برنامه

Test Lab از برنامه هایی پشتیبانی می کند که از سرویس مجوز برنامه ارائه شده توسط Google Play استفاده می کنند. برای بررسی موفقیت آمیز مجوز هنگام آزمایش برنامه خود با Test Lab، باید برنامه خود را در کانال تولید در فروشگاه Play منتشر کنید. برای آزمایش برنامه خود در کانال آلفا یا بتا با استفاده از Test Lab، قبل از آپلود برنامه خود در Test Lab، بررسی مجوز را بردارید.

مشکلات شناخته شده

تست Robo در حال حاضر دارای محدودیت های شناخته شده زیر است:

  • پشتیبانی از چارچوب UI . تست Robo فقط با برنامه‌هایی سازگار است که از عناصر UI از چارچوب Android UI استفاده می‌کنند (از جمله اشیاء View و ViewGroup ، اما به استثنای اشیاء WebView ). اگر از تست Robo برای تمرین برنامه‌هایی که از چارچوب‌های رابط کاربری دیگر استفاده می‌کنند، از جمله برنامه‌هایی که از موتور بازی Unity استفاده می‌کنند، استفاده می‌کنید، ممکن است تست بدون کاوش در صفحه اول خارج شود.
  • کپچای ورود به سیستم تست Robo نمی‌تواند صفحه‌های ورود به سیستم را که به اقدامات اضافی کاربر فراتر از وارد کردن اعتبار برای ورود به سیستم (مانند تکمیل کپچا) نیاز دارند، دور بزند.