Firebase Test Lab به شما امکان میدهد برنامه خود را روی طیف وسیعی از دستگاهها و پیکربندیها آزمایش کنید. این راهنمای شروع به کار، مسیر پیادهسازی را برای شما فراهم میکند و همچنین مقدمهای بر پیشنهادات اندروید Test Lab ارائه میدهد.
برای اطلاعات مربوط به سهمیههای Test Lab و طرحهای قیمتگذاری، به بخش استفاده، سهمیهها و قیمتگذاری مراجعه کنید.
مفاهیم کلیدی
وقتی یک تست یا مجموعهای از موارد تست را روی دستگاهها و پیکربندیهایی که انتخاب کردهاید اجرا میکنید، Test Lab تست را روی برنامه شما به صورت دستهای اجرا میکند و سپس نتایج را به صورت یک ماتریس تست نمایش میدهد.
دستگاهها × اجرای تست = ماتریس تست
- دستگاه
- یک دستگاه فیزیکی یا مجازی (فقط اندروید) که شما روی آن تست انجام میدهید، مانند تلفن، تبلت یا دستگاه پوشیدنی. دستگاههای موجود در یک ماتریس تست بر اساس مدل دستگاه، نسخه سیستم عامل، جهت صفحه نمایش و موقعیت مکانی (که به عنوان تنظیمات جغرافیایی و زبان نیز شناخته میشود) شناسایی میشوند.
- آزمایش، اجرای آزمایش
- یک تست (یا مجموعهای از تست کیسها) که باید روی یک دستگاه اجرا شود. میتوانید روی هر دستگاه یک تست اجرا کنید، یا به صورت اختیاری تست را تقسیمبندی کرده و تست کیسهای آن را روی دستگاههای مختلف اجرا کنید.
- ماتریس آزمون
- شامل وضعیتها و نتایج تست برای اجراهای تست شما است. اگر هر اجرای تست در یک ماتریس با شکست مواجه شود، کل ماتریس با شکست مواجه میشود.
مرحله ۱ : تست خود را برای آپلود در Test Lab آماده کنید
انواع آزمونهای موجود
شما میتوانید تستهای زیر را با Test Lab اجرا کنید. توجه داشته باشید که تمام انواع تستها به اجرای ۴۵ دقیقهای روی دستگاههای فیزیکی و ۶۰ دقیقهای روی دستگاههای مجازی محدود میشوند. هر گونه خطایی که شناسایی نشود، باعث شکست تست خواهد شد.
تست ابزار دقیق یا تست واحد ابزار دقیق : تستی که با استفاده از چارچوبهای Espresso یا UI Automator نوشتهاید. با این تست، میتوانید با استفاده از AndroidJUnitRunnerAPIها، ادعاهای صریحی در مورد وضعیت برنامه خود مطرح کنید تا عملکرد صحیح را تأیید کنید.
برای دستورالعملهای مربوط به نحوه آمادهسازی آزمایش خود برای اجرا در Test Lab ، به بخش اجرای آزمایش ابزار دقیق مراجعه کنید.
برای دستورالعملهای مربوط به نحوهی ساخت یک تست ابزار دقیق، به مستندات توسعهدهندگان اندروید مراجعه کنید.
تست روبو : یک تست خودکار که رابط کاربری برنامه شما را تجزیه و تحلیل میکند و سپس با شبیهسازی فعالیتهای کاربر، بدون نیاز به نوشتن کد، آن را به صورت روشمند بررسی میکند. برای اطلاعات بیشتر به «درباره تستهای روبو» مراجعه کنید.
تست حلقه بازی : تستی که از یک "حالت آزمایشی" برای شبیهسازی اقدامات بازیکن در برنامههای بازی استفاده میکند. این یک روش سریع و مقیاسپذیر برای تأیید عملکرد خوب بازی شما برای کاربران است. وقتی تصمیم به اجرای تست حلقه بازی میگیرید، میتوانید:
تستهای بومی برای موتور بازی خود بنویسید
از نوشتن کد یکسان برای رابطهای کاربری یا چارچوبهای تست مختلف خودداری کنید.
به صورت اختیاری، چندین حلقه برای اجرا در یک اجرای تست ایجاد کنید (برای کسب اطلاعات بیشتر به بخش «درباره تستهای حلقه بازی » مراجعه کنید). همچنین میتوانید حلقهها را با استفاده از برچسبها سازماندهی کنید تا بتوانید آنها را پیگیری کرده و حلقههای خاص را دوباره اجرا کنید.
برای دستورالعملهای اجرای این تست با Test Lab به Run a Game Loop test مراجعه کنید.
ابزارهایی برای اجرای تست شما
شما میتوانید ابزارهای زیر را برای اجرای تست خود انتخاب کنید:
توصیه شده برای کاربران جدید : کنسول Firebase به شما امکان میدهد یک برنامه را آپلود کنید و آزمایش را از مرورگر وب خود آغاز کنید. برای دستورالعملهای اجرای آزمایشها با استفاده از این ابزار، به بخش «آزمایش با کنسول Firebase مراجعه کنید.
ادغام با اندروید استودیو به شما امکان میدهد برنامه خود را بدون ترک محیط توسعه آزمایش کنید. برای دستورالعملهای اجرای آزمایشها با استفاده از این ابزار، به «آزمایش با اندروید استودیو» مراجعه کنید.
رابط خط فرمان gcloud به شما امکان میدهد تستها را از خط فرمان به صورت تعاملی اجرا کنید، و همچنین برای اسکریپتنویسی به عنوان بخشی از فرآیند ساخت و تست خودکار شما بسیار مناسب است. برای دستورالعملهای اجرای تستها با استفاده از این ابزار، به بخش Test with the gcloud CLI مراجعه کنید.
همچنین میتوانید برنامه خود را بدون هیچ هزینهای با Test Lab آزمایش کنید، زمانی که فایلهای APK برنامه خود را با استفاده از کانال آلفا یا بتا در فروشگاه Play آپلود و منتشر میکنید. برای اطلاعات بیشتر، به Use pre-launch reports to identification problems و Robo tests مراجعه کنید.
مرحله ۲ : دستگاه تست خود را انتخاب کنید
Test Lab از آزمایش روی چندین مدل و سازنده دستگاههای اندروید نصب شده و در حال اجرا در مرکز داده گوگل پشتیبانی میکند. آزمایش روی دستگاهها در Test Lab به شما کمک میکند تا مشکلاتی را که ممکن است هنگام آزمایش برنامه خود با استفاده از شبیهسازها در اندروید استودیو رخ ندهند، شناسایی کنید. برای کسب اطلاعات بیشتر، به دستگاههای موجود مراجعه کنید.
مرحله ۳ : بررسی نتایج آزمون
صرف نظر از اینکه چگونه آزمایشهای خود را شروع میکنید، تمام نتایج آزمایش شما توسط Test Lab مدیریت میشود و میتوانید آنها را به صورت آنلاین مشاهده کنید.
خلاصه نتیجه آزمایش به طور خودکار ذخیره میشود و میتوان آن را در کنسول Firebase مشاهده کرد. این خلاصه شامل مرتبطترین دادهها برای آزمایش شما، از جمله ویدیوهای مربوط به هر مورد آزمایش، اسکرینشاتها، تعداد آزمایشهایی که با موفقیت انجام شدهاند، شکست خوردهاند یا نتایج نامشخصی داشتهاند و موارد دیگر است.
نتایج خام آزمایش شامل گزارشهای آزمایش و جزئیات خرابی برنامه است و به طور خودکار در یک سطل Google Cloud ذخیره میشود. اگر سطلی را مشخص کنید، هزینه ذخیرهسازی بر عهده شماست. اگر سطلی مشخص نکنید، Test Lab یکی را بدون هیچ هزینهای برای شما ایجاد میکند.
برای جزئیات بیشتر، به تجزیه و تحلیل نتایج Firebase Test Lab مراجعه کنید.
وقتی آزمایشی را از اندروید استودیو آغاز میکنید، میتوانید نتایج آزمایش را از داخل محیط توسعه خود نیز بررسی کنید.
پاکسازی دستگاه
گوگل امنیت دادههای برنامه شما را بسیار جدی میگیرد. ما از بهترین شیوههای استاندارد صنعتی برای حذف دادههای برنامه و تنظیم مجدد تنظیمات سیستم برای دستگاههای فیزیکی پس از هر اجرای آزمایشی پیروی میکنیم تا اطمینان حاصل کنیم که آنها برای اجرای آزمایشهای جدید آماده هستند. برای دستگاههایی که میتوانیم با یک تصویر بازیابی سفارشی فلش کنیم، با فلش کردن این دستگاهها بین اجراهای آزمایشی، یک قدم فراتر میرویم.
برای دستگاههای مجازی مورد استفاده توسط Test Lab ، نمونههای دستگاه پس از استفاده حذف میشوند تا در هر اجرای تست از یک نمونه دستگاه مجازی جدید استفاده شود.
Test Lab و سرویسهای گوگل پلی
دستگاههای Test Lab معمولاً با آخرین نسخه SDK سرویسهای گوگل پلی اجرا میشوند، اما برخی ممکن است پس از انتشار نسخه جدید SDK، به چند روز زمان برای بهروزرسانی نیاز داشته باشند. توجه داشته باشید که ممکن است با برخی از دستگاهها با مشکلات سازگاری مواجه شوید.
اجازه دادن به دستگاههای آزمایشی برای دسترسی به سرورهای خصوصی backend
برخی از برنامههای تلفن همراه برای عملکرد صحیح در طول آزمایش، نیاز به ارتباط با سرویسهای خصوصی backend دارند. اگر سرورهای backend شما توسط قوانین فایروال محافظت میشوند، میتوانید با استفاده از بلوکهای آدرس IP زیر، دسترسی به دستگاههای فیزیکی و مجازی Test Lab را برای باز کردن مسیرها از طریق فایروال خود مجاز کنید.
تبلیغات موبایلی
Test Lab زیرساختی مقیاسپذیر فراهم میکند که تست برنامه را خودکار میکند و متأسفانه، این قابلیت میتواند توسط برنامههای مخربی که برای ایجاد درآمد تبلیغاتی جعلی طراحی شدهاند، مورد سوءاستفاده قرار گیرد.
برای کاهش این مشکل:
اگر از ارائهدهندگان تبلیغات دیجیتال شخص ثالث (مثلاً شبکههای تبلیغاتی یا پلتفرمهای سمت تقاضا) استفاده میکنید یا با آنها کار میکنید، توصیه میشود در طول توسعه و آزمایش برنامه، به جای تبلیغات واقعی، از تبلیغات آزمایشی استفاده کنید.
اگر مجبورید در آزمایش خود از تبلیغات واقعی استفاده کنید، به ارائهدهندگان تبلیغات دیجیتالی که با آنها کار میکنید اطلاع دهید تا درآمدها و تمام ترافیک مربوطه ایجاد شده از Test Lab را با استفاده از بلوکهای آدرس IP زیر فیلتر کنند. نیازی به اطلاع دادن به ارائهدهندگان تبلیغات متعلق به گوگل نیست؛ Test Lab این کار را برای شما انجام میدهد.
آدرسهای IP مورد استفاده توسط دستگاههای Test Lab
تمام ترافیک شبکه تولید شده توسط دستگاههای Test Lab از بلوکهای آدرس IP زیر سرچشمه میگیرد. همچنین میتوانید با استفاده از دستور gcloud beta firebase test ip-blocks list در gcloud CLI به این لیست دسترسی پیدا کنید. این لیست به طور متوسط سالی یک بار بهروزرسانی میشود.
| نوع پلتفرم و دستگاه | بلوک آدرس IP CIDR |
|---|---|
| دستگاههای فیزیکی اندروید و iOS، دستگاههای مجازی Arm | 70.32.128.0/19 (اضافه شده در 02-2022) ۱۰۸.۱۷۷.۶.۰/۲۳ ۱۰۸.۱۷۷.۱۸.۱۹۲/۲۶ (اضافه شده در تاریخ ۰۲-۲۰۲۲) 108.177.29.64/27 (گسترش یافته از 02-2022) ۱۰۸.۱۷۷.۳۱.۱۶۰/۲۷ (اضافه شده در تاریخ ۰۲-۲۰۲۲) 199.36.156.8/29 (اضافه شده در 02-2022) 199.36.156.16/28 (اضافه شده در 02-2022) 209.85.131.0/27 (اضافه شده در 02-2022) ۲۰۰۱:۴۸۶۰:۱۰۰۸::/۴۸ (اضافه شده در ۰۲-۲۰۲۲) ۲۰۰۱:۴۸۶۰:۱۰۱۸::/۴۸ (اضافه شده در ۰۲-۲۰۲۲) ۲۰۰۱:۴۸۶۰:۱۰۱۹::/۴۸ (اضافه شده در ۰۲-۲۰۲۲) ۲۰۰۱:۴۸۶۰:۱۰۲۰::/۴۸ (اضافه شده در ۰۲-۲۰۲۲) ۲۰۰۱:۴۸۶۰:۱۰۲۲::/۴۸ (اضافه شده در ۰۲-۲۰۲۲) ۲۰۰۱:۴۸۶۰:۱۰۱d::/۴۸ (۱۰-۲۰۲۵ اضافه شد) ۲۰۰۱:۴۸۶۰:۱۰۱e::/۴۸ (۱۰-۲۰۲۵ اضافه شد) ۲۰۰۱:۴۸۶۰:۱۰۳۱::/۴۸ (۱۰-۲۰۲۵ اضافه شد) 70.32.128.48/28 (اضافه شده در 04-2024) 70.32.150.192/27 (اضافه شده در 09-2025) 108.177.6.0/27 (اضافه شده در 09-2025) 108.177.24.160/27 (اضافه شده در 09-2025) 108.177.29.0/27 (اضافه شده در 09-2025) |
| دستگاههای مجازی اندروید (غیر ARM) | ۳۴.۶۸.۱۹۴.۶۴/۲۹ (اضافه شده در ۱۱-۲۰۱۹) ۳۴.۶۹.۲۳۴.۶۴/۲۹ (اضافه شده در ۱۱-۲۰۱۹) ۳۴.۷۳.۳۴.۷۲/۲۹ (اضافه شده در ۱۱-۲۰۱۹) ۳۴.۷۳.۱۷۸.۷۲/۲۹ (اضافه شده در ۱۱-۲۰۱۹) ۳۴.۷۴.۱۰.۷۲/۲۹ (اضافه شده در ۰۲-۲۰۲۲) ۳۴.۱۳۶.۲.۱۳۶/۲۹ (اضافه شده در تاریخ ۰۲-۲۰۲۲) ۳۴.۱۳۶.۵۰.۱۳۶/۲۹ (اضافه شده در تاریخ ۰۲-۲۰۲۲) ۳۴.۱۴۵.۲۳۴.۱۴۴/۲۹ (اضافه شده در تاریخ ۰۲-۲۰۲۲) ۳۵.۱۹۲.۱۶۰.۵۶/۲۹ ۳۵.۱۹۶.۱۶۶.۸۰/۲۹ ۳۵.۱۹۶.۱۶۹.۲۴۰/۲۹ ۳۵.۲۰۳.۱۲۸.۰/۲۸ ۳۵.۲۳۴.۱۷۶.۱۶۰/۲۸ 35.243.2.0/27 (اضافه شده در ۷-۲۰۱۹) 35.245.243.240/29 (اضافه شده در 02-2022) ۱۹۹.۱۹۲.۱۱۵.۰/۳۰ ۱۹۹.۱۹۲.۱۱۵.۸/۳۰ ۱۹۹.۱۹۲.۱۱۵.۱۶/۲۹ |
| بلوکهای IP دستگاه دیگر استفاده نمیشوند | 74.125.122.32/29 (حذف شده در تاریخ 02-2022) 216.239.44.24/29 (حذف شده در تاریخ 02-2022) |