Firebase Test Lab به شما امکان میدهد برنامهتان را در طیف وسیعی از دستگاهها و پیکربندیها آزمایش کنید. این راهنمای «شروع به کار» مسیر پیادهسازی را برای شما فراهم میکند تا دنبال کنید، و همچنین با پیشنهادهای Test Lab برای Android آشنا شوید.
برای کسب اطلاعات درباره سهمیهها و طرحهای قیمتگذاری Test Lab، به استفاده، سهمیهها، و قیمتگذاری مراجعه کنید.
مفاهیم کلیدی
وقتی آزمایشی یا مجموعهای از موارد آزمایشی را دربرابر دستگاهها و پیکربندیهایی که انتخاب کردهاید اجرا میکنید، Test Lab آزمایش را بهصورت دستهای دربرابر برنامهتان اجرا میکند، سپس نتایج را بهصورت ماتریس آزمایش نمایش میدهد.
دستگاهها × اجرای آزمایش = ماتریس آزمایش
- دستگاه
- دستگاه فیزیکی یا مجازی (فقط Android) که در آن آزمایش اجرا میکنید، مثل تلفن، رایانه لوحی، یا دستگاه پوشیدنی. دستگاههای موجود در ماتریس آزمایش با مدل دستگاه، نسخه سیستمعامل، جهت صفحه، و محل (که با نام تنظیمات زبان و جغرافیا نیز شناخته میشود) شناسایی میشوند.
- آزمایش، اجرای آزمایش
- آزمایشی (یا مجموعهای از چارچوبهای تست) که باید در دستگاه اجرا شود. میتوانید یک آزمایش برای هر دستگاه اجرا کنید، یا بهصورت اختیاری آزمایش را تکهتکه کنید و موارد آزمایشی آن را در دستگاههای مختلف اجرا کنید.
- ماتریس آزمایش
- شامل وضعیتها و نتایج آزمایش برای اجرای آزمایشهای شما است. اگر هریک از اجراهای آزمایشی در ماتریس ناموفق باشد، کل ماتریس ناموفق خواهد بود.
مرحله ۱: آماده کردن آزمون برای بارگذاری در Test Lab
انواع آزمایش دردسترس
میتوانید آزمایشهای زیر را با Test Lab اجرا کنید. توجه داشته باشید که همه انواع آزمایشها در دستگاههای فیزیکی به ۴۵ دقیقه و در دستگاههای مجازی به ۶۰ دقیقه محدود میشوند. هر استثنای مدیریتنشدهای باعث میشود آزمایش ناموفق باشد.
آزمایش ابزار یا آزمایش واحد ابزاری: آزمایشی که بااستفاده از چارچوبهای Espresso یا UI Automator نوشتهاید. با این آزمایش، میتوانید درباره وضعیت برنامهتان ادعاهای صریحی مطرح کنید تا عملکرد صحیح آن را بااستفاده از AndroidJUnitRunnerAPIs درستیسنجی کنید.
برای دریافت دستورالعملهای مربوط به نحوه آماده کردن آزمایشتان برای اجرا در Test Lab، به اجرای آزمون ابزار دقیق مراجعه کنید.
برای دستورالعملهای مربوط به نحوه ساختن آزمایش ابزار دقیق، به اسناد توسعهدهندگان Android مراجعه کنید.
آزمایش روبو: آزمایشی خودکارسازیشده که رابط کاربری برنامهتان را تجزیهوتحلیل میکند و سپس با شبیهسازی فعالیتهای کاربر، آن را بهروش سیستماتیک کاوش میکند، بدون اینکه نیاز باشد کدی بنویسید. برای کسب اطلاعات بیشتر، به درباره آزمایشهای Robo مراجعه کنید.
آزمایش «حلقه بازی»: آزمایشی که از «حالت نمایشی» برای شبیهسازی کنشهای بازیکن در برنامههای بازی استفاده میکند. این روشی سریع و مقیاسپذیر برای تأیید عملکرد خوب بازیتان برای کاربران است. وقتی انتخاب میکنید که آزمایش حلقه بازی را اجرا کنید، میتوانید:
آزمایشهای بومی موتور بازی خود را بنویسید
از نوشتن کد یکسان برای رابطهای کاربری مختلف یا چارچوبهای آزمایش خودداری کنید
درصورت تمایل، چندین حلقه ایجاد کنید تا در یک اجرای آزمایش اجرا شوند (برای کسب اطلاعات بیشتر، به درباره آزمایشهای حلقه بازی مراجعه کنید). همچنین میتوانید بااستفاده از برچسبها، حلقهها را سازماندهی کنید تا بتوانید آنها را پیگیری کنید و حلقههای خاصی را دوباره اجرا کنید.
برای دریافت دستورالعملهای اجرای این آزمایش با Test Lab، اجرای آزمایش حلقه بازی را ببینید.
ابزارهایی برای اجرای آزمایش
میتوانید ابزارهای زیر را برای اجرای آزمایش انتخاب کنید:
توصیهشده برای کاربران جدید: کنسول Firebase به شما امکان میدهد برنامهای را بارگذاری کنید و آزمایش را از مرورگر وب خود شروع کنید. برای دستورالعملهای اجرای آزمایش بااستفاده از این ابزار، آزمایش با کنسول Firebase را ببینید.
ادغام «استودیو Android» به شما امکان میدهد برنامهتان را بدون خروج از محیط توسعه آزمایش کنید. برای دریافت دستورالعملهای اجرای آزمایش بااستفاده از این ابزار، به آزمایش با «استودیو Android» مراجعه کنید.
میانای خط فرمان gcloud به شما امکان میدهد آزمایشها را بهصورت تعاملی از خط فرمان اجرا کنید و همچنین برای نوشتن کد بهعنوان بخشی از فرایند ساخت و آزمایش خودکارسازیشده شما مناسب است. برای دریافت دستورالعملهای مربوط به اجرای آزمایشها بااستفاده از این ابزار، به آزمایش با gcloud CLI مراجعه کنید.
همچنین میتوانید برنامه خود را بهطور رایگان با Test Lab آزمایش کنید، وقتی فایلهای APK برنامه خود را بااستفاده از کانال آلفا یا بتا در «فروشگاه Play» بارگذاری و منتشر میکنید. برای اطلاعات بیشتر، به استفاده از گزارشهای پیشاز راهاندازی برای شناسایی مشکلات و آزمایشهای روبو مراجعه کنید.
مرحله ۲: انتخاب دستگاه آزمایش
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 (برداشتهشده در ۰۲-۲۰۲۲) 216.239.44.24/29 (برداشتهشده در ۰۲-۲۰۲۲) |