Sử dụng lại bộ thử nghiệm

Một bộ thường bao gồm một số mô-đun kiểm thử và có thể đạt đến kích thước khá lớn của tập hợp kiểm thử. Ví dụ: Bộ kiểm thử tính tương thích với Android (CTS) bao gồm hàng trăm mô-đun và hàng trăm nghìn trường hợp kiểm thử.

Có thể có một lượng lớn kiểm thử không thành công do khả năng tách biệt kém hoặc thiết bị chuyển sang trạng thái không tốt.

Tính năng thử lại bộ kiểm thử được dùng để giải quyết những trường hợp đó: Tính năng này cho phép bạn chỉ thử lại các lần thất bại thay vì toàn bộ bộ kiểm thử để loại trừ tình trạng không ổn định và khả năng cách ly kém. Nếu một kiểm thử liên tục không thành công, thì lần thử lại cũng không thành công; và bạn sẽ nhận được tín hiệu mạnh 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ả liên quan đến việc đọc kết quả trước đó và chạy lại lệnh gọi trước đó.

Giao diện chính điều khiển việc 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ẽ sử dụng thông tin này để tạo lại lệnh trước đó và điền sẵn một số bộ lọc để chỉ chạy lại các lần kiểm thử không thành công hoặc không được thực thi trước đó.

Ví dụ về thử lại bộ kiểm thử: 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 áp dụng cho hầu hết các bộ mở rộng, ví dụ: VTS.

Phương thức này sẽ được gọi bằng:

cts-tradefed run retry --retry <session>

Bạn có thể tìm thấy phiên nà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 ban đầu chính xác sẽ được tải lại và chạy lại bằng 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ố tuỳ chọn, thì các tuỳ chọn đó cũng sẽ được thử lại.

Ví dụ:

cts-tradefed run cts-dev -m CtsGestureTestCases

Thao tác thử lại theo cách nêu trên luôn được liên kết với CtsGestureTestCases vì chúng ta đang thử lại một lệnh chỉ liên quan đến lệnh đó.

Định cấu hình thử lại cho bộ kiểm thử kiểu CTS

Để quá trình thử lại hoạt động, bạn cần xuất kết quả trước đó ở định dạng proto. Bạn cần thêm những nội dung sau:

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

Bạn cần thêm thông tin này vào cấu hình XML của lệnh chính và điều này sẽ dẫn đến việc tạo tệp test-record.pb trong thư mục kết quả.

Sau đó, CTS sẽ thử lại và tải dữ liệu từ tổ hợp test-record.pbtest_result.xml hiện có để chuẩn bị lệnh gọi thử lại.