يميل الجناح إلى تضمين العديد من وحدات الاختبار ويمكن أن يصل إلى حجم مجموعة اختبار كبير جدًا. على سبيل المثال ، تتضمن حزمة اختبار توافق 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
لكي تعمل إعادة المحاولة ، يجب تصدير النتائج السابقة بتنسيق أولي. يجب إضافة ما يلي:
<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
هذا يحتاج إلى أن يضاف إلى تكوين XML للأمر الرئيسي ، وينتج عن ملف test-record.pb
الذي يتم إنشاؤه في مجلد النتيجة.
تقوم إعادة محاولة CTS بعد ذلك بتحميل البيانات من مجموعة من test-record.pb
و test_result.xml
الحالي لتحضير استدعاء إعادة المحاولة.