השתמש בניסיון חוזר של חבילה

חבילה נוטה לכלול מספר מודולי מבחן ויכולה להגיע לגודל קורפוס מבחן גדול למדי. לדוגמה, חבילת בדיקת התאימות של אנדרואיד (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 הקיים כדי להכין את הזמנת הניסוי החוזר.