یک مجموعه شامل چندین ماژول تست است و می تواند به اندازه مجموعه آزمایشی بسیار بزرگی برسد. به عنوان مثال، مجموعه تست سازگاری اندروید (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
موجود بارگیری می کند تا فراخوانی مجدد را آماده کند.