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