يصف هذا المستند الأجهزة الافتراضية في Test Lab، بما في ذلك المزايا والقيود المعروفة. نقدّم أيضًا اقتراحات حول كيفية اختبار تطبيقك طوال دورة حياة التطوير. Test Lab تشبه الأجهزة الافتراضية الأجهزة الافتراضية في "استوديو Android" ولكنّها محسّنة من أجل الأداء مع الاختبار على السحابة الإلكترونية، لذا هناك بعض الاختلافات بينهما.
Test Lab الأجهزة الافتراضية التي تتضمّن اللاحقة .arm أو (Arm) هي محاكيات متقدّمة توفّر المزايا التالية:
وقت أسرع لتنفيذ الاختبار
أحجام الشاشة وكثافتها متوافقة مع الأجهزة الافتراضية في "استوديو Android" لتحقيق الاتساق
رسومات مسرَّعة متوافقة مع وحدة معالجة الرسومات
يوضّح الجدول التالي مزايا استخدام الأجهزة الافتراضية:
| الميزة | الوصف | حالات الاستخدام |
| مدى توفُّر مرتفع | يمكنك إجراء الاختبارات والحصول على نتائجها بسرعة أكبر عند الاختبار باستخدام الأجهزة الافتراضية. بما أنّ الأجهزة الافتراضية يتم إنشاؤها عند الطلب، تبدأ اختباراتك على الفور تقريبًا، ما يوفّر عملية تحقّق سريعة من تطبيقك. | اختبار التعديلات الصغيرة على تطبيقك أو إجراء اختبارات الانحدار |
| مدد أطول للاختبارات | تتيح الأجهزة الافتراضية إجراء اختبارات لمدة تصل إلى 60 دقيقة. تقتصر الاختبارات على الأجهزة الفعلية على مدة 45 دقيقة لكل جهاز. | إجراء اختبارات أطول |
| تكاليف أقل | يتم تسعير الأجهزة الافتراضية بسعر 1 دولار أمريكي في الساعة لكل جهاز افتراضي يُستخدم لاختبار تطبيقك. | الاختبار اليومي باستخدام أنظمة التكامل المستمر أو قبل تسجيل الرمز لمزيد من المعلومات، يُرجى الاطّلاع على مقالة مستويات الاستخدام والحصص والتسعير في Test Lab. |
اختبار تطبيقك باستخدام الأجهزة الافتراضية
يمكنك اختبار تطبيقك باستخدام الأجهزة الافتراضية بالطريقة نفسها التي تختبره بها باستخدام الأجهزة الفعلية. يمكنك اختيار الأجهزة الافتراضية لاختباراتك عند ضبط مصفوفة الاختبار. لمزيد من المعلومات حول إجراء الاختبارات باستخدام Test Lab، يُرجى الاطّلاع على مقالة بدء اختبار تطبيقات Android باستخدام Firebase Test Lab.
عرض الطُرز وواجهات برمجة التطبيقات المتوافقة
لعرض طُرز الأجهزة الافتراضية وواجهات برمجة التطبيقات المتوافقة مع Test Lab، نفِّذ الأمر التالي:
gcloud firebase test android models list --filter=virtual
أفضل الممارسات لاختبار تطبيقك
تزيد الأجهزة الافتراضية من نطاق خياراتك عند اختبار تطبيقك باستخدام Test Lab. ننصحك باتّباع أفضل الممارسات التالية لاختبار تطبيقك طوال دورة حياة تطوير التطبيق:
استخدام محاكي "استوديو Android" أو جهاز فعلي متصل
عند تطوير تطبيقك، استخدِم محاكي "استوديو Android" أو جهازًا فعليًا متصلاً لفحص كل إصدار من أجل التحقّق الأولي. إذا كانت لديك اختبارات الأجهزة، يمكنك أيضًا إجراء هذه الاختبارات من "استوديو Android" على الأجهزة الفعلية أو الافتراضية التي يوفّرها Test Lab.
استخدام أنظمة التكامل المستمر عند كل تغيير في الرمز عند العمل على مشاريع مشترَكة
إذا كنت تعمل على مشروع كبير أو تساهم في مشاريع تتم مشاركتها باستخدام GitHub أو موقع إلكتروني مشابه، ننصحك باستخدام أنظمة التكامل المستمر (CI). اختبِر تطبيقاتك على الأجهزة الافتراضية في كل مرة يتم فيها تشغيل نظام التكامل المستمر أو قبل كل طلب سحب. لمزيد من المعلومات حول استخدام Test Lab مع أنظمة التكامل المستمر، يُرجى الاطّلاع على مقالة استخدام Test Lab لنظام التشغيل Android مع أنظمة التكامل المستمر.
اختبار تطبيقك على الأجهزة الفعلية باستخدام Test Lab قبل إصدار تحديثات مهمة للتطبيق
قبل إصدار تحديثات التطبيق التي تتضمّن تغييرات مهمة في واجهة المستخدم ووظائفه، ننصحك باستخدام Test Lab لاختبار تطبيقك على الأجهزة الفعلية. سيساعد ذلك في ضمان ثبات تطبيقك وأدائه على مجموعة متنوعة من الأجهزة الفعلية الشائعة. يضمن الاختبار على الأجهزة الفعلية أيضًا تغطية الاختبار لأي وظائف في التطبيق تعتمد على ميزات الجهاز الفعلي التي لا تحاكيها الأجهزة الافتراضية. لمعرفة المزيد حول هذه الميزات، راجع القيود المعروفة.
تحديثات الأجهزة الافتراضية
بشكل دوري، يضيف فريق Android صورًا جديدة للأجهزة الافتراضية، ويوقف نهائيًا الصور القديمة، ويعدّل الصور الحالية. نطبّق هذه التعديلات على صور الأجهزة الافتراضية للمساعدة في ضمان إجراء الاختبار على إصدارات Android الحديثة التي تعكس تجارب المستخدمين.
في حالات نادرة، قد تؤدي هذه التعديلات إلى فشل الاختبارات بشكل غير متوقّع. عندما يكون هناك تعديل معروف قد يؤدي إلى حدوث مشاكل، سيضمّن Test Lab معلومات في ملاحظات الإصدار. ننصحك في إطار أفضل الممارسات باستخدام أُطر الاختبار، مثل Espresso ، التي تكون قوية في مواجهة هذه التغييرات كلما أمكن ذلك. إذا لم يكن ذلك ممكنًا، ننصحك باستهداف الأجهزة الافتراضية التي تتضمّن معالجات Arm، والتي من المتوقّع أن يتم تعديلها بوتيرة أقل.
القيود المعروفة
لا تحاكي الأجهزة الافتراضية حاليًا بعض ميزات الأجهزة الفعلية، أو تحاكيها مع بعض القيود. يلخّص الجدول التالي الميزات غير المتاحة حاليًا على الأجهزة الافتراضية أو المتاحة مع قيود معيّنة:
| الميزة | التفاصيل |
| واجهات التطبيق الثنائية (ABI) | لا تتوافق كل الأجهزة مع جميع واجهات التطبيق الثنائية. إذا كنت تطوّر باستخدام Android NDK، احرص على إنشاء رمز لواجهات التطبيق الثنائية المتوافقة مع الأجهزة التي تستهدفها (راجِع الأجهزة المتاحة في Test Lab). لمزيد من المعلومات حول إدارة واجهات التطبيق الثنائية، يُرجى الاطّلاع على مقالة واجهات التطبيق الثنائية في Android.
ملاحظة: إذا تم وضع علامة "غير صالح" على اختبار في مصفوفة تجريبية، قد يرجع ذلك إلى أنّ تطبيقك يعتمد على رموز برمجية أصلية لا تتوافق معها واجهة التطبيق الثنائية للجهاز. |
| أداء الرسومات | تستخدم الأجهزة الافتراضية من طرازَي Nexus وPixel عرض الرسومات المستند إلى البرامج. قد ينخفض أداء التطبيقات التي تتطلّب رسومات مكثّفة. إذا كان تطبيقك يتطلّب رسومات مكثّفة، ننصحك باستخدام SmallPhone.arm أو MediumPhone.arm أو الأجهزة الفعلية بدلاً من ذلك. |
| واجهات برمجة تطبيقات الرسومات | لا تتوافق الأجهزة التي يقل مستوى واجهة برمجة التطبيقات فيها عن 29 مع OpenGL ES 3.x. لا تتوافق الأجهزة الأحدث بنسبة% 100 مع واجهات برمجة التطبيقات OpenGL/Vulkan، وقد تلاحظ اختلافات صغيرة في الرسومات. |
| تطبيق "متجر Google Play" | لا يتوافق تطبيق "متجر Google Play" مع الأجهزة الافتراضية التي تتضمّن معالجات Arm. |
| وظيفة "الواقع المعزّز" | اختبار وظيفة الواقع المعزّز غير متاح على الأجهزة الافتراضية. |
| مستويات واجهات برمجة التطبيقات الأقدم | Test Lab لا تتوافق الأجهزة الافتراضية التي تتضمّن معالجات Arm مع مستويات واجهات برمجة التطبيقات الأقل من 26. |