ใช้ชุดลองใหม่

ชุดทดสอบมีแนวโน้มที่จะรวมโมดูลการทดสอบหลายโมดูลและสามารถเข้าถึงขนาดคลังข้อมูลการทดสอบที่ค่อนข้างใหญ่ได้ ตัวอย่างเช่น ชุดทดสอบความเข้ากันได้ของ 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 ที่มีอยู่เพื่อเตรียมการร้องขอการลองอีกครั้ง