استخدام جناح إعادة المحاولة

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