توضّح هذه الصفحة ما يمكن ضبطه في وحدة مجموعة
(AndroidTest.xml
) من خلال التجزئة والحصول على أفضل أداء للسرعة أثناء
التنفيذ المستمر في المختبر. سنحاول وصف الخيارات بطريقة
عامة مع توضيح الأساس المنطقي لاستخدام كل خيار.
عند تشغيل مجموعة اختبارات باستمرار في المختبر، يتم تقسيم المجموعة عادةً على عدة أجهزة لتقليل إجمالي وقت الإنجاز. يحاول الإطار عادةً التوازن بين وقت تنفيذ كل جزء لتقليل وقت الإنجاز العام (عند انتهاء الجزء الأخير)، ولكن بسبب طبيعة بعض الاختبارات، لا يتوفّر لدينا دائمًا ما يكفي من الفحص الذاتي ونحتاج إلى صاحب الوحدة لضبط بعض السلوكيات.
هل يمكن تقسيمها إلى أقسام أم لا؟
من الممكن وضع علامة على وحدة (AndroidTest.xml
) باستخدام
<option name="not-shardable" value="true" />
لإعلام الحِزمة بأنّه
يجب عدم تقسيمها.
في الوحدة العادية، من الأفضل السماح لحزمة الربط بتقسيم وحدتك (السلوك التلقائي). ولكن في بعض الحالات، قد تحتاج إلى تجاوز هذا السلوك:
- عندما يكون إعداد الوحدة باهظ التكلفة:
يؤدي تقسيم وحدة إلى إجراء الإعداد (تثبيت حِزمة APK ودفع الملف وما إلى ذلك) قد يتم تنفيذه مرة واحدة لكل جهاز ينطبق عليه ذلك. إذا كانت عملية إعداد الوحدة تستغرق وقتًا طويلاً وتكون باهظة التكلفة ولا تستحق تكرارها مقارنةً بوقت تشغيل الاختبار، يجب وضع علامة على وحدتك على أنّها غير قابلة للتقسيم.
- عندما يكون عدد الاختبارات في وحدتك منخفضًا:
يؤدي تقسيم الوحدة إلى أجزاء إلى تنفيذ جميع حالات الاختبار بشكل مستقل على أجهزة مختلفة. يرتبط ذلك بالنقطة الأولى. إذا كان عدد الاختبارات منخفضًا، قد تنتهي باختبار واحد أو بدون اختبار في بعض الأجزاء، ما يؤدي بدوره إلى ارتفاع تكلفة أي خطوة تحضيرية. على سبيل المثال، لا يُنصح عادةً بتثبيت حزمة APK لحالة اختبار واحدة.
اختبارات قياس حالة التطبيق: ما هو الحد الأقصى لعدد الأقسام؟
لا يعرِض اختبار الأدوات الذي يتم تشغيله من خلال AndroidJUnitTest للمجموعة الاختبارية عدد الاختبارات التي تشكّل جزءًا من الأدوات إلى أن نثبّت حزمة APK ونشغّلها. هذه العمليات مكلفة ولا يمكن تنفيذها في وقت تقسيم جميع الوحدات التي تشكّل المجموعة.
قد يقسّم حِزمة الاختبار اختبار الأدوات إلى أقسام أكثر من اللازم وينتهي الأمر ببعض الأقسام الفارغة. يؤدي تقسيم اختبار الأدوات إلى أقسام باستخدام خمسة اختبارات في ستة أقسام إلى ظهور خمسة أقسام تتضمّن اختبارًا واحدًا وقسمًا واحدًا بدون أي اختبارات. تتطلّب كلّ من هذه الشظايا عملية تثبيت مكلفة لحزمة APK.
وبالتالي، عندما يكون عدد الاختبارات في حزمة APK لاختبار الأدوات منخفضًا، سيؤدي وضع علامة على
الوحدة باستخدام <option name="not-shardable" value="true" />
إلى السماح ل
مجموعة الأدوات بمعرفة أنّ تقسيم هذه الوحدة غير مجدٍ.
يتوفّر لدى أداة تشغيل AndroidJUnitTest
خيار خاص يتيح لها تحديد
الحد الأقصى لعدد الأجزاء المسموح بتقسيمها إلى:
<option name="ajur-max-shard" value="5" />
.
يتيح لك ذلك تحديد الحد الأقصى لعدد المرات التي يمكن فيها تحليل الأدوات بغض النظر عن عدد الأجزاء المطلوبة على مستوى الاستدعاء. سيتم تقسيم الأدوات تلقائيًا إلى عدد الأجزاء المطلوبة للعملية الاستدعاء.
على سبيل المثال، إذا كان ملف APK لاختبار الأدوات يحتوي على حالتَي اختبار فقط، ولكنه
لا يزال تريد تقسيمه، سيضمن لك ضبط قيمة ajur-max-shard
على 2
عدم
إنشاء أقسام فارغة.