Firebase Test Lab به شما امکان میدهد برنامه خود را روی طیف وسیعی از دستگاهها و پیکربندیها با کیفیت بالا آزمایش کنید. این راهنما مروری بر مفاهیم کلیدی Test Lab ، پیشنهادات iOS و دستورالعملهای نحوه شروع آزمایش ارائه میدهد.
برای اطلاعات مربوط به سهمیههای Test Lab و طرحهای قیمتگذاری، به بخش استفاده، سهمیهها و قیمتگذاری مراجعه کنید.
مفاهیم و اصطلاحات کلیدی
وقتی یک تست یا مجموعهای از موارد تست را روی دستگاهها و پیکربندیهایی که انتخاب کردهاید اجرا میکنید، Test Lab تست را روی برنامه شما به صورت دستهای اجرا میکند و سپس نتایج را به صورت یک ماتریس تست نمایش میدهد.
دستگاهها × اجرای تست = ماتریس تست
- دستگاه
- یک دستگاه فیزیکی یا مجازی (فقط اندروید) که شما روی آن تست انجام میدهید، مانند تلفن، تبلت یا دستگاه پوشیدنی. دستگاههای موجود در یک ماتریس تست بر اساس مدل دستگاه، نسخه سیستم عامل، جهت صفحه نمایش و موقعیت مکانی (که به عنوان تنظیمات جغرافیایی و زبان نیز شناخته میشود) شناسایی میشوند.
- آزمایش، اجرای آزمایش
- یک تست (یا مجموعهای از تست کیسها) که باید روی یک دستگاه اجرا شود. میتوانید روی هر دستگاه یک تست اجرا کنید، یا به صورت اختیاری تست را تقسیمبندی کرده و تست کیسهای آن را روی دستگاههای مختلف اجرا کنید.
- ماتریس آزمون
- شامل وضعیتها و نتایج تست برای اجراهای تست شما است. اگر هر اجرای تست در یک ماتریس با شکست مواجه شود، کل ماتریس با شکست مواجه میشود.
مرحله ۱ : تست خود را برای آپلود در Test Lab آماده کنید
شما میتوانید تستهای زیر را با Test Lab اجرا کنید. توجه داشته باشید که همه انواع تست میتوانند حداکثر تا ۴۵ دقیقه روی دستگاههای فیزیکی اجرا شوند و هر خطایی که شناسایی نشود، باعث شکست تست خواهد شد.
XCTest (شامل XCUITests) : یک تست واحد که با استفاده از چارچوب XCTest نوشتهاید. برای دستورالعملهای مربوط به اصلاح یک XCTest برای اجرا با Test Lab ، به Create an XCTest مراجعه کنید.
تست حلقه بازی : تستی که از یک "حالت آزمایشی" برای شبیهسازی اقدامات بازیکن در برنامههای بازی استفاده میکند. این یک روش سریع و مقیاسپذیر برای تأیید عملکرد خوب بازی شما برای کاربران است. وقتی تصمیم به اجرای تست حلقه بازی میگیرید، میتوانید:
تستهای بومی برای موتور بازی خود بنویسید.
از نوشتن کد یکسان برای رابطهای کاربری مختلف یا چارچوبهای تست مختلف خودداری کنید.
به صورت اختیاری چندین حلقه برای اجرا در یک اجرای تست ایجاد کنید. همچنین میتوانید حلقهها را با استفاده از برچسبها سازماندهی کنید تا بتوانید آنها را پیگیری کرده و حلقههای خاص را دوباره اجرا کنید.
برای دستورالعملهای مربوط به نحوه اجرای تست خود در Test Lab به Run a Game Loop test مراجعه کنید.
مرحله ۲ : ابزاری را برای اجرای تست خود انتخاب کنید
شما میتوانید ابزارهای زیر را برای اجرای تست خود انتخاب کنید:
کنسول Firebase به شما امکان میدهد یک برنامه را آپلود کنید و از هر جایی آزمایش را آغاز کنید. برای دستورالعملهای استفاده از این ابزار، به بخش «آزمایش با کنسول Firebase » مراجعه کنید.
رابط خط فرمان (CLI) جیکلود به شما امکان میدهد تستها را از خط فرمان به صورت تعاملی اجرا کنید و همچنین برای اسکریپتنویسی به عنوان بخشی از فرآیند ساخت و تست خودکار شما بسیار مناسب است. برای دستورالعملهای استفاده از این ابزار، به بخش «تست با خط فرمان جیکلود» مراجعه کنید.
قبل از آزمایش روی دستگاههای واقعی، آزمایش خود را به صورت محلی روی یک شبیهساز اجرا کنید تا مطمئن شوید که مطابق انتظار عمل میکند. برای دستورالعملها به Test locally مراجعه کنید.
مرحله ۳ : مشخص کردن دستگاههای آزمایش
با استفاده از Test Lab ، میتوانید تست خود را روی برنامهتان روی طیف وسیعی از دستگاهها و مدلهای iOS که در یک مرکز داده گوگل میزبانی میشوند، اجرا کنید. برای کسب اطلاعات بیشتر، به دستگاههای موجود مراجعه کنید.
مرحله ۴ : بررسی نتایج آزمون
صرف نظر از اینکه چگونه آزمایشهای خود را شروع میکنید، تمام نتایج آزمایش شما توسط Test Lab مدیریت میشود و میتوانید آنها را به صورت آنلاین مشاهده کنید.
خلاصه نتیجه آزمایش به طور خودکار ذخیره میشود و میتوان آن را در کنسول Firebase مشاهده کرد. این خلاصه شامل مرتبطترین دادهها برای آزمایش شما، از جمله ویدیوهای مربوط به هر مورد آزمایش، اسکرینشاتها، تعداد آزمایشهایی که با موفقیت انجام شدهاند، شکست خوردهاند یا نتایج نامشخصی داشتهاند و موارد دیگر است.
نتایج خام آزمایش شامل گزارشهای آزمایش و جزئیات خرابی برنامه است و به طور خودکار در یک سطل Google Cloud ذخیره میشود. اگر سطلی را مشخص کنید، هزینه ذخیرهسازی بر عهده شماست. اگر سطلی مشخص نکنید، Test Lab یکی را بدون هیچ هزینهای برای شما ایجاد میکند.
برای جزئیات بیشتر، به تجزیه و تحلیل نتایج Firebase Test Lab مراجعه کنید.
پاکسازی دستگاه
گوگل امنیت دادههای برنامه شما را بسیار جدی میگیرد. ما از بهترین شیوههای استاندارد صنعتی برای حذف دادههای برنامه و تنظیم مجدد تنظیمات سیستم برای دستگاههای فیزیکی پس از هر اجرای آزمایشی پیروی میکنیم تا اطمینان حاصل کنیم که آنها برای اجرای آزمایشهای جدید آماده هستند. برای دستگاههایی که میتوانیم با یک تصویر بازیابی سفارشی فلش کنیم، با فلش کردن این دستگاهها بین اجراهای آزمایشی، یک قدم فراتر میرویم.
برای دستگاههای مجازی مورد استفاده توسط Test Lab ، نمونههای دستگاه پس از استفاده حذف میشوند تا در هر اجرای تست از یک نمونه دستگاه مجازی جدید استفاده شود.
اجازه دادن به دستگاههای Test Lab برای دسترسی به سرورهای خصوصی 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) |