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

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

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

تتوافق معظم أدوات تنفيذ الاختبارات الرئيسية مع التجزئة، لذا لا يلزم بذل أي جهد إضافي. تتيح هذه الاختبارات تقسيم البيانات: اختبارات قياس حالة التطبيق، والاختبارات التي يتم إجراؤها من جهة المضيف، و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 للرمز المميز مع Tradefed TokenProperty وهي مرتبطة بمعالج في TokenProviderHelper

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

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

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

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

التنفيذ

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

--enable-token-sharding