Trang này mô tả những gì có thể điều chỉnh cho một mô-đun bộ sưu tập (AndroidTest.xml
) thông qua tính năng phân đoạn và đạt được hiệu suất tốc độ tốt nhất trong quá trình thực thi liên tục trong phòng thí nghiệm. Chúng tôi sẽ cố gắng mô tả các tuỳ chọn theo cách chung cùng với lý do sử dụng từng tuỳ chọn.
Khi chạy liên tục một bộ trong phòng thí nghiệm, bộ đó thường được phân đoạn trên một số thiết bị để giảm tổng thời gian hoàn tất. Bộ điều khiển thường cố gắng cân bằng thời gian thực thi của mỗi phân đoạn để giảm thiểu tổng thời gian hoàn thành (khi phân đoạn cuối cùng kết thúc); nhưng do bản chất của một số kiểm thử, chúng ta không phải lúc nào cũng có đủ khả năng tự kiểm tra và cần chủ sở hữu mô-đun điều chỉnh một số hành vi.
Có thể phân đoạn hay không thể phân đoạn?
Bạn có thể gắn thẻ một mô-đun (AndroidTest.xml
) bằng <option name="not-shardable" value="true" />
để thông báo cho dây đeo rằng mô-đun đó không được phân đoạn.
Trong một mô-đun thông thường, bạn nên để bộ điều khiển phân đoạn mô-đun của mình (hành vi mặc định). Tuy nhiên, trong một số trường hợp, bạn có thể muốn ghi đè hành vi đó:
- Khi việc thiết lập mô-đun của bạn tốn kém:
Việc phân đoạn mô-đun sẽ dẫn đến việc chuẩn bị (cài đặt APK, đẩy tệp, v.v.) có thể chạy một lần trên mỗi thiết bị liên quan. Nếu quá trình thiết lập mô-đun của bạn mất nhiều thời gian và tốn kém, đồng thời không đáng để sao chép so với thời gian chạy của kiểm thử, thì bạn nên gắn thẻ mô-đun của mình là không thể phân đoạn.
- Khi số lượng kiểm thử trong mô-đun của bạn thấp:
Việc phân đoạn một mô-đun sẽ dẫn đến tất cả các trường hợp kiểm thử có thể thực thi độc lập trên các thiết bị khác nhau. Điều này liên quan đến điểm đầu tiên; nếu số lượng kiểm thử thấp, bạn có thể chỉ có một kiểm thử hoặc không có kiểm thử nào trong một số phân mảnh, điều này sẽ khiến mọi bước chuẩn bị trở nên khá tốn kém. Ví dụ: việc cài đặt APK cho một trường hợp kiểm thử thường không đáng.
Kiểm thử đo lường: Số lượng phân đoạn tối đa?
Một kiểm thử đo lường chạy qua AndroidJUnitTest sẽ không hiển thị cho dây đeo số lượng kiểm thử thuộc đo lường cho đến khi chúng ta thực sự cài đặt và chạy APK. Các thao tác này tốn kém và không thể thực thi tại thời điểm phân đoạn cho tất cả các mô-đun trong bộ công cụ.
Bộ công cụ có thể phân đoạn quá mức kiểm thử đo lường và kết thúc bằng một số phân đoạn trống; việc phân đoạn kiểm thử đo lường với 5 bài kiểm thử trong 6 phân đoạn sẽ dẫn đến 5 phân đoạn có 1 bài kiểm thử và 1 phân đoạn không có bài kiểm thử nào. Mỗi phân đoạn trong số này sẽ yêu cầu cài đặt APK tốn kém.
Vì vậy, khi số lượng kiểm thử trong APK kiểm thử đo lường thấp, việc gắn thẻ mô-đun bằng <option name="not-shardable" value="true" />
sẽ cho phép bộ harness biết việc phân đoạn mô-đun đó là không đáng.
Trình chạy AndroidJUnitTest
có một tuỳ chọn đặc biệt cho phép chỉ định số lượng mảnh tối đa được phép phân mảnh: <option name="ajur-max-shard" value="5" />
.
Điều này cho phép bạn chỉ định số lần tối đa có thể phân đoạn đo lường bất kể số lượng phân đoạn được yêu cầu ở cấp lệnh gọi. Theo mặc định, hoạt động đo lường sẽ được phân đoạn thành số lượng phân đoạn được yêu cầu cho lệnh gọi.
Ví dụ: nếu APK kiểm thử đo lường của bạn chỉ chứa hai trường hợp kiểm thử nhưng bạn vẫn muốn phân đoạn APK đó, thì việc có giá trị ajur-max-shard
là 2
sẽ đảm bảo bạn không tạo các phân đoạn trống.