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

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

تتضمن المشاركة متطلبات أساسية لمشغل الاختبار لدعم المشاركة.

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