توفر هذه الصفحة تعليمات حول استكشاف الأخطاء وإصلاحها وإجابات للأسئلة المتداولة حول إجراء الاختبارات باستخدام Firebase Test Lab. كما تم توثيق المشكلات المعروفة. إذا لم تتمكن من العثور على ما تبحث عنه أو كنت بحاجة إلى مساعدة إضافية ، فانضم إلى # test-lab channel على Firebase Slack أو اتصل بدعم Firebase .
استكشاف الأخطاء وإصلاحها
عندما تحدد جهازًا ذا سعة عالية في كتالوج معمل الاختبار ، فقد تبدأ الاختبارات بشكل أسرع. عندما يكون أحد الأجهزة ذات سعة منخفضة ، فقد تستغرق الاختبارات وقتًا أطول. إذا كان عدد الاختبارات التي تم استدعاؤها أكبر بكثير من سعة الأجهزة المحددة ، فقد تستغرق الاختبارات وقتًا أطول حتى تنتهي.
قد تستغرق الاختبارات التي يتم إجراؤها على أي مستوى من مستويات سعة الجهاز وقتًا أطول بسبب العوامل التالية:
- حركة المرور ، التي تؤثر على توفر الجهاز وسرعة الاختبار.
- أعطال الجهاز أو البنية التحتية ، والتي يمكن أن تحدث في أي وقت. للتحقق مما إذا كانت هناك بنية أساسية تم الإبلاغ عنها لـ Test Lab ، راجع لوحة معلومات حالة Firebase .
لمعرفة المزيد حول سعة الجهاز في Test Lab ، راجع معلومات سعة الجهاز لنظامي Android و iOS .
تحدث نتائج الاختبار غير الحاسمة عادةً إما بسبب عمليات الاختبار الملغاة أو أخطاء البنية التحتية.
تحدث أخطاء البنية التحتية بسبب مشكلات داخلية في Test Lab ، مثل أخطاء الشبكة أو سلوكيات الجهاز غير المتوقعة. يتقاعد Test Lab داخليًا من عمليات الاختبار التي تنتج أخطاء البنية التحتية عدة مرات قبل الإبلاغ عن نتيجة غير حاسمة ؛ ومع ذلك ، يمكنك تعطيل عمليات إعادة المحاولة هذه باستخدام failFast .
لتحديد سبب الخطأ ، اتبع الخطوات التالية:
- تحقق من حالات الانقطاع المعروفة في لوحة معلومات حالة Firebase .
أعد محاولة الاختبار في معمل الاختبار للتحقق من أنه قابل للتكرار.
حاول تشغيل الاختبار على جهاز أو نوع جهاز مختلف ، إن أمكن.
إذا استمرت المشكلة ، فاتصل بفريق Test Lab في # test-lab channel على Firebase Slack.
يمكن أن تؤدي المشاركة إلى تشغيل اختباراتك لفترة أطول عندما يتجاوز عدد الأجزاء التي حددتها عدد الأجهزة المتاحة للاستخدام في مختبر الاختبار. لتجنب هذا الموقف ، حاول التبديل إلى جهاز مختلف. لمزيد من المعلومات حول اختيار جهاز مختلف ، راجعسعة الجهاز .
عند إرسال طلب اختبار ، يتم التحقق من صحة تطبيقك أولاً ، وإعادة توقيعه ، وما إلى ذلك استعدادًا لإجراء الاختبارات على الجهاز. عادة ، تكتمل هذه العملية في أقل من بضع ثوانٍ ، ولكن يمكن أن تتأثر بعوامل مثل حجم التطبيق الخاص بك.
بعد أن يتم تحضير تطبيقك ، تتم جدولة عمليات التنفيذ التجريبية وتظل في قائمة انتظار حتى يصبح الجهاز جاهزًا لتشغيله. حتى تنتهي جميع عمليات تنفيذ الاختبار من التشغيل ، ستكون حالة المصفوفة "معلقة" (بغض النظر عما إذا كانت عمليات تنفيذ الاختبار في قائمة الانتظار أو قيد التشغيل بشكل نشط).
بعد الانتهاء من تنفيذ الاختبار ، يتم تنزيل عناصر الاختبار من الجهاز ومعالجتها وتحميلها إلى Cloud Storage. يمكن أن تتأثر مدة هذه الخطوة بكمية وحجم القطع الأثرية.
أسئلة مكررة
يقدم Firebase Test Lab حصصًا مجانية للاختبار على الأجهزة ولاستخدام Cloud APIs. لاحظ أن حصة الاختبار تستخدم خطة تسعير Firebase القياسية ، بينما لا تستخدم حصص Cloud API.
حصة الاختبار
يتم تحديد حصص الاختبار من خلال عدد الأجهزة المستخدمة لإجراء الاختبارات. تحتوي خطة Firebase Spark على حصة اختبار ثابتة دون أي تكلفة للمستخدمين. بالنسبة لخطة Blaze ، قد تزداد حصصك إذا زاد استخدامك لـ Google Cloud بمرور الوقت. إذا وصلت إلى حصة الاختبار الخاصة بك ، فانتظر حتى اليوم التالي أو قم بالترقية إلى خطة Blaze إذا كنت حاليًا تستخدم خطة Spark. إذا كنت مشتركًا بالفعل في خطة Blaze ، فيمكنك طلب زيادة الحصة. لمزيد من المعلومات ، راجع حصة الاختبار .
يمكنك مراقبة استخدام حصة الاختبار الخاصة بك في Google Cloud Console .
حصة واجهة برمجة تطبيقات Cloud Testing
تأتي Cloud Testing API مع حدّين للحصة: الطلبات في اليوم لكل مشروع ، والطلبات لكل 100 ثانية لكل مشروع. يمكنك مراقبة استخدامك في Google Cloud Console .
حصة واجهة برمجة تطبيقات نتائج أداة السحابة
تأتي واجهة Cloud Tool Results API مع حدين للحصة: استعلامات في اليوم لكل مشروع ، وطلبات بحث كل 100 ثانية لكل مشروع. يمكنك مراقبة استخدامك في Google Cloud Console .
راجع حصص Cloud API الخاصة بـ Test Lab للحصول على مزيد من المعلومات حول حدود API. إذا وصلت إلى حصة API:
أرسل طلبًا للحصول على حصص أعلى عن طريق تعديل حصصك مباشرةً في Google Cloud Console (لاحظ أنه يتم تعيين معظم الحدود على الحد الأقصى افتراضيًا) ، أو
اطلب حصصًا أعلى لواجهة برمجة التطبيقات عن طريق ملء نموذج طلب في Google Cloud Console أو عن طريق الاتصال بدعم Firebase .
من الواجهة الخلفية الخاصة بك ، يمكنك تحديد ما إذا كانت حركة المرور قادمة من أجهزة اختبار مستضافة من Firebase عن طريق التحقق من عنوان IP المصدر مقابل نطاقات IP الخاصة بنا.
لا يعمل Test Lab مع VPC-SC ، والذي يحظر نسخ التطبيقات وعناصر الاختبار الأخرى بين التخزين الداخلي لـ Test Lab وحزم نتائج المستخدمين. في الوقت الحالي ، تم تقديم طلب ميزة لإضافة دعم VPC-SC في إصدار مستقبلي.
لاكتشاف السلوك غير المستقر في اختباراتك ، نوصي باستخدام الخيار--num-flaky-test-calls. تتم محاسبة عمليات إعادة التشغيل Deflake أو احتسابها ضمن حصتك اليومية بنفس عمليات تنفيذ الاختبار العادية.
ضع في اعتبارك ما يلي:
- يتم تشغيل تنفيذ الاختبار بالكامل مرة أخرى عند اكتشاف عطل. لا يوجد دعم لإعادة المحاولة فقط حالات الاختبار الفاشلة.
- تمت جدولة عمليات إعادة المحاولة Deflake للتشغيل في نفس الوقت ، ولكن لا يتم ضمان تشغيلها بالتوازي ، على سبيل المثال ، عندما تتجاوز حركة المرور عدد الأجهزة المتاحة.
في حين أن بعض هذه العناصر موجودة في خارطة الطريق الخاصة بنا ، فإننا غير قادرين حاليًا على توفير الالتزام بدعم منصات الاختبار وتطوير التطبيقات هذه.
تتوفر معلومات الجهاز التفصيلية من خلال واجهة برمجة التطبيقات ويمكن الوصول إليها من عميل gcloud باستخدام الأمر description :
gcloud firebase test ios models describe MODEL
لا يتم دعم المشاركة في الأصل داخل Test Lab لنظام iOS. ومع ذلك ، يمكنك استخدام عميل Flank في حالات اختبار iOS الخاصة بـ Shard.
يعمل هذا عن طريق تعيين مفتاح OnlyTestIdentifiers
والقيم في ملف .xctestrun
. راجع صفحة man
لـ xcodebuild.xctestrun
لمزيد من التفاصيل.