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

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

หากต้องการให้ลองทำงานอีกครั้ง คุณต้องส่งออกผลลัพธ์ก่อนหน้าในรูปแบบ Proto ได้ โดยจำเป็นต้องเพิ่มสิ่งต่อไปนี้

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

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

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