شروع آزمایش برای Android با Firebase Test Lab

Firebase Test Lab به شما امکان می‌دهد برنامه‌تان را در طیفی از دستگاه‌ها و پیکربندی‌ها آزمایش کنید. این راهنمای «شروع به کار» مسیر پیاده‌سازی را برای شما فراهم می‌کند تا دنبال کنید، و همچنین مقدمه‌ای بر پیشنهادهای Android Test Lab است.

برای کسب اطلاعات درباره سهمیه‌ها و طرح‌های قیمت‌گذاری Test Lab، به استفاده، سهمیه‌ها، و قیمت‌گذاری مراجعه کنید.

مفاهیم کلیدی

وقتی آزمایشی یا مجموعه‌ای از چارچوب‌های تست را در دستگاه‌ها و پیکربندی‌هایی که انتخاب کرده‌اید اجرا می‌کنید، Test Lab آزمایش را به‌صورت دسته‌ای در برنامه‌تان اجرا می‌کند، سپس نتایج را به‌صورت ماتریس آزمایشی نمایش می‌دهد.

دستگاه‌ها × اجراهای آزمایشی = ماتریس آزمایشی

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

مرحله ۱: آماده کردن آزمایش برای بارگذاری در Test Lab

انواع آزمایش دردسترس

می‌توانید آزمایش‌های زیر را با Test Lab اجرا کنید. توجه داشته باشید که همه انواع آزمایش به ۴۵ دقیقه اجرا در دستگاه‌های فیزیکی و ۶۰ دقیقه در دستگاه‌های مجازی محدود هستند. هرگونه استثنای گیرنیفتاده باعث آزمایش ناموفق می‌شود.

  • آزمایش ابزار دقیق یا آزمایش واحد ابزار دقیق: آزمایشی که بااستفاده از چارچوب‌های Espresso یا UI Automator نوشته‌اید. با این آزمایش، می‌توانید ادعاهای صریحی درباره وضعیت برنامه‌تان داشته باشید تا عملکرد صحیح را بااستفاده از AndroidJUnitRunnerAPIs تأیید کنید.

    • برای دریافت دستورالعمل‌های مربوط به نحوه آماده‌سازی آزمون برای اجرا در Test Lab، به اجرای آزمون ابزار مراجعه کنید.

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

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

  • آزمایش Game Loop: آزمایشی که از «حالت نمایشی» برای شبیه‌سازی کنش‌های بازیکن در برنامه‌های بازی استفاده می‌کند. این روشی سریع و مقیاس‌پذیر است تا مطمئن شوید بازی‌تان برای کاربران عملکرد خوبی دارد. وقتی انتخاب می‌کنید که آزمایش «حلقه بازی» را اجرا کنید، می‌توانید:

    • نوشتن آزمایش‌های بومی برای موتور بازی

    • از نوشتن کد یکسان برای واسط‌های کاربر یا چارچوب‌های آزمایشی مختلف خودداری کنید

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

    برای دستورالعمل‌های اجرای این آزمایش با Test Lab، به اجرای آزمایش «حلقه بازی» مراجعه کنید.

ابزارهای اجرای آزمایش

می‌توانید ابزارهای زیر را برای اجرای آزمایشتان انتخاب کنید:

  • توصیه‌شده برای کاربران تازه‌وارد: کنسول Firebase به شما امکان می‌دهد برنامه‌ای را بارگذاری کنید و آزمایش را از مرورگر وب خود شروع کنید. برای دستورالعمل‌های مربوط به اجرای آزمایش‌ها بااستفاده از این ابزار، آزمایش با کنسول Firebase را ببینید.

  • ادغام «استودیو Android» به شما امکان می‌دهد برنامه‌تان را بدون ترک محیط توسعه آزمایش کنید. برای دریافت دستورالعمل‌های مربوط به اجرای آزمایش‌ها بااستفاده از این ابزار، آزمایش با «استودیو Android» را ببینید.

  • میانای خط فرمان gcloud به شما امکان می‌دهد آزمایش‌ها را به‌صورت تعاملی از خط فرمان اجرا کنید و همچنین برای اسکریپت‌نویسی به‌عنوان بخشی از فرایند ساخت و آزمایش خودکار شما بسیار مناسب است. برای دریافت دستورالعمل‌های مربوط به اجرای آزمایش‌ها بااستفاده از این ابزار، آزمایش با gcloud CLI را ببینید.

همچنین می‌توانید بااستفاده از Test Lab، برنامه‌تان را به‌طور رایگان آزمایش کنید. برای این کار، فایل‌های APK برنامه‌تان را بااستفاده از کانال آلفا یا بتا در «فروشگاه Play» بارگذاری و منتشر کنید. برای اطلاعات بیشتر، به استفاده از گزارش‌های پیش‌از راه‌اندازی برای شناسایی مشکلات و آزمایش‌های Robo مراجعه کنید.

مرحله ۲: انتخاب دستگاه آزمایشی

Test Lab از آزمایش روی چندین مدل و سازنده دستگاه‌های Android نصب‌شده و درحال اجرا در مرکز داده Google پشتیبانی می‌کند. آزمایش کردن در دستگاه‌های Test Lab به شما کمک می‌کند مشکلاتی را شناسایی کنید که ممکن است هنگام آزمایش کردن برنامه‌تان بااستفاده از شبیه‌سازها در «استودیو Android» رخ ندهند. برای کسب اطلاعات بیشتر، دستگاه‌های دردسترس را ببینید.

مرحله ۳: بررسی نتایج آزمایش

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

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

نتایج آزمایش خام حاوی گزارش‌های آزمایش و جزئیات خرابی برنامه است و به‌طور خودکار در سطل Google Cloud ذخیره می‌شود. اگر سطل را مشخص کنید، مسئول هزینه فضای ذخیره‌سازی هستید. اگر دسته‌ای را مشخص نکنید، Test Lab دسته‌ای را بدون هزینه برای شما ایجاد می‌کند.

برای جزئیات بیشتر، تجزیه‌وتحلیل نتایج Firebase Test Lab را ببینید.

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

پاک‌سازی دستگاه

‫Google امنیت داده‌های برنامه‌تان را بسیار جدی می‌گیرد. ما از بهترین روش‌های استاندارد صنعت برای حذف داده‌های برنامه و بازنشانی تنظیمات سیستم برای دستگاه‌های فیزیکی پس‌از هر اجرای آزمایشی پیروی می‌کنیم تا مطمئن شویم که آن‌ها برای اجرای آزمایش‌های جدید آماده هستند. برای دستگاه‌هایی که می‌توانیم با روگرفت بازیابی سفارشی فلش کنیم، یک گام فراتر می‌رویم و این دستگاه‌ها را بین اجراهای آزمایشی فلش می‌کنیم.

برای دستگاه‌های مجازی مورداستفاده Test Lab، نمونه‌های دستگاه پس‌از استفاده حذف می‌شوند تا هر اجرای آزمایشی از نمونه دستگاه مجازی جدیدی استفاده کند.


Test Lab و خدمات Google Play

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

اجازه دادن به دستگاه‌های آزمایشی برای دسترسی به سرورهای زیرینه خصوصی

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

تبلیغات تلفن همراه

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

برای کاهش این مشکل:

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

  • اگر باید از آگهی‌های واقعی در آزمایشتان استفاده کنید، به ارائه‌دهندگان تبلیغات دیجیتالی که با آن‌ها کار می‌کنید اطلاع دهید تا درآمدها و همه ترافیک مربوطه را که از Test Lab تولید شده است بااستفاده از بلوک‌های نشانی IP زیر فیلتر کنند. لازم نیست به ارائه‌دهندگان آگهی تحت مالکیت Google اطلاع دهید؛ Test Lab این کار را برای شما انجام می‌دهد.

نشانی‌های IP استفاده‌شده توسط دستگاه‌های Test Lab

همه ترافیک شبکه تولیدشده توسط دستگاه‌های Test Lab از بلوک‌های نشانی IP زیر منشأ می‌گیرد. همچنین می‌توانید بااستفاده از gcloud beta firebase test ip-blocks list فرمان در gcloud CLI به این فهرست دسترسی پیدا کنید. این فهرست به‌طور میانگین سالی یک‌بار به‌روز می‌شود.

پلاتفرم و نوع دستگاه بلوک نشانی IP CIDR
دستگاه‌های فیزیکی Android و iOS، دستگاه‌های مجازی Arm

70.32.128.0/19 (اضافه‌شده در ۲۰۲۲/۰۲)

108.177.6.0/23

108.177.18.192/26 (اضافه‌شده در فوریه ۲۰۲۲)

108.177.29.64/27 (گسترش‌یافته در ۲۰۲۲/۰۲)

108.177.31.160/27 (اضافه‌شده در ۲۰۲۲/۰۲)

199.36.156.8/29 (اضافه‌شده در ۲۰۲۲/۰۲)

‫199.36.156.16/28 (اضافه‌شده در ۲۰۲۲/۰۲)

209.85.131.0/27 (اضافه‌شده در ۲۰۲۲/۰۲)

2001:4860:1008::/48 (اضافه‌شده در ۲۰۲۲/۰۲)

2001:4860:1018::/48 (اضافه‌شده در ۲۰۲۲/۰۲)

2001:4860:1019::/48 (اضافه‌شده در ۲۰۲۲/۰۲)

2001:4860:1020::/48 (اضافه‌شده در ۲۰۲۲/۰۲)

2001:4860:1022::/48 (اضافه‌شده در ۲۰۲۲/۰۲)

2001:4860:101d::/48 (اضافه‌شده در ۲۰۲۵/۱۰)

‎2001:4860:101e::/48 (اضافه‌شده در ۲۰۲۵/۱۰)

2001:4860:1031::/48 (اضافه‌شده در ۲۰۲۵/۱۰)

70.32.128.48/28 (اضافه‌شده در آوریل ۲۰۲۴)

70.32.150.192/27 (اضافه‌شده در سپتامبر ۲۰۲۵)

108.177.6.0/27 (اضافه‌شده در سپتامبر ۲۰۲۵)

108.177.24.160/27 (اضافه‌شده در سپتامبر ۲۰۲۵)

108.177.29.0/27 (اضافه‌شده در سپتامبر ۲۰۲۵)

108.177.25.128/27 (اضافه‌شده در مه ۲۰۲۶)

108.177.26.128/26 (اضافه‌شده در مه ۲۰۲۶)

‫108.177.29.192/26 (اضافه‌شده در مه ۲۰۲۶)

172.217.120.64/26 (اضافه‌شده در مه ۲۰۲۶)

172.217.120.128/26 (اضافه‌شده در مه ۲۰۲۶)

2001:4860:1037::/48 (اضافه‌شده در ۲۰۲۶/۰۵)

2001:4860:1038::/48 (اضافه‌شده در ۰۵-۲۰۲۶)

2001:4860:103a::/48 (اضافه‌شده در مه ۲۰۲۶)

دستگاه‌های مجازی Android (غیرArm)

34.68.194.64/29 (اضافه‌شده در ۱۱-۲۰۱۹)

34.69.234.64/29 (اضافه‌شده در ۱۱-۲۰۱۹)

34.73.34.72/29 (اضافه‌شده در نوامبر ۲۰۱۹)

34.73.178.72/29 (اضافه‌شده در نوامبر ۲۰۱۹)

34.74.10.72/29 (اضافه‌شده در ۲۰۲۲/۰۲)

‫34.136.2.136/29 (اضافه‌شده در فوریه ۲۰۲۲)

‫34.136.50.136/29 (اضافه‌شده در فوریه ۲۰۲۲)

34.145.234.144/29 (اضافه‌شده در فوریه ۲۰۲۲)

35.192.160.56/29

35.196.166.80/29

35.196.169.240/29

35.203.128.0/28

35.234.176.160/28

35.243.2.0/27 (اضافه‌شده در ژوئیه ۲۰۱۹)

35.245.243.240/29 (اضافه‌شده در ۲۰۲۲/۰۲)

199.192.115.0/30

199.192.115.8/30

199.192.115.16/29

بلوک‌های IP دستگاه دیگر استفاده نمی‌شود

74.125.122.32/29 (برداشته‌شده در ۲۰۲۲/۰۲)

‫۲۱۶.۲۳۹.۴۴.۲۴/۲۹ (در فوریه ۲۰۲۲ برداشته شد)