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 APIs ارائه میدهد. توجه داشته باشید که سهمیه آزمایش از طرح قیمتگذاری استاندارد Firebase استفاده میکند،
درحالیکه سهمیههای Cloud API از آن استفاده نمیکنند.
آزمایش سهمیه
سهمیههای آزمایش براساس تعداد دستگاههای مورداستفاده برای اجرای آزمایشها تعیین میشود.
طرح Firebase Spark سهمیه آزمایشی ثابتی دارد که کاربران بدون هزینه میتوانند از آن استفاده کنند. برای طرح Blaze، اگر استفاده شما از Google Cloud درطول زمان افزایش یابد، ممکن است سهمیههایتان افزایش یابد. اگر به سهمیه آزمایش خود رسیدید، تا روز بعد صبر کنید یا اگر درحالحاضر از طرح Spark استفاده میکنید، به طرح Blaze ارتقا دهید.
اگر ازقبل در طرح Blaze هستید، میتوانید درخواست افزایش سهمیه کنید.
برای اطلاعات بیشتر، به
سهمیه آزمایش مراجعه کنید.
میتوانید مصرف سهمیه آزمایش خود را در کنسول Google Cloud پایش کنید.
سهمیه Cloud Testing API
Cloud Testing API دو حد سهمیه دارد: درخواست در روز برای هر پروژه، و درخواست در هر ۱۰۰ ثانیه برای هر پروژه. میتوانید استفادهتان را در
Google Cloud console پایش کنید.
سهمیه Cloud Tool Results API
Cloud Tool Results API دو حد سهمیه دارد: پُرسمان در روز برای هر پروژه، و پُرسمان در هر ۱۰۰ ثانیه برای هر پروژه. میتوانید استفادهتان را در
Google Cloud console پایش کنید.
با ویرایش سهمیههایتان
مستقیماً در کنسول 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 همانند اجراهای آزمایشی عادی صورتحساب میشوند یا در سهمیه روزانه شما محاسبه میشوند.
موارد زیر را به یاد داشته باشید:
وقتی خطایی تشخیص داده میشود، کل اجرای آزمایش دوباره اجرا میشود. برای امتحان مجدد فقط موارد آزمایشی ناموفق،
پشتیبانی وجود ندارد.
اجراهای مجدد 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 بسازید.
توجه داشته باشید که برای اجرای «آزمایش روبو» فقط به فایل APK برنامه نیاز دارید، درحالیکه برای آزمایش ابزار دقیق به برنامه و فایل APK آزمایشی که از کد منبع ساخته شدهاند نیاز دارید. برای کسب اطلاعات بیشتر،
درباره آزمایشهای ابزاری بخوانید.
بهترین دستگاهها برای
آزمایش تفاوتهای نماگرفت کداماند؟
آزمایش تفاوت نمای صفحه جایی است که ادعاهای آزمایش براساس مقایسه تصاویر صفحه بهدستآمده درحین اجرای آزمایش با تصاویر طلایی که نشاندهنده رفتار موردانتظار هستند، انجام میشود. این آزمایشها ممکن است در برخیاز انواع دستگاهها نسبتبه بقیه آسیبپذیرتر باشند. توصیه میکنیم برای این نوع آزمایشها، دستگاههای شبیهساز
Arm (*.arm) را هدفیابی کنید. دستگاههای شبیهساز Arm از
تصاویری استفاده میکنند که بسیار شبیه یا یکسان با شبیهسازهای «عمومی» «استودیو Android» هستند.
همچنین توصیه میکنیم کتابخانههای آزمایشی را که میتوانند به
قدرتمندتر کردن آزمایشهای نماگرفت در حضور تغییرات موردانتظار کمک کنند بررسی کنید.
آیا Test Lab دستگاههای مجازی را بهروز میکند؟
بله! دستگاههای مجازی وقتی بهروزرسانی میشوند که تغییرات زیر انجام شود:
بهروزرسانی تصاویر موجود
منسوخ شدن سطوح قدیمیتر میانای برنامهسازی کاربردی
سطوح جدید Android API اضافه میشود
چگونه گزارشهای پوشش را فعال کنم؟
برای فعال کردن گزارشهای پوشش، coverage=true را به
فیلد environmentVariables اضافه کنید.
اگر از «هماهنگکننده آزمایش Android» استفاده میکنید، باید دایرکتوریای برای ذخیره نتایج پوشش ارائه دهید:
کجا میتوانم جزئیات دستگاه، مثل وضوح، ABI پشتیبانیشده، و غیره را پیدا کنم؟
اطلاعات دقیق دستگاه ازطریق API دردسترس است و بااستفاده از
مشتری gcloud و
فرمان describe میتوان به آن دسترسی پیدا کرد:
gcloud firebase test android models describe MODEL
چگونه بدون تلفن به سیستم برنامه Wear وارد شوم؟
اگر برنامه شما از «ورود به سیستم با Google» پشتیبانی میکند، این ویژگی باید بهطور خودکار با حساب آزمایشی کار کند. درغیراینصورت، اگر برنامه شما معمولاً برای ورود به سیستم به تلفن نیاز دارد، میتوانید گونه ساختمانی ایجاد کنید که از ورود به سیستم صرفنظر میکند و از کد تأییدی که در ساختار آزمایشی شما جاسازی شده است استفاده میکند، یا از فایلهای روی دیسک که معمولاً بااستفاده از --other-files option ارسال میشوند، میخواند. برای کسب اطلاعات بیشتر، ورود به سیستم سفارشی و ورودی نوشتار با آزمونهای Robo را ببینید.
مشکلات شناخته شده
گذرتصویرهای ورود به سیستم
آزمایش روبو نمیتواند از صفحههای ورود به سیستمی که به کنش کاربر اضافی فراتر از وارد کردن اعتبارنامه برای ورود به سیستم نیاز دارند، برای مثال، تکمیل کردن «گذرعکس»، عبور کند.
مشکلات شناختهشده مختص iOS
ورود خودکار به سیستم
ورود خودکار به سیستم با حساب Google در
آزمایشهای Robo برای iOS+ (نسخه بتا) پشتیبانی نمیشود.
مشکلات شناختهشده مختص Android
پشتیبانی چارچوب میانای کاربر
آزمایش روباتیک با برنامههایی که از عناصر واسط کاربر از چارچوب واسط کاربر Android استفاده میکنند (ازجمله View، ViewGroup، و WebView
اشیا) بهترین عملکرد را دارد. اگر از «آزمایش Robo» برای تمرین دادن برنامههایی استفاده میکنید که از چارچوبهای دیگر واسط کاربر استفاده میکنند، ازجمله برنامههایی که از موتور بازی Unity استفاده میکنند، ممکن است آزمایش بدون کاوش فراتر از صفحه اول از برنامه خارج شود.
تاریخ آخرین بهروزرسانی 2026-10-11 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-11 بهوقت ساعت هماهنگ جهانی."],[],[]]