استكشاف الأخطاء وإصلاحها في Test Lab & الأسئلة الشائعة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تقدّم هذه الصفحة مساعدة في تحديد المشاكل وحلّها وإجابات عن الأسئلة الشائعة حول إجراء الاختبارات باستخدام 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. يمكن أن تتأثر مدة هذه الخطوة بكمية العناصر وحجمها.
الأسئلة الشائعة
ما هي الحصص النسبية بدون تكلفة
لـ Test Lab؟ ماذا أفعل إذا نفدت المساحة؟
لا تفرض Firebase Test Lab أي تكلفة على الحصص المخصّصة للاختبار على الأجهزة واستخدام واجهات Cloud API. يُرجى العِلم أنّ حصة الاختبار تستخدم خطة الأسعار العادية في Firebase،
بينما لا تستخدم حصص Cloud API خطة الأسعار العادية.
حصة الاختبار
يتم تحديد حصص الاختبارات حسب عدد الأجهزة المستخدَمة لإجراء الاختبارات.
تتضمّن "خطة Spark" من Firebase حصة اختبار ثابتة بدون أي تكلفة على المستخدمين. بالنسبة إلى خطة Blaze، قد تزيد حصصك إذا زاد استخدامك لخدمة Google Cloud بمرور الوقت. إذا بلغت حصة الاختبار، عليك الانتظار حتى اليوم التالي أو الترقية إلى خطة Blaze إذا كنت تستخدم خطة Spark حاليًا.
إذا كنت مشتركًا في خطة Blaze، يمكنك طلب زيادة الحصة.
لمزيد من المعلومات، يُرجى الاطّلاع على
حصة الاختبار.
تتضمّن واجهة برمجة التطبيقات Cloud Testing API حدّين للحصة: الطلبات في اليوم لكل مشروع، والطلبات كل 100 ثانية لكل مشروع. يمكنك مراقبة استخدامك في وحدة تحكّم Google Cloud.
حصة Cloud Tool Results API
تتضمّن واجهة برمجة التطبيقات Cloud Tool Results API حدّين للحصة: عدد طلبات البحث في اليوم لكل مشروع، وعدد طلبات البحث كل 100 ثانية لكل مشروع. يمكنك مراقبة استخدامك في وحدة تحكّم Google Cloud.
يُرجى الاطّلاع على حصص Cloud API في Test Lab
للحصول على مزيد من المعلومات حول حدود واجهة برمجة التطبيقات. في حال بلوغ حصة واجهة برمجة التطبيقات:
يمكنك إرسال طلب للحصول على حصص أعلى من خلال
تعديل حصصك
مباشرةً في وحدة تحكّم Google Cloud (يُرجى العِلم أنّ معظم الحدود يتم ضبطها على
الحدّ الأقصى تلقائيًا)، أو
يمكنك طلب حصص أعلى لواجهة برمجة التطبيقات من خلال ملء نموذج طلب في
Google Cloud وحدة التحكّم أو من خلال التواصل مع
فريق دعم Firebase.
كيف يمكنني معرفة ما إذا كانت الزيارات التي تصل إلى الخلفية تأتي من Test Lab؟
من الخلفية، يمكنك تحديد ما إذا كانت الزيارات واردة من أجهزة اختبار مستضافة على Firebase من خلال التحقّق من عنوان IP المصدر ومقارنته بنطاقات IP.
هل تعمل Test Lab مع
VPC-SC؟
لا يتوافق Test Lab مع خدمة VPC-SC التي تحظر نسخ التطبيقات وغيرها من عناصر الاختبار بين وحدة التخزين الداخلية في Test Lab وحِزم نتائج المستخدمين.
كيف يمكنني رصد الاختبارات غير الموثوقة في
Test Lab؟
لرصد السلوك غير المستقر في اختباراتك، ننصحك باستخدام الخيار
--num-flaky-test-attempts
. تتم محاسبة عمليات إعادة تشغيل الاختبارات غير المستقرة أو يتم احتسابها ضمن حصتك اليومية مثل عمليات تنفيذ الاختبارات العادية.
يرجى الإحاطة علمًا بالتالي:
يتم تنفيذ الاختبار بأكمله مرة أخرى عند رصد حدوث خطأ. لا تتوفّر إمكانية إعادة محاولة تنفيذ حالات الاختبار التي تعذّر تنفيذها فقط.
يتم تحديد موعد تنفيذ عمليات إعادة المحاولة لإصلاح المشاكل في الوقت نفسه، ولكن لا يمكن ضمان تنفيذها بالتوازي، مثلاً، عندما يتجاوز عدد الزيارات عدد الأجهزة المتاحة.
هل تتوافق Test Lab مع Appium أو Flutter/FlutterDriver أو ReactNative/Jest أو Cucumber؟
على الرغم من أنّ بعض هذه العناصر مدرَج في خطة العمل، لا يمكننا حاليًا تقديم
تعهّد بتوفير الدعم لمنصات الاختبار وتطوير التطبيقات هذه.
أين يمكنني العثور على تفاصيل الجهاز، مثل الدقة وما إلى ذلك؟
تتوفّر معلومات تفصيلية عن الجهاز من خلال واجهة برمجة التطبيقات ويمكن الوصول إليها من عميل gcloud باستخدام الأمر describe:
gcloud firebase test ios models describe MODEL
هل يمكنني استخدام التقسيم مع اختبارات iOS؟
لا تتوفّر ميزة التقسيم بشكلٍ أصلي في Test Lab على أجهزة iOS. ومع ذلك، يمكنك استخدام برنامج Flank لتقسيم حالات الاختبار على أجهزة iOS.
ويتم ذلك من خلال ضبط OnlyTestIdentifiers المفتاح والقيم في ملف .xctestrun.
يُرجى الانتقال إلى صفحة man للاطّلاع على xcodebuild.xctestrun لمزيد من التفاصيل.
لماذا لا تظهر فيديوهات في نتائج اختبار iOS؟
بالنسبة إلى الإصدار 18 من نظام التشغيل iOS أو الإصدارات الأحدث، لا يمكننا عرض فيديوهات في النتائج.
المشكلات المعروفة
اختبارات CAPTCHA لتسجيل الدخول
لا يمكن لاختبار Robo تجاوز شاشات تسجيل الدخول التي تتطلّب إجراءً إضافيًا من المستخدمين بخلاف إدخال بيانات الاعتماد لتسجيل الدخول، مثل إكمال اختبار CAPTCHA.
التوافق مع إطار عمل واجهة المستخدم
يعمل اختبار Robo بشكل أفضل مع التطبيقات التي تستخدم عناصر واجهة المستخدم من إطار عمل واجهة مستخدم Android (بما في ذلك الكائنات View وViewGroup وWebView). إذا كنت تستخدم اختبار Robo لتشغيل تطبيقات تستخدم أُطر عمل أخرى لواجهة المستخدم، بما في ذلك التطبيقات التي تستخدم محرك ألعاب Unity، قد يتوقف الاختبار بدون استكشاف ما بعد الشاشة الأولى.
تاريخ التعديل الأخير: 2025-09-05 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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"]],["تاريخ التعديل الأخير: 2025-09-05 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["\u003cbr /\u003e\n\niOS Android \n\nThis page provides troubleshooting help and answers to frequently asked\nquestions about running tests with Firebase Test Lab. Known issues are also\ndocumented. If you can't find what\nyou're looking for or need additional help, join the [#test-lab\nchannel](https://firebase-community.slack.com/messages/test-lab) on\nFirebase Slack or contact [Firebase\nsupport](https://support.google.com/firebase/contact/support).\n\nTroubleshooting\n\n\u003cbr /\u003e\n\nWhy is my test taking so long to run?\n\n\u003cbr /\u003e\n\nWhen you select a device with a high capacity level in the Test Lab\ncatalog, tests may start faster. When a\ndevice has low capacity, tests might take longer to run. If the number of\ntests invoked is much larger than the capacity of the selected devices, tests\ncan take longer to finish.\n\n\nTests running on any level device capacity level may take longer due to the\nfollowing factors:\n\n- Traffic, which affects device availability and test speed.\n- Device or infrastructure failures, which can happen at any time. To check if there is a reported infrastructure for Test Lab, see the [Firebase status dashboard](https://status.firebase.google.com/summary).\n\n\nTo learn more about device capacity in Test Lab, see device capacity\ninformation for [Android](https://firebase.google.com/docs/test-lab/android/available-testing-devices#device-capacity) and [iOS](https://firebase.google.com/docs/test-lab/ios/available-testing-devices#device-capacity).\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nWhy am I receiving inconclusive test results?\n\n\u003cbr /\u003e\n\nInconclusive test outcomes commonly occur either because of canceled test runs\nor infrastructure errors.\n\nInfrastructure errors are caused by internal Test Lab issues, like network\nerrors or unexpected device behaviors. Test Lab internally retires test runs\nthat produce infrastructure errors multiple times before reporting an\ninconclusive outcome; however, you can disable these retries using\n[failFast](/docs/test-lab/reference/testing/rest/v1/projects.testMatrices#TestMatrix.FIELDS.fail_fast).\n\nTo determine the cause of the error, follow these steps:\n\n1. Check for known outages in the [Firebase status dashboard](https://status.firebase.google.com/summary).\n2. Retry the test in Test Lab to verify that it is reproducible.\n\n | **Note:** Test Lab does not charge you for infrastructure errors.\n3. Try running the test on a different device or device type, if applicable.\n\nIf the issue persists, contact the Test Lab team in the\n[#test-lab channel](https://firebase-community.slack.com/messages/test-lab) on\nFirebase Slack.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nWhy did sharding make my tests run\nlonger?\n\n\u003cbr /\u003e\n\nSharding can cause your tests to run longer when the number of shards you\nspecified exceeds the number of devices available for use in Test Lab. To\navoid this situation, try switching to a different device. For more information\nabout choosing a different device, see\n\n[Device Capacity](https://firebase.google.com/docs/test-lab/ios/available-testing-devices#device_capacity).\n\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nWhy is it taking a long time for my\ntest to start?\n\n\u003cbr /\u003e\n\nWhen you submit a test request, your app is first validated, re-signed, etc. in\npreparation for running tests on a device. Normally, this process completes in\nless than a few seconds, but it can be affected by factors like the size of your\napp.\n\nAfter your app is prepared, test executions are scheduled and remain in a queue\nuntil a device is ready to run it. Until all test executions finish running,\nthe matrix status will be \"Pending\" (regardless of whether test executions are\nin the queue or actively running).\n| **Note:** The time your test spends waiting for an available device does not count toward your billing time.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nWhy is it taking a long time for my\ntest to finish?\n\n\u003cbr /\u003e\n\nAfter the test execution is finished, test artifacts are downloaded from the\ndevice, processed, and uploaded to Cloud Storage. The duration of this step can\nbe affected by the amount and size of the artifacts.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nFrequently asked questions\n\n\u003cbr /\u003e\n\nWhat are the no-cost quotas\nfor Test Lab? What should I do if I run out?\n\n\u003cbr /\u003e\n\nFirebase Test Lab offers no-cost quotas for testing on devices and for using\nCloud APIs. Note that the testing quota uses the standard Firebase pricing plan,\nwhile the Cloud API quotas do not.\n\n- **Testing quota**\n\n Testing quotas are determined by the number of devices used to run tests.\n The Firebase Spark plan has a fixed testing quota at no cost to users. For\n the Blaze plan, your quotas might increase if your usage of Google Cloud\n increases over time. If you reach your testing quota, wait until the next\n day or upgrade to the Blaze plan if you are currently on the Spark plan.\n If you are already on the Blaze plan, you can request a quota increase.\n For more information, see\n [Testing quota](/docs/test-lab/usage-quotas-pricing#testing-quota).\n\n You can monitor your testing quota usage in the [Google Cloud console](https://console.cloud.google.com/apis/api/testing.googleapis.com/quotas).\n- **Cloud Testing API quota**\n\n The Cloud Testing API comes with two quota limits: requests per day per\n project, and requests per every 100 seconds per project. You can monitor your\n usage in the\n [Google Cloud console](https://console.cloud.google.com/apis/api/testing.googleapis.com/quotas).\n- **Cloud Tool Results API quota**\n\n The Cloud Tool Results API comes with two quota limits: queries per day per\n project, and queries per every 100 seconds per project. You can monitor your\n usage in the\n [Google Cloud console](https://console.cloud.google.com/apis/api/toolresults.googleapis.com/quotas).\n\n Refer to [Cloud API quotas for Test Lab](/docs/test-lab/usage-quotas-pricing#cloud-api-quota)\n for more information on API limits. If you've reached an API quota:\n - Submit a request for higher quotas by\n [editing your quotas](https://cloud.google.com/docs/quota#requesting_higher_quota)\n directly in the Google Cloud console (note that most limits are set to\n maximum by default), or\n\n - Request higher API quotas by filling out a request form in the\n Google Cloud console or by contacting\n [Firebase support](https://support.google.com/firebase/contact/support).\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nHow do I find out if the\ntraffic reaching my backend is coming from Test Lab?\n\n\u003cbr /\u003e\n\nFrom your backend, you can determine if traffic is coming from Firebase-hosted\ntest devices by checking the source IP address against our\n[IP ranges](https://firebase.google.com/docs/test-lab/android/get-started#ip-blocks).\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nDoes Test Lab work with\nVPC-SC?\n\n\u003cbr /\u003e\n\nTest Lab does not work with VPC-SC, which blocks the\ncopying of apps and other test artifacts between Test Lab's internal\nstorage and users' results buckets.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nHow do I detect flaky tests in\nTest Lab?\n\n\u003cbr /\u003e\n\nTo detect flaky behavior in your tests, we recommend using the\n\n[--num-flaky-test-attempts](https://cloud.google.com/sdk/gcloud/reference/firebase/test/ios/run#--num-flaky-test-attempts)\n\noption. Deflake reruns are billed or counted toward your daily quota the same as\nnormal test executions.\n\nKeep the following in mind:\n\n- The entire test execution runs again when a failure is detected. There's no support for retrying only failed test cases.\n- Deflake retry runs are scheduled to run at the same time, but are not guaranteed to run in parallel, for example, when traffic exceeds the number of available devices.\n\n| **Note:** Infrastructure errors are independent from the deflake feature and don't trigger deflake reruns.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nDoes Test Lab support\nAppium, Flutter/FlutterDriver, ReactNative/Jest, or Cucumber?\n\n\u003cbr /\u003e\n\nWhile some of these items are on our roadmap, we're currently unable to provide\ncommitment to supporting these testing and app development platforms.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nWhere can I find device details,\nlike resolution, etc.?\n\n\u003cbr /\u003e\n\nDetailed device information is available through the API and can be accessed\nfrom the gcloud client using the\n[describe command](https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/models/describe):\n\n`gcloud firebase test ios models describe `\u003cvar translate=\"no\"\u003eMODEL\u003c/var\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nCan I use sharding with iOS tests?\n\n\u003cbr /\u003e\n\nSharding isn't natively supported within Test Lab for iOS. However, you can\nuse the [Flank](https://flank.github.io/flank/) client to shard iOS test cases.\n| **Note:** Using Flank iOS sharding creates separate test matrices for each shard.\n\nThis works by setting `OnlyTestIdentifiers` key and values in `.xctestrun` file.\nSee `man` page for `xcodebuild.xctestrun` for more details.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nWhy is my iOS test missing videos in the\nresults?\n\n\u003cbr /\u003e\n\nFor iOS 18 or later, we are not able to support videos in the results.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nKnown issues\n\n\u003cbr /\u003e\n\nSign-in Captchas\n\n\u003cbr /\u003e\n\nRobo test cannot bypass sign-in screens that require\nadditional user action beyond entering credentials to sign in, for example,\ncompleting a CAPTCHA.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nUI framework support\n\n\u003cbr /\u003e\n\nRobo test works best with apps that use UI elements from the Android UI\nframework (including `View`, `ViewGroup`, and `WebView`\nobjects). If you use Robo test to exercise apps that use other UI\nframeworks, including apps that use the Unity game engine, the test may exit\nwithout exploring beyond the first screen.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e"]]