اختبار التجزئة

عندما يكون نطاق الاختبار كبيرًا أو يصبح وقت التنفيذ طويلاً، نقدّم إمكانية تقسيم الاختبارات على عدة أجهزة: تقسيم البيانات.

هناك متطلبات أساسية لتشغيل الاختبار من أجل إتاحة التجزئة.

تتوافق غالبية مشغّلات الاختبار الرئيسية مع التجزئة، لذا لا يلزم بذل أي جهد إضافي. تتيح هذه الاختبارات تقسيم البيانات: اختبارات قياس حالة التطبيق، والاختبارات التي يتم إجراؤها من جهة المضيف، وGTest.

هناك نوعان من التجزئة نوفّرهما في Tradefed: التجزئة المحلية والتجزئة الموزّعة. تتشارك هذه الصفحات بعض الخصائص، لذا توضّح هذه الصفحة الخصائص المشتركة ثم تفاصيل كل صفحة.

الخصائص الشائعة

يفترض كلا شكلَي التجزئة السمات نفسها من مشغّلي الاختبارات: يجب أن تكون الأجزاء مستقلة وحتمية. الخطوة الأولى في كلتا عمليتَي التجزئة هي إنشاء القائمة الكاملة المرتبطة بالاختبارات ثم تقسيمها إلى مجموعات/شرائح مختلفة.

يكمن الاختلاف الرئيسي بين أشكال التجزئة في طريقة تنفيذ الاختبارات. يمكنك الاطّلاع على مزيد من التفاصيل في الأقسام أدناه.

التجزئة المحلية

التقسيم المحلي يعني أنّ جميع الأجهزة المشارِكة في تنفيذ العبارة المجزّأة مرتبطة بالمضيف المادي نفسه.

التنفيذ

يستفيد التجزئة المحلية من جميع الأجهزة المتصلة بالمضيف نفسه من خلال إنشاء مجموعة من الاختبارات التي يجب تنفيذها وإجراء اختبارات الاستطلاع على كل جهاز عندما يكون متاحًا (أي بعد الانتهاء من الاختبار السابق). ويؤدي ذلك إلى تحسين استخدام الجهاز. ونُطلق عليه أيضًا اسم التقسيم الديناميكي.

الخيارات

--shard-count XX

التجزئة الموزّعة

التقسيم الموزَّع يعني أنّ جميع الأجهزة المشارِكة في تنفيذ طلبات معالجة ملف برمجي مقسَّمة يمكن أن تكون موجودة في أي مكان ومتصلة بمضيفين ماديين مختلفين.

التنفيذ

تحدث عملية تقسيم البيانات الموزّعة عند إنشاء قائمة الاختبارات، ولا ينفِّذ محتوى كل قطعة إلا القطعة المطلوبة حاليًا. وبالتالي، تنشئ كل الأجزاء الموزّعة القائمة نفسها في البداية، ثم تنفِّذ مجموعة فرعية متعالِقة من القائمة، ما يؤدي إلى تنفيذ جميع الاختبارات.

السمة الرئيسية لهذا الشكل هي أنّ الأجزاء غير مدركة تمامًا لبعضها ا ويمكن أن تتعذّر عليها معالجة البيانات بشكل مستقل.

ويتمثل العيب الرئيسي في أنّ طول الشريحة ليس متوازنًا بالضرورة ببساطة لأنّه لا يمكننا توقّع وقت تشغيل كل اختبار في كل شريحة مسبقًا. يتم إجراء التوزيع بحيث يكون العدد نفسه تقريبًا من حالات الاختبار في كل شريحة.

الخيارات

--shard-count XX --shard-index XX

تقسيم الرموز المميّزة

يمكن استخدام تقسيم الرموز المميّزة مع التقسيم المحلي فقط. تكون العلامة غير قابلة للاستخدام في حالات استخدام التجزئة غير المحلية. في بعض الأحيان، يحتوي أحد الأجهزة المشاركة في التجزئة على موارد خاصة لا تتوفّر في الأجهزة الأخرى، مثل بطاقة SIM. قد لا تعمل بعض الاختبارات إلا عندما يكون هذا المورد الخاص متوفّرًا، وإلا ستتعذّر إجراؤها.

وتعدّ تقسيم الرموز المميّزة هي الحلّ الذي نقدّمه لمثل هذه حالات الاستخدام. يمكن للوحدات الاختبارية تحديد المورد الخاص الذي تحتاجه في AndroidTest.xml، ويقوم Tradefed بتوجيه الاختبارات إلى جهاز يتضمّن المورد.

إعدادات XML

<option name="config-descriptor:metadata" key="token" value="SIM_CARD" />

يتطابق value للرمز المميّز مع TokenProperty في Tradefed، وهو مرتبط بمعالج في TokenProviderHelper.

يتيح ذلك تشغيل وحدات الاختبار على الأجهزة التي يمكنها تنفيذ الاختبارات بشكلٍ سليم.

ماذا لو لم يكن بإمكان أي أجهزة إجراء الاختبار؟

إذا لم تتوفّر أي أجهزة تتضمّن المورد الذي يتطابق مع وحدة الاختبار، تُعتبر وحدة الاختبار غير ناجحة ويتم تخطّيها لأنّه لا يمكن تنفيذها بشكل صحيح.

على سبيل المثال، إذا طلبت وحدة اختبار شريحة SIM لتشغيلها ولكن لم يكن لدى أي أجهزة شريحة SIM، ستتعطّل وحدة الاختبار.

التنفيذ

نقْل علامة الميزة هذه إلى سطر أوامر Tradefed الرئيسي:

--enable-token-sharding