يميل الجناح إلى تضمين عدة وحدات اختبار ويمكن أن يصل إلى حجم ملف اختبار كبير جدًا. على سبيل المثال، تتضمّن مجموعة اختبار التوافق مع 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
الحالي لإعداد استدعاء إعادة المحاولة.