ใช้การลองอีกครั้งชุด

ชุดทดสอบมักจะมีโมดูลทดสอบหลายรายการและอาจมีชุดทดสอบขนาดใหญ่ ตัวอย่างเช่น ชุดทดสอบความเข้ากันได้ของ Android (CTS) มีโมดูลหลายร้อยรายการและกรอบการทดสอบอีกหลายแสนกรณี

การทดสอบจำนวนมากอาจล้มเหลวเนื่องจากการแยกที่ไม่เหมาะสมหรืออุปกรณ์เข้าสู่สถานะที่ไม่ถูกต้อง

ฟีเจอร์ลองอีกครั้งผ่าน Suite มีไว้เพื่อจัดการกับกรณีเหล่านั้น โดยให้คุณลองดำเนินการที่ไม่สำเร็จอีกครั้งเท่านั้นแทนการใช้ชุดโปรแกรมเต็มรูปแบบ เพื่อหลีกเลี่ยงความไม่สม่ำเสมอและการแยกส่วนที่ไม่ดี หากการทดสอบไม่สำเร็จอย่างต่อเนื่อง การลองอีกครั้งก็จะไม่สำเร็จเช่นกัน และคุณจะได้รับสัญญาณที่ชัดเจนมากขึ้นว่ามีปัญหาเกิดขึ้นจริง

ใช้ชุดการลองอีกครั้ง

การลองใหม่ของผลลัพธ์เกี่ยวข้องกับการอ่านผลลัพธ์ก่อนหน้าและเรียกใช้การเรียกก่อนหน้านี้อีกครั้ง

อินเทอร์เฟซหลักที่ทําให้ลองอีกครั้งคือ 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 เสมอเนื่องจากเรากำลังลองใช้คำสั่งที่เกี่ยวข้องกับ CtsGestureTestCases เท่านั้น

กำหนดค่าการลองอีกครั้งสำหรับชุดรูปแบบ CTS

คุณต้องส่งออกผลลัพธ์ก่อนหน้าในรูปแบบ proto เพื่อให้การลองอีกครั้งทํางานได้ คุณต้องเพิ่มข้อมูลต่อไปนี้

<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />

คุณต้องเพิ่มข้อมูลนี้ลงในการกำหนดค่า XML ของคำสั่งหลัก ซึ่งจะทำให้ระบบสร้างไฟล์ test-record.pb ในโฟลเดอร์ผลการค้นหา

จากนั้นการลองอีกครั้ง CTS จะโหลดข้อมูลจากชุดค่าผสมของ test-record.pb และ test_result.xml ที่มีอยู่เพื่อเตรียมการเรียกใช้อีกครั้ง