ใช้ Suite Retry

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