این صفحه راهنمایی عیبیابی و پاسخ به سؤالات متداول در مورد اجرای آزمایشها با Firebase Test Lab را ارائه میدهد. مسائل شناخته شده نیز مستند شده است. اگر نمیتوانید چیزی را که به دنبالش هستید پیدا کنید یا به کمک بیشتری نیاز دارید، به کانال #test-lab در Firebase Slack بپیوندید یا با پشتیبانی Firebase تماس بگیرید.
عیب یابی
وقتی دستگاهی با ظرفیت بالا را در کاتالوگ Test Lab انتخاب میکنید، آزمایشها ممکن است سریعتر شروع شوند. وقتی دستگاهی ظرفیت پایینی دارد، آزمایشها ممکن است بیشتر طول بکشد. اگر تعداد تستهای فراخوانی شده بسیار بیشتر از ظرفیت دستگاههای انتخابشده باشد، پایان آزمایشها ممکن است بیشتر طول بکشد.
آزمایشهایی که در هر سطح ظرفیت دستگاه اجرا میشوند به دلیل عوامل زیر ممکن است بیشتر طول بکشد:
- ترافیک، که بر در دسترس بودن دستگاه و سرعت تست تأثیر می گذارد.
- خرابی دستگاه یا زیرساخت، که ممکن است در هر زمانی رخ دهد. برای بررسی اینکه آیا زیرساخت گزارش شده برای Test Lab وجود دارد یا خیر، به داشبورد وضعیت Firebase مراجعه کنید.
برای کسب اطلاعات بیشتر در مورد ظرفیت دستگاه در Test Lab ، به اطلاعات ظرفیت دستگاه برای Android و iOS مراجعه کنید.
نتایج آزمایش غیرقابل قطعی معمولاً به دلیل اجرای آزمایشی لغو شده یا خطاهای زیرساخت رخ می دهد.
خطاهای زیرساخت ناشی از مشکلات داخلی Test Lab ، مانند خطاهای شبکه یا رفتارهای غیرمنتظره دستگاه است. Test Lab به صورت داخلی اجرای آزمایشی را که خطاهای زیرساختی را چندین بار قبل از گزارش یک نتیجه غیرقطعی ایجاد می کند، بازنشسته می کند. با این حال، میتوانید این تلاشهای مجدد را با استفاده از failFast غیرفعال کنید.
برای تعیین علت خطا، مراحل زیر را دنبال کنید:
- قطعی های شناخته شده را در داشبورد وضعیت Firebase بررسی کنید.
آزمایش را در Test Lab دوباره امتحان کنید تا تأیید کنید که تکرارپذیر است.
در صورت وجود، آزمایش را روی دستگاه یا نوع دستگاه دیگری اجرا کنید.
اگر مشکل همچنان ادامه داشت، با تیم Test Lab در کانال #test-lab در Firebase Slack تماس بگیرید.
هنگامی که تعداد خردههایی که مشخص کردهاید از تعداد دستگاههای موجود برای استفاده در Test Lab بیشتر شود، شارد کردن میتواند باعث طولانیتر شدن آزمایشهای شما شود. برای جلوگیری از این وضعیت، سعی کنید به دستگاه دیگری بروید. برای اطلاعات بیشتر در مورد انتخاب یک دستگاه دیگر، رجوع کنیدظرفیت دستگاه
وقتی درخواست آزمایشی ارسال میکنید، ابتدا برنامه شما اعتبارسنجی میشود، مجدداً امضا میشود و غیره در آمادهسازی برای اجرای آزمایشها روی دستگاه. به طور معمول، این فرآیند در کمتر از چند ثانیه کامل می شود، اما می تواند تحت تأثیر عواملی مانند اندازه برنامه شما قرار گیرد.
پس از آماده شدن برنامه، اجرای آزمایشی برنامه ریزی می شود و تا زمانی که دستگاهی برای اجرای آن آماده شود، در یک صف باقی می ماند. تا زمانی که اجرای همه آزمایشها به پایان برسد، وضعیت ماتریس "در انتظار" خواهد بود (صرف نظر از اینکه اجرای آزمایش در صف باشد یا به طور فعال اجرا شود).
پس از اتمام اجرای آزمایش، مصنوعات آزمایشی از دستگاه دانلود، پردازش و در Cloud Storage آپلود میشوند. مدت زمان این مرحله می تواند تحت تاثیر مقدار و اندازه مصنوعات باشد.
سوالات متداول
Firebase Test Lab سهمیه های بدون هزینه ای را برای آزمایش بر روی دستگاه ها و برای استفاده از Cloud API ارائه می دهد. توجه داشته باشید که سهمیه آزمایشی از طرح قیمت گذاری استاندارد Firebase استفاده می کند، در حالی که سهمیه های Cloud API از این استفاده نمی کنند.
سهمیه آزمون
سهمیه های تست بر اساس تعداد دستگاه های مورد استفاده برای اجرای آزمایش ها تعیین می شود. طرح Firebase Spark دارای سهمیه آزمایشی ثابت و بدون هزینه برای کاربران است. برای طرح Blaze، اگر استفاده شما از Google Cloud در طول زمان افزایش یابد، ممکن است سهمیههای شما افزایش یابد. اگر به سهمیه آزمایش خود رسیدید، تا روز بعد صبر کنید یا اگر در حال حاضر در طرح Spark هستید، به پلن Blaze ارتقا دهید. اگر قبلاً در طرح Blaze هستید، می توانید درخواست افزایش سهمیه کنید. برای اطلاعات بیشتر، به تست سهمیه مراجعه کنید.
میتوانید میزان استفاده از سهمیه آزمایشی خود را در کنسول Google Cloud نظارت کنید.
سهمیه Cloud Testing API
Cloud Testing API دارای دو محدودیت سهمیه است: درخواست در روز برای هر پروژه و درخواست در هر 100 ثانیه در هر پروژه. می توانید استفاده خود را در کنسول Google Cloud نظارت کنید.
سهمیه Cloud Tool Results API
Cloud Tool Results API با دو محدودیت سهمیه ارائه می شود: پرس و جو در روز برای هر پروژه و پرس و جو در هر 100 ثانیه در هر پروژه. می توانید استفاده خود را در کنسول Google Cloud نظارت کنید.
برای اطلاعات بیشتر در مورد محدودیت های API به سهمیه های Cloud API برای Test Lab مراجعه کنید. اگر به سهمیه API رسیده اید:
با ویرایش سهمیههای خود مستقیماً در کنسول Google Cloud ، درخواست سهمیههای بالاتر را ارسال کنید (توجه داشته باشید که اکثر محدودیتها به طور پیشفرض روی حداکثر تنظیم شدهاند)، یا
با پر کردن فرم درخواست در کنسول Google Cloud یا با تماس با پشتیبانی Firebase ، سهمیه های API بالاتر را درخواست کنید.
از پشتیبان خود، می توانید با بررسی آدرس IP منبع در برابر محدوده IP ما، تعیین کنید که آیا ترافیک از دستگاه های آزمایشی میزبان Firebase می آید یا خیر.
Test Lab با VPC-SC کار نمیکند، که کپی کردن برنامهها و سایر مصنوعات آزمایشی را بین حافظه داخلی Test Lab و سطلهای نتایج کاربران مسدود میکند.
برای تشخیص رفتار پوسته پوسته شدن در تستهای خود، توصیه میکنیم از آن استفاده کنید-تست-تست-تست-شلیک-تعدادگزینه تکرارهای Deflake مانند اجرای آزمون های معمولی صورتحساب یا در سهمیه روزانه شما محاسبه می شود.
موارد زیر را در نظر داشته باشید:
- کل اجرای آزمایش با تشخیص شکست دوباره اجرا می شود. هیچ پشتیبانی برای امتحان مجدد فقط موارد آزمایش ناموفق وجود ندارد.
- اجرای مجدد Deflake برنامه ریزی شده است که همزمان اجرا شوند، اما تضمینی برای اجرای موازی ندارند، به عنوان مثال، زمانی که ترافیک از تعداد دستگاه های موجود بیشتر باشد.
در حالی که برخی از این موارد در نقشه راه ما قرار دارند، در حال حاضر نمیتوانیم تعهدی برای پشتیبانی از این پلتفرمهای آزمایش و توسعه برنامه ارائه کنیم.
اطلاعات دقیق دستگاه از طریق API در دسترس است و می توان از طریق سرویس گیرنده gcloud با استفاده از دستور describe به آن دسترسی داشت:
gcloud firebase test ios models describe MODEL
Sharding به طور بومی در Test Lab برای iOS پشتیبانی نمیشود. با این حال، میتوانید از کلاینت Flank برای خرد کردن موارد تست iOS استفاده کنید.
این کار با تنظیم کلید و مقادیر OnlyTestIdentifiers
در فایل .xctestrun
. برای جزئیات بیشتر به صفحه man
برای xcodebuild.xctestrun
مراجعه کنید.
مسائل شناخته شده
تست Robo نمیتواند صفحههای ورود به سیستم را که به عملکرد کاربر اضافی فراتر از وارد کردن اعتبارنامهها برای ورود به سیستم، برای مثال تکمیل یک CAPTCHA، نیاز دارند، دور بزند.
تست Robo با برنامههایی که از عناصر UI از چارچوب Android UI استفاده میکنند (از جمله View
، ViewGroup
، و WebView
) بهترین کار را انجام میدهد. اگر از تست Robo برای تمرین برنامههایی که از چارچوبهای رابط کاربری دیگر استفاده میکنند، از جمله برنامههایی که از موتور بازی Unity استفاده میکنند، استفاده میکنید، ممکن است تست بدون کاوش در صفحه اول خارج شود.