عادةً ما تتضمّن الحزمة عدة وحدات اختبار ويمكن أن تصل إلى عدد كبير جدًا حجم مجموعة الاختبار. على سبيل المثال، مجموعة اختبار التوافق مع Android (CTS) تشمل مئات الوحدات ومئات الآلاف من حالات الاختبار.
من الممكن أن يتعذّر اجتياز عدد كبير من الاختبارات بسبب العزلة السيئة أو الأجهزة تسير في حالة سيئة.
تهدف ميزة إعادة المحاولة في الحزمة إلى حل هذه الحالات: فهي تتيح لك إعادة المحاولة الإخفاقات فقط بدلاً من المجموعات الكاملة لاستبعاد التقشر عزلة سيئة. وإذا كان الاختبار يفشل باستمرار، فستفشل أيضًا إعادة المحاولة؛ أو ستحصل على إشارة أقوى بكثير إلى وجود مشكلة حقيقية.
إعادة محاولة تنفيذ الحزمة
تتضمن إعادة محاولة النتائج قراءة النتائج السابقة وإعادة تشغيل الاستدعاء السابق.
الواجهة الرئيسية التي تؤدي إلى إعادة المحاولة هي ITestSuiteResultLoader
،
مما يتيح لك تحميل نتيجة سابقة وسطر الأوامر السابق.
RetryRescheduler
ثم تستخدم هذه المعلومات لإعادة إنشاء الأمر السابق وملء بعض
لإعادة إجراء الاختبارات السابقة فقط أو التي لم يتم تنفيذها.
مثال على إعادة محاولة استخدام الحزمة: CTS
في ما يلي إعدادات إعادة المحاولة في CTS:
<configuration description="Runs a retry of a previous CTS session.">
<object type="previous_loader" class="com.android.compatibility.common.tradefed.result.suite.PreviousResultLoader" />
<test class="com.android.tradefed.testtype.suite.retry.RetryRescheduler" />
<logger class="com.android.tradefed.log.FileLogger">
<option name="log-level-display" value="WARN" />
</logger>
</configuration>
ينطبق ذلك على معظم التطبيقات التي تعمل على توسيع نطاقه، على سبيل المثال: VTS:
سيتم استدعاؤها باستخدام:
cts-tradefed run retry --retry <session>
ويمكن العثور على الجلسة من خلال سرد النتائج السابقة في وحدة تحكم CTS:
cts-tf > l r
Session Pass Fail Modules Complete Result Directory Test Plan Device serial(s) Build ID Product
0 2092 30 148 of 999 2018.10.29_14.12.57 cts [serial] P Pixel
ستتم إعادة تحميل الأمر الأصلي بالضبط وإعادة تشغيله مع استخدام فلاتر إضافية. هذا النمط يعني أنه إذا تضمن الأمر الأصلي بعض الخيارات، فسيتم أيضًا جزء من إعادة المحاولة.
مثلاً:
cts-tradefed run cts-dev -m CtsGestureTestCases
ترتبط إعادة محاولة تنفيذ الخطوات أعلاه دائمًا بـ CtsGestureTestCases
لأن
فإننا نعيد محاولة أمر يتضمنه فقط.
إعداد إعادة المحاولة لمجموعة بنمط CTS
لإكمال إعادة المحاولة، يجب تصدير النتائج السابقة في Proto. يجب إضافة ما يلي:
<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
ويجب إضافته إلى إعدادات XML الخاصة بالأمر الرئيسي
ينتج عنها ملف test-record.pb
يتم إنشاؤه في مجلد النتائج.
تحاول CTS بعد ذلك تحميل البيانات من مجموعة من test-record.pb
test_result.xml
الحالي لإعداد استدعاء إعادة المحاولة.