Một bộ có xu hướng bao gồm một số mô-đun thử nghiệm và có thể đạt đến kích thước kho dữ liệu thử nghiệm khá lớn. Ví dụ: Bộ kiểm tra tính tương thích của Android (CTS) bao gồm hàng trăm mô-đun và hàng trăm nghìn trường hợp thử nghiệm.
Có thể xảy ra một số lượng lớn các thử nghiệm không thành công do cách ly kém hoặc thiết bị ở trạng thái không tốt.
Tính năng thử lại bộ phần mềm có nghĩa là để giải quyết những trường hợp đó: Nó cho phép bạn chỉ thử lại các lỗi thay vì toàn bộ bộ phần mềm để loại trừ tình trạng bong tróc và cách ly kém. Nếu một bài kiểm tra liên tục không đạt, thì lần thử lại cũng sẽ thất bại; và bạn nhận được một tín hiệu mạnh mẽ hơn nhiều rằng có một vấn đề thực sự.
Triển khai thử lại bộ
Việc thử lại kết quả bao gồm việc đọc kết quả trước đó và chạy lại lời gọi trước đó.
Giao diện chính thúc đẩy quá trình thử lại là ITestSuiteResultLoader , cho phép bạn tải kết quả trước đó và dòng lệnh trước đó.
Sau đó, RetryRescheduler sử dụng thông tin này để tạo lại lệnh trước đó và điền vào một số bộ lọc để chỉ chạy lại các lỗi trước đó hoặc các bài kiểm tra chưa được thực hiện.
Thử lại bộ ví dụ: CTS
Cấu hình thử lại trong CTS là:
<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>
Điều này có thể áp dụng cho hầu hết các dãy phòng mở rộng nó, ví dụ như VTS ).
Nó sẽ được gọi qua:
cts-tradefed run retry --retry <session>
Phiên sẽ được tìm thấy bằng cách liệt kê các kết quả trước đó trong bảng điều khiển 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
Lệnh gốc chính xác sẽ được tải lại và chạy lại với các bộ lọc bổ sung. Điều này có nghĩa là nếu lệnh ban đầu của bạn bao gồm một số tùy chọn, chúng cũng sẽ là một phần của quá trình thử lại.
Ví dụ:
cts-tradefed run cts-dev -m CtsGestureTestCases
Việc thử lại ở trên sẽ luôn bị ràng buộc với CtsGestureTestCases
vì chúng tôi đang thử lại một lệnh chỉ liên quan đến nó.
Định cấu hình thử lại cho bộ kiểu CTS
Để quá trình thử lại hoạt động, các kết quả trước đó cần được xuất ở định dạng proto. Những điều sau đây cần được thêm vào:
<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
Điều này cần được thêm vào cấu hình XML của lệnh chính và nó sẽ dẫn đến một tệp test-record.pb
sẽ được tạo trong thư mục kết quả.
CTS thử lại sau đó tải dữ liệu từ sự kết hợp của test-record.pb
và test_result.xml
hiện có để chuẩn bị lệnh gọi thử lại.