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