تتضمّن المجموعة عادةً عدة وحدات اختبار ويمكن أن يصل حجم مجموعة الاختبارات إلى حجم كبير جدًا. على سبيل المثال، تتضمّن "مجموعة أدوات اختبار التوافق" (CTS) لنظام Android مئات الوحدات ومئات الآلاف من حالات الاختبار.
يمكن أن تفشل كمية كبيرة من الاختبارات بسبب العزل الضعيف أو انتقال الأجهزة إلى حالة سيئة.
تهدف ميزة إعادة محاولة المجموعة إلى معالجة هذه الحالات: فهي تتيح لك إعادة محاولة حالات الفشل فقط بدلاً من إعادة محاولة المجموعات الكاملة لاستبعاد حالات عدم الثبات والعزل الضعيف. إذا كان الاختبار يفشل باستمرار، ستفشل أيضًا عملية إعادة المحاولة، وستتلقّى إشارة أقوى بكثير تشير إلى وجود مشكلة حقيقية.
تنفيذ ميزة إعادة محاولة المجموعة
تتضمّن إعادة محاولة النتائج قراءة النتائج السابقة وإعادة تشغيل الاستدعاء السابق.
الواجهة الرئيسية التي تدير عملية إعادة المحاولة هي 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 الحالي لإعداد استدعاء إعادة المحاولة.