توفر هذه الصفحة تعليمات حول استكشاف الأخطاء وإصلاحها وإجابات للأسئلة المتداولة حول إجراء الاختبارات باستخدام 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 APIs. لاحظ أن حصة الاختبار تستخدم خطة تسعير Firebase القياسية، في حين أن حصص Cloud API لا تستخدمها.
اختبار الحصص
يتم تحديد حصص الاختبار حسب عدد الأجهزة المستخدمة لإجراء الاختبارات. تحتوي خطة Firebase Spark على حصة اختبار ثابتة دون أي تكلفة على المستخدمين. بالنسبة لخطة Blaze، قد تزيد حصصك إذا زاد استخدامك لـ Google Cloud بمرور الوقت. إذا وصلت إلى حصة الاختبار الخاصة بك، فانتظر حتى اليوم التالي أو قم بالترقية إلى خطة Blaze إذا كنت مشتركًا حاليًا في خطة Spark. إذا كنت مشتركًا بالفعل في خطة Blaze، فيمكنك طلب زيادة الحصة. لمزيد من المعلومات، راجع اختبار الحصة النسبية .
يمكنك مراقبة استخدام حصة الاختبار الخاصة بك في Google Cloud Console .
حصة API للاختبار السحابي
تأتي واجهة برمجة تطبيقات Cloud Testing مع حدين للحصص: الطلبات يوميًا لكل مشروع، والطلبات لكل 100 ثانية لكل مشروع. يمكنك مراقبة استخدامك في Google Cloud Console .
حصة واجهة برمجة التطبيقات لنتائج أداة السحابة
تأتي Cloud Tool Results API مع حدين للحصص: الاستعلامات يوميًا لكل مشروع، والاستعلامات لكل 100 ثانية لكل مشروع. يمكنك مراقبة استخدامك في Google Cloud Console .
راجع حصص Cloud API الخاصة بـ Test Lab للحصول على مزيد من المعلومات حول حدود واجهة برمجة التطبيقات. إذا وصلت إلى حصة API:
أرسل طلبًا للحصول على حصص أعلى عن طريق تعديل حصصك مباشرةً في Google Cloud Console (لاحظ أنه يتم تعيين معظم الحدود على الحد الأقصى افتراضيًا)، أو
اطلب حصصًا أعلى لواجهة برمجة التطبيقات (API) عن طريق ملء نموذج طلب في Google Cloud Console أو عن طريق الاتصال بدعم Firebase .
من الواجهة الخلفية لديك، يمكنك تحديد ما إذا كانت حركة المرور تأتي من أجهزة الاختبار المستضافة على Firebase عن طريق التحقق من عنوان IP المصدر مقابل نطاقات IP الخاصة بنا.
لا يعمل Test Lab مع VPC-SC، الذي يحظر نسخ التطبيقات وعناصر الاختبار الأخرى بين وحدة التخزين الداخلية لـ Test Lab ومجموعات نتائج المستخدمين.
للكشف عن السلوك غير المستقر في اختباراتك، نوصي باستخدام الخيار--num-flaky-test-attempts. تتم محاسبة عمليات إعادة تشغيل Deflake أو احتسابها ضمن حصتك اليومية تمامًا مثل عمليات تنفيذ الاختبار العادية.
ضع في اعتبارك ما يلي:
- يتم تشغيل تنفيذ الاختبار بالكامل مرة أخرى عند اكتشاف فشل. لا يوجد دعم لإعادة محاولة حالات الاختبار الفاشلة فقط.
- تتم جدولة عمليات إعادة محاولة Deflake للتشغيل في نفس الوقت، ولكن ليس من المضمون تشغيلها بالتوازي، على سبيل المثال، عندما تتجاوز حركة المرور عدد الأجهزة المتاحة.
على الرغم من وجود بعض هذه العناصر في خريطة الطريق الخاصة بنا، إلا أننا غير قادرين حاليًا على توفير الالتزام بدعم منصات الاختبار وتطوير التطبيقات هذه.
تتوفر معلومات الجهاز التفصيلية من خلال واجهة برمجة التطبيقات (API) ويمكن الوصول إليها من عميل gcloud باستخدام أمر الوصف :
gcloud firebase test ios models describe MODEL
المشاركة غير مدعومة أصلاً في Test Lab لنظام التشغيل iOS. ومع ذلك، يمكنك استخدام عميل Flank لتقسيم حالات اختبار iOS.
يعمل هذا عن طريق تعيين مفتاح OnlyTestIdentifiers
والقيم في ملف .xctestrun
. راجع صفحة man
الخاصة بـ xcodebuild.xctestrun
لمزيد من التفاصيل.
مشاكل معروفة
لا يمكن لاختبار Robo تجاوز شاشات تسجيل الدخول التي تتطلب إجراءً إضافيًا من المستخدم يتجاوز إدخال بيانات الاعتماد لتسجيل الدخول، على سبيل المثال، إكمال اختبار CAPTCHA.
يعمل اختبار Robo بشكل أفضل مع التطبيقات التي تستخدم عناصر واجهة المستخدم من إطار عمل Android UI (بما في ذلك كائنات View
و ViewGroup
و WebView
). إذا كنت تستخدم اختبار Robo لتمرين التطبيقات التي تستخدم أطر عمل أخرى لواجهة المستخدم، بما في ذلك التطبيقات التي تستخدم محرك اللعبة Unity، فقد يتم إنهاء الاختبار دون الاستكشاف خارج الشاشة الأولى.