Firebase Test Lab is deprecated and will be fully shut down on September 30, 2027. To
maintain your testing workflows, you can migrate to the Developer Device Platform on Google
Cloud. See the
Developer Device Platform Migration Guide
and FAQ for more
details.
Google برای ترجمه محتوا به زبان ترجیحی شما از فناوری هوشواره استفاده میکند. ترجمههای هوشوارهای ممکن است اشتباه داشته باشند.
عیبیابی و پرسشگان «آزمایشگاه»
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
این صفحه راهنماییهای عیبیابی و پاسخ به پرسشهای متداول درباره اجرای آزمایشها با Firebase Test Lab را ارائه میدهد. مشکلات شناختهشده نیز
مستند شدهاند. اگر نمیتوانید آنچه را که بهدنبالش هستید پیدا کنید یا به راهنمایی بیشتری نیاز دارید، به کانال #test-lab در Firebase Slack بپیوندید یا با پشتیبانی Firebase تماس بگیرید.
عیبیابی
چرا اجرای آزمایش من اینقدر طول میکشد؟
وقتی دستگاهی با سطح ظرفیت بالا در کاتالوگ Test Lab انتخاب میکنید، ممکن است آزمایشها سریعتر شروع شوند. وقتی دستگاه ظرفیت کمی داشته باشد، ممکن است اجرای آزمایشها بیشتر طول بکشد. اگر تعداد آزمایشهای فراخواندهشده بسیار بیشتر از ظرفیت دستگاههای انتخابی باشد، ممکن است تکمیل آزمایشها بیشتر طول بکشد.
آزمایشهایی که در هر سطح ظرفیت دستگاه اجرا میشوند ممکن است بهدلیل عوامل زیر بیشتر طول بکشند:
ترافیک، که بر دردسترس بودن دستگاه و سرعت آزمایش تأثیر میگذارد.
خرابی دستگاه یا زیرساخت که ممکن است در هر زمانی اتفاق بیفتد. برای بررسی اینکه آیا زیرساخت گزارششدهای برای Test Lab وجود دارد یا نه، به داشبورد وضعیت Firebase مراجعه کنید.
برای کسب اطلاعات بیشتر درباره ظرفیت دستگاه در Test Lab، اطلاعات ظرفیت دستگاه را برای Android و iOS ببینید.
چرا نتایج آزمایش غیرقطعی دریافت میکنم؟
نتایج آزمون غیرقطعی معمولاً بهدلیل لغو اجرای آزمون یا خطاهای زیرساختی رخ میدهد.
خطاهای زیرساخت بهدلیل مشکلات داخلی Test Lab، مانند خطاهای شبکه یا رفتارهای غیرمنتظره دستگاه، ایجاد میشوند. Test Lab بهطور داخلی اجرای آزمایشهایی را که چندین بار خطای زیرساخت تولید میکنند، قبلاز گزارش نتیجه غیرقطعی، بازامتحان میکند؛ بااینحال، میتوانید این بازامتحانها را بااستفاده از failFast غیرفعال کنید.
آزمایش را در Test Lab تکرار کنید تا مطمئن شوید که قابلتکرار است.
درصورت امکان، آزمایش را در دستگاه یا نوع دستگاه دیگری اجرا کنید.
اگر مشکل برطرف نشد، با تیم Test Lab در
کانال#test-lab در
Firebase Slack تماس بگیرید.
چرا تکهتکه کردن باعث شد آزمایشهایم طولانیتر اجرا شود؟
اگر تعداد بخشهایی که مشخص کردهاید از تعداد دستگاههای دردسترس برای استفاده در Test Lab بیشتر باشد، بخشبندی میتواند باعث شود آزمایشهایتان طولانیتر اجرا شوند. برای
اجتناب از این وضعیت، به دستگاه دیگری بروید. برای اطلاعات بیشتر
درباره انتخاب دستگاهی دیگر،
ظرفیت دستگاه.
چرا شروع آزمایش من
طول میکشد؟
وقتی درخواست آزمایشی ارسال میکنید، برنامهتان ابتدا اعتبارسنجی، دوباره امضا، و غیره میشود تا برای اجرای آزمایشها در دستگاه آماده شود. معمولاً این فرایند در کمتر از چند ثانیه تکمیل میشود، اما میتواند تحتتأثیر عواملی مثل اندازه برنامهتان قرار گیرد.
پساز آماده شدن برنامهتان، اجرای آزمایشی زمانبندی میشود و تا زمانی که دستگاهی برای اجرای آن آماده شود، در صف باقی میماند. تا زمانی که اجرای همه آزمایشها بهپایان نرسد،
وضعیت ماتریس «درحال انتظار» خواهد بود (صرفنظر از اینکه اجرای آزمایشها
در صف باشد یا فعالانه درحال اجرا باشد).
چرا تکمیل شدن آزمایشی من
طول میکشد؟
پساز اتمام اجرای آزمایشی، مصنوعات آزمایشی از دستگاه بارگیری، پردازش، و در Cloud Storage بارگذاری میشوند. مدت زمان این مرحله میتواند
تحت تأثیر مقدار و اندازه مصنوعات قرار گیرد.
عیبیابی مختص Android
برنامه دادهها را برنمیگرداند و نمیتواند نماگرفتها را پیدا کند
مصنوعات اجرای آزمایشی (مانند نماگرفتها و فایلهای گزارش) در
Google Cloud Storage ذخیره میشوند و مستقیماً در کنسول Firebase ارائه میشوند. اگر
اجرای آزمایشی شما در ۹۰ روز گذشته انجام شده است، بررسی کنید که نقشهای سطح پروژه (مالک پروژه، ویرایشگر پروژه، یا نظارهگر پروژه) را اختصاص داده باشید.
همچنین، لطفاً مطمئن شوید که «ثبت گزارش ممیزی ابری» برای پروژه یا سازمانتان فعال نباشد.
اگر اجرا بیشاز ۹۰ روز پیش انجام شده باشد، به احتمال زیاد مصنوعات آزمایشی بهطور خودکار حذف شدهاند. با کلیک کردن روی برگه نتایج آزمایش در داشبورد Test Lab میتوانید پیکربندی دسته نتایج را بررسی کنید. سطل نتیجه پیشفرض
برای نگهداری اشیا بهمدت ۹۰ روز پیکربندی شده است.
برای نگهداری طولانیتر مصنوعات آزمایشی، فرمان
gcloud firebase test android run را با پرچم --results-bucket اجرا کنید و
نام دسته نتیجه را وارد کنید. برای اطلاعات بیشتر، به
gcloud firebase test android run اسناد مرجع مراجعه کنید.
چرا نتایج چارچوب تست ابزارگری را بهصورت ناقص یا با موارد جاافتاده دریافت میکنم؟
وقتی آزمایشهای ابزار دقیق را اجرا میکنید، ممکن است خطاهای آزمایشی را ببینید که نشاندهنده نتایج جزئی هستند و حاوی پیامهایی مانند Test run failed to complete. Expected
x tests, received y هستند (که در آن y کمتر از x است).
این خطا به این معنی است که Test Lab نتوانسته است logcat را برای نشانگرهای شروع یا پایان چارچوب تست که معمولاً توسط AndroidJUnitRunner تولید میشوند، تجزیه کند.
موارد زیر از دلایل رایج این مشکل است:
شرح مشکل
وضوح احتمالی
چارچوب تست بهدلیل اتمام مهلت اجرا نشد. اگر مدت کل آزمایشها بیشتر از زمان استراحتی باشد که مشخص کردهاید یا بیشتر از حداکثر زمان استراحت باشد، Test Lab بقیه چارچوبهای تست را لغو میکند.
زمان وقفه ماتریس را افزایش دهید تا مطمئن شوید همه آزمایشها میتوانند تکمیل شوند.
اگر قبلاً این کار را نکردهاید، آزمایشها را قطعهبندی کنید تا هر قطعه زیرمجموعهای از آزمایشها را اجرا کند و در مدت زمان کوتاهتری تکمیل شود.
اگر ازقبل قطعهبندی را فعال کردهاید، تعداد قطعهها را افزایش دهید.
چارچوب تست تکمیل نشد زیرا زودتر از موعد خارج شد یا گیر کرد.
ممکن است چارچوب تست بهدلیل استثنای گیرنیفتاده یا خطای ادعا زودتر از موعد خارج شود. چارچوبهای تست ممکن است در حلقه بینهایت گیر کنند یا نتوانند ادامه دهند، برای مثال، اگر برنامه نمای صحیح را نشان ندهد و چارچوب تست نتواند کنش را در واسط کاربری انجام دهد.
ویدیو و logcat را بررسی کنید تا ببینید آزمایش کجا متوقف شده است.
یک اجراکننده آزمون سفارشی (ازجمله AndroidJUnitRunner توسعهیافته) بهطور غیرمنتظرهای ازکار افتاد یا نشانگرهای شروع یا پایان چارچوب تست غیرمنتظرهای را در logcat نوشت.
کد اجراکننده آزمون را بررسی کنید.
گزارشهای بیشازحدی در logcat نوشته شده است که میانگیر را تحتالشعاع قرار داده است
یا باعث ازکار افتادن فرایند logcat شده است.
نوشتنها را به logcat کاهش دهید.
برنامه تحت آزمایش ازکار افتاد.
برنامهتان را اشکالزدایی کنید.
پرسشگان
سهمیههای رایگان برای Test Lab چیست؟ اگر تمام شد چه کار کنم؟
Firebase Test Lab سهمیههای بدون هزینهای برای آزمایش روی دستگاهها و استفاده از
Cloud API ارائه میدهد. توجه داشته باشید که سهمیه آزمایش از طرح قیمتگذاری استاندارد Firebase استفاده میکند،
درحالیکه سهمیههای Cloud API اینگونه نیستند.
سهمیه آزمایش
سهمیههای آزمایش براساس تعداد دستگاههای مورداستفاده برای اجرای آزمایشها تعیین میشود.
طرح Firebase Spark سهمیه آزمایش ثابتی دارد که برای کاربران رایگان است. برای
طرح Blaze، اگر استفاده شما از Google Cloud
درطول زمان افزایش یابد، ممکن است سهمیههایتان افزایش یابد. اگر به سهمیه آزمایشی خود رسیدید، تا روز بعد صبر کنید یا اگر درحالحاضر در طرح Spark هستید، به طرح Blaze ارتقا دهید.
اگر ازقبل در طرح Blaze هستید، میتوانید درخواست افزایش سهمیه کنید.
برای اطلاعات بیشتر، به
سهمیه آزمایش مراجعه کنید.
میتوانید مصرف سهمیه آزمایشیتان را در کنسول Google Cloud پایش کنید.
سهمیه Cloud Testing API
Cloud Testing API دو حد سهمیه دارد: درخواست در روز برای هر پروژه، و درخواست در هر ۱۰۰ ثانیه برای هر پروژه. میتوانید مصرفتان را در
کنسول Google Cloud
پایش کنید.
سهمیه Cloud Tool Results API
Cloud Tool Results API با دو حد سهمیه ارائه میشود: پُرسمان در روز برای هر پروژه، و پُرسمان در هر ۱۰۰ ثانیه برای هر پروژه. میتوانید مصرفتان را در
کنسول Google Cloud
پایش کنید.
با ویرایش سهمیههایتان مستقیماً در کنسول Google Cloud، درخواستی برای سهمیههای بالاتر ارسال کنید (توجه داشته باشید که اکثر محدودیتها بهطور پیشفرض روی حداکثر تنظیم شدهاند)، یا
با تکمیل فرم درخواست در کنسول Google Cloud یا تماس با پشتیبانی Firebase، سهمیه API بالاتری درخواست کنید.
چگونه میتوانم بفهمم که ترافیک ورودی به باطن من از Test Lab میآید؟
ازطریق پسزمینه خودتان، میتوانید با بررسی نشانی IP منبع دربرابر
محدودههای IP ما، تعیین کنید که آیا ترافیک از دستگاههای آزمایشی میزبانیشده در Firebase میآید یا نه.
آیا Test Lab با
VPC-SC کار میکند؟
Test Lab با VPC-SC کار نمیکند، که کپی کردن برنامهها و سایر مصنوعات آزمایشی را بین فضای ذخیرهسازی داخلی Test Lab و سطلهای نتایج کاربران مسدود میکند.
چگونه آزمایشهای ناپایدار را در
Test Lab شناسایی کنم؟
برای شناسایی رفتار ناپایدار در آزمایشهایتان، توصیه میکنیم از گزینه
--num-flaky-test-attempts
استفاده کنید. اجرای مجدد Deflake مانند اجرای آزمایشی عادی صورتحساب میشود یا در سهمیه روزانه شما محاسبه میشود.
موارد زیر را به یاد داشته باشید:
وقتی خرابی شناسایی میشود، کل اجرای آزمایشی دوباره اجرا میشود. امکان امتحان مجدد فقط برای چارچوبهای تست ناموفق وجود ندارد.
اجراهای مجدد برای رفع ناپایداری برای اجرا در یک زمان برنامهریزی شدهاند، اما اجرای موازی آنها تضمین نمیشود، مثلاً وقتی ترافیک از تعداد دستگاههای دردسترس بیشتر باشد.
پرسشگان مختص iOS
آیا Test Lab از
Appium، Flutter/FlutterDriver، ReactNative/Jest، یا Cucumber پشتیبانی میکند؟
اگرچه برخیاز این موارد در نقشه راه ما قرار دارند، درحالحاضر نمیتوانیم
تعهدی برای پشتیبانی از این پلاتفرمهای آزمایش و توسعه برنامه ارائه دهیم.
جزئیات دستگاه، مثل وضوح و غیره را کجا میتوانم پیدا کنم؟
اطلاعات دقیق دستگاه ازطریق API دردسترس است و میتوان از کلاینت gcloud بااستفاده از فرمان describe به آن دسترسی پیدا کرد:
gcloud firebase test ios models describe MODEL
آیا میتوانم از قطعهبندی با آزمایشهای iOS استفاده کنم؟
تکهبندی بهطور بومی در Test Lab برای iOS پشتیبانی نمیشود. بااینحال، میتوانید
از کارخواه Flank برای قطعهبندی چارچوبهای تست iOS استفاده کنید.
این کار با تنظیم کلید و مقادیر OnlyTestIdentifiers در فایل .xctestrun انجام میشود.
برای جزئیات بیشتر، به صفحه man برای xcodebuild.xctestrun مراجعه کنید.
چرا ویدیوهای آزمایش iOS من در نتایج وجود ندارد؟
برای iOS 18 یا نسخههای جدیدتر، نمیتوانیم از ویدیوها در نتایج پشتیبانی کنیم.
پرسشگان مختص Android
آیا Test Lab از دستگاههای پوشیدنی پشتیبانی میکند؟
بله! Test Lab از Google Pixel Watch پشتیبانی میکند. اکنون میتوانید آزمایشها را در
برنامه Wear مستقل خود در Google Pixel Watch اجرا کنید. برای کسب اطلاعات بیشتر درباره دستگاههای
Test Lab، به آزمایش در
دستگاههای دردسترس مراجعه کنید.
آیا Test Lab از جدیدترین دستگاههای Google پشتیبانی میکند؟
بله! Test Lab از Google Pixel Tablet و Google Pixel Fold پشتیبانی میکند. میتوانید
آزمایشهایتان را در دستگاههای فیزیکی مستقل اجرا کنید.
برای کسب اطلاعات بیشتر درباره دستگاههای
Test Lab، به آزمایش در
دستگاههای دردسترس مراجعه کنید.
چگونه میتوانم آزمایش درحال اجرا را در
Test Lab شناسایی کنم؟
اگر برنامهتان را در Firebase آزمایش میکنید یا آزمایشهایی را برای
گزارش پیشاز راهاندازی
در «کنسول Play» اجرا میکنید، میتوانید با بررسی ویژگی سیستم
firebase.test.lab در فایل MainActivity، تشخیص دهید که آیا آزمایشی در دستگاهی با میزبانی Firebase
درحال اجرا است یا نه. سپس میتوانید دستورات بیشتری را براساس مقدار منطقی برای testLabSetting اجرا کنید. برای اطلاعات بیشتر،
رفتارهای آزمایشی اصلاحشده را ببینید.
آیا Test Lab
از Appium، Flutter/FlutterDriver، ReactNative/Jest، یا Cucumber پشتیبانی میکند؟
اگرچه برخیاز این موارد در نقشه راه ما قرار دارند، درحالحاضر نمیتوانیم
تعهدی برای پشتیبانی از این پلاتفرمهای آزمایش و توسعه برنامه ارائه دهیم. بااینحال،
اگر برنامهتان را با چارچوبی ساختهاید که از Espresso پشتیبانی میکند (برای مثال،
Flutter)، میتوانید بااستفاده از
Espresso
آزمایش ابزارسازی بنویسید و سپس آزمایش را در Test Lab اجرا کنید.
آیا Test Lab
از آزمایش برنامههای مبهمسازیشده، مثلاً با ProGuard یا R8، پشتیبانی میکند؟
Test Lab بهطور صریح از مبهمسازی یا رفع ابهام پشتیبانی نمیکند. درحالیکه
برنامه احتمالاً اجرا خواهد شد، هرگونه دادههای برنامه مبهم، مانند ردیابی پشته،
بهصورت مبهم در گزارشها نشان داده خواهد شد.
آیا میتوانم از دستگاه تاشو خود در حالتها و وضعیتهای مختلف تاشو هنگام آزمایش در Test Lab استفاده کنم؟
دستگاههای تاشو میتوانند در حالتهای تاشده مختلفی باشند، مانند FLAT (کاملاً باز) یا HALF_OPENED (بین کاملاً باز و کاملاً بسته).
ازسویدیگر، حالتها شامل جهتیابی خاص دستگاه و وضعیت تاشو است. برای مثال، حالت رومیزی که وضعیت HALF_OPENED در جهت افقی است، یا حالت کتاب که وضعیت HALF_OPENED در جهت عمودی است.
اگر برنامه نداشته باشم، میتوانم Test Lab را امتحان کنم؟
برخلاف دیگر محصولات Firebase، برای استفاده از Test Lab نیازی به افزودن کیت توسعه نرمافزار Firebase ندارید. اگر ازقبل برنامهای ندارید، میتوانید
یک APK را بهصورت آنلاین بارگیری کنید یا یک برنامه و یک APK آزمایشی از یکی از
نمونهها در مخزن AndroidX GitHub بسازید.
توجه داشته باشید که برای اجرای آزمایش Robo فقط به فایل APK برنامهتان نیاز دارید، درحالیکه آزمایش ابزار دقیق هم به برنامه و هم به APK آزمایشی که از کد منبع ساخته شده است نیاز دارد. برای اطلاعات بیشتر،
درباره آزمایشهای ابزاردار بخوانید.
کدام دستگاهها برای آزمایش تفاوت نماگرفت بهترین هستند؟
آزمایش تفاوت نماگرفت جایی است که ادعاهای آزمایش براساس مقایسه تصاویر صفحه بهدستآمده درحین اجرای آزمایش با تصاویر طلایی نشاندهنده رفتار موردانتظار است. این آزمایشها ممکن است در برخیاز انواع دستگاهها شکنندهتر از بقیه باشند. توصیه میکنیم برای این نوع آزمایشها، دستگاههای شبیهساز Arm (*.arm) را هدفیابی کنید. دستگاههای شبیهساز Arm از
تصاویری استفاده میکنند که بسیار شبیه یا یکسان با شبیهسازهای «عمومی» Android Studio هستند.
همچنین توصیه میکنیم کتابخانههای آزمایشی را بررسی کنید که میتوانند به
مقاومتر کردن آزمایشهای نماگرفت در حضور تغییرات موردانتظار کمک کنند.
آیا Test Lab دستگاههای مجازی را بهروز میکند؟
بله! دستگاههای مجازی با ایجاد تغییرات زیر بهروز میشوند:
بهروزرسانی تصاویر موجود
منسوخ شدن سطوح API قدیمیتر
سطوح جدید میانای برنامهسازی کاربردی Android اضافه شده است
چگونه گزارشهای پوشش را فعال کنم؟
برای فعال کردن گزارشهای پوشش، coverage=true را به
فیلد environmentVariables اضافه کنید.
اگر از «هماهنگکننده آزمایش Android» استفاده میکنید، باید دایرکتوریای برای
ذخیره نتایج پوشش ارائه دهید:
جزئیات دستگاه، مثل وضوح، ABI پشتیبانیشده، و غیره را کجا میتوانم پیدا کنم؟
اطلاعات دقیق دستگاه ازطریق API دردسترس است و میتوان از کلاینت gcloud بااستفاده از فرمان describe به آن دسترسی پیدا کرد:
gcloud firebase test android models describe MODEL
چگونه بدون تلفن به سیستم برنامه Wear وارد شوم؟
اگر برنامهتان از «ورود به سیستم با Google» پشتیبانی میکند، این ویژگی باید بهطور خودکار با حساب آزمایشی کار کند. درغیراینصورت، اگر برنامهتان معمولاً برای ورود به سیستم به تلفن نیاز دارد، میتوانید تنوع ساختی ایجاد کنید که از ورود به سیستم رد شود و از یک توکن جاسازیشده در ساخت آزمایشی شما استفاده کند، یا از فایلهای روی دیسک که معمولاً بااستفاده از --other-files option ارسال میشوند بخواند. برای کسب اطلاعات بیشتر، ورود به سیستم سفارشی و ورودی نوشتاری با آزمایشهای Robo را ببینید.
مشکلات شناخته شده
گذرتصویرهای ورود به سیستم
آزمایش Robo نمیتواند از صفحههای ورود به سیستم که به کنش کاربر اضافی فراتر از وارد کردن اعتبارنامه برای ورود به سیستم نیاز دارند، برای مثال، تکمیل کردن CAPTCHA، عبور کند.
مشکلات شناختهشده مختص iOS
ورود خودکار به سیستم
ورود خودکار به سیستم با حساب Google در آزمایشهای Robo برای iOS+ (نسخه بتا) پشتیبانی نمیشود.
مشکلات شناختهشده مختص Android
پشتیبانی از چارچوب میانای کاربر
آزمایش Robo با برنامههایی که از عناصر میانای کاربر از چارچوب میانای کاربر Android (شامل اشیاء View، ViewGroup، و WebView) استفاده میکنند بهترین عملکرد را دارد. اگر از آزمایش Robo برای تمرین دادن برنامههایی استفاده میکنید که از چارچوبهای واسط کاربر دیگر استفاده میکنند، ازجمله برنامههایی که از موتور بازی Unity استفاده میکنند، ممکن است آزمایش بدون کاوش فراتر از صفحه اول خارج شود.
تاریخ آخرین بهروزرسانی 2026-10-18 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2026-10-18 بهوقت ساعت هماهنگ جهانی."],[],[]]