Thử lại tự động

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

Điểm cốt lõi của tính năng tự động thử lại là tránh chạy lại tất cả các chương trình kiểm thử; tính năng này chỉ chạy lại các chương trình kiểm thử không thành công, giúp tiết kiệm đáng kể thời gian thực thi.

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

Bật tính năng tự động thử lại

Thao tác thử lại tự động được kiểm soát thông qua đối tượng RetryDecision. Đối tượng này cung cấp hai tuỳ chọn để bậ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 số lần lặp sẽ được thực hiện. Phương thức này đặt giới hạn trên để tránh thử lại mãi mãi. retry-strategy đưa ra quyết định về cách thử lại; hãy 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 tuỳ chọn sau:

--retry-strategy NO_RETRY

Thử lại các lần thất bại

Để thử lại các lần kiểm thử không thành công, hãy sử dụng các tuỳ chọn sau:

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

Thao tác này sẽ thử lại thao tác không thành công cho đến khi thành công hoặc cho đến khi đạt đến số lần thử lại tối đa, tuỳ theo điều kiện nào xảy ra trước.

Lặp lại

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

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

Kết quả sẽ có dạng như thế nào?

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

Ví dụ: FailPass cho RETRY_ANY_FAILURE sẽ dẫn đến một Pass tổng hợp vì lượt thử lại đã xoá được lỗi.

Người báo cáo có thể nhận được kết quả chưa được tổng hợp. Để làm như vậy, các lớp này cần mở rộng giao diện ISupportGranularResults khai báo tính năng hỗ trợ cho kết quả chi tiết (không tổng hợp).

Thông tin chi tiết về cách 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 kiểm thử, 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 chạy lại theo cách thủ công. InstalledInstrumentationsTest là ví dụ về cách triển khai giao diện đó.