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