استكشاف الأخطاء وإصلاحها في Test Lab & الأسئلة الشائعة
تقدّم هذه الصفحة مساعدة في تحديد المشاكل وحلّها وإجابات عن الأسئلة الشائعة
حول إجراء الاختبارات باستخدام Firebase Test Lab. ويتم أيضًا تسجيل المشاكل المعروفة. إذا لم تتمكّن من العثور على ما
تبحث عنه أو كنت بحاجة إلى مساعدة إضافية، يمكنك الانضمام إلى قناة #test-lab على
Slack في Firebase أو التواصل مع فريق دعم
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. يُرجى العِلم أنّ حصة الاختبار تستخدِم خطة أسعار Firebase العادية،
بينما لا تستخدِم حصص Cloud API هذه الخطة.
الحصة الاختبارية
يتم تحديد حصص الاختبار حسب عدد الأجهزة المستخدَمة لإجراء الاختبارات.
تتضمّن خطة Firebase Spark حصة ثابتة للاختبار بدون أي تكلفة للمستخدمين. بالنسبة إلى خطة Blaze، قد تزيد حصصك إذا زاد استخدامك لخدمة Google Cloud بمرور الوقت. إذا بلغت حصة الاختبار، انتظِر حتى
اليوم التالي أو أجرِ ترقية إلى خطة Blaze إذا كنت مشتركًا حاليًا في خطة Spark.
إذا كنت مشتركًا في خطة Blaze، يمكنك طلب زيادة الحصة.
لمزيد من المعلومات، يُرجى الاطّلاع على
حصة الاختبار.
يمكنك مراقبة استخدام حصة الاختبار في وحدة تحكّم Google Cloud.
حصة Cloud Testing API
توفّر 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؟
لا تتوافق 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.
المشكلات المعروفة
اختبارات CAPTCHA لتسجيل الدخول
لا يمكن لاختبار Robo تخطّي شاشات تسجيل الدخول التي تتطلّب
إجراءً إضافيًا من المستخدم بخلاف إدخال بيانات الاعتماد لتسجيل الدخول، على سبيل المثال،
إكمال اختبار CAPTCHA.
توافق إطار عمل واجهة المستخدم
يعمل اختبار Robo بشكل أفضل مع التطبيقات التي تستخدم عناصر واجهة المستخدم من إطار عمل View
واجهة المستخدم في Android (بما في ذلك كائنات View وViewGroup وWebView). إذا كنت تستخدِم اختبار Robo لتشغيل التطبيقات التي تستخدِم إطارات عمل أخرى لواجهة المستخدم، بما في ذلك التطبيقات التي تستخدِم محرّك ألعاب Unity، قد ينتهي الاختبار بدون استكشاف ما بعد الشاشة الأولى.