Thử lại kiểm tra tự động

Một thử nghiệm có thể thất bại vì bất kỳ lý do gì và đôi khi chỉ cần chạy lại thử nghiệm là đủ để thử nghiệm đó vượt qua trở lại (do lỗi không ổn định, chẳng hạn như do các sự cố trong cơ sở hạ tầng cơ bản). Bạn có thể định cấu hình Tradefed để tiến hành thử lại một cách tự động.

Cốt lõi của việc tự động thử lại là tránh chạy lại tất cả các bài kiểm tra; nó chỉ chạy lại các thử nghiệm thất bại, giúp tiết kiệm đáng kể thời gian thực hiện.

Tradefed cũng hỗ trợ chạy thử nghiệm nhiều lần để phát hiện lỗi thông qua tính năng lặp lại . Trong trường hợp này, tất cả các thử nghiệm sẽ được chạy lại và thử nghiệm sẽ thất bại nếu bất kỳ lần lặp nào không thành công.

Bật thử lại tự động

Việc thử lại tự động được điều khiển thông qua đối tượng RetryDecision , cung cấp hai tùy chọn để kích hoạt tính năng: max-testcase-run-countretry-strategy .

max-testcase-run-count điều khiển số lần thử lại hoặc lặp lại sẽ được thử. Nó đặt giới hạn trên để tránh phải thử lại mãi mãi. retry-strategy thúc đẩy quyết định thử lại như thế nào; xem các phần sau để biết thêm chi tiết.

Tắt tính năng thử lại tự động

Sử dụng tùy chọn sau:

--retry-strategy NO_RETRY

Thử lại thất bại

Để thử lại các lần kiểm tra thất bại, hãy sử dụng các tùy chọn sau:

--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X

Thao tác này sẽ thử lại lỗi cho đến khi vượt qua hoặc cho đến khi đạt đến số lần thử lại tối đa, tùy điều kiện nào đến trước.

Lặp lại

Để chạy lại thử nghiệm trong một khoảng thời gian, có thể sử dụng các tùy chọn sau:

--retry-strategy ITERATIONS --max-testcase-run-count X

Kết quả trông như thế nào?

Người báo cáo kết quả theo mặc định sẽ nhận được kết quả tổng hợp của tất cả các lần thử.

Ví dụ: Thất FailPass cho RETRY_ANY_FAILURE sẽ dẫn đến Pass tổng hợp do việc thử lại đã giải quyết được lỗi.

Các phóng viên có thể nhận được kết quả không tổng hợp. Để làm như vậy, họ cần mở rộng giao diện ISupportGranularResults để khai báo hỗ trợ cho các kết quả chi tiết (không tổng hợp).

Chi tiết triển khai

Để bật tính năng tự động thử lại nhằm chạy lại các lỗi ở cấp trường hợp thử nghiệm, hãy triển khai ITestFilterReceiver .

Nếu không thể triển khai ITestFilterReceiver, bạn có thể triển khai IAutoRetriableTest để kiểm soát cách hoạt động của lần chạy lại theo cách thủ công. InstalledInstrumentationsTest là một ví dụ triển khai giao diện đó.