Paketi yeniden deneme özelliğini kullanma

Paketler genellikle birkaç test modülü içerir ve oldukça büyük bir test veri kümesi boyutuna ulaşabilir. Örneğin, Android Compatibility Test Suite (CTS) yüzlerce modül ve yüz binlerce test durumu içerir.

Kötü izolasyon nedeniyle çok sayıda test başarısız olabilir. veya cihazlar kötü bir durumda kalacak.

Süit yeniden deneme özelliği bu durumları ele almak için tasarlanmıştır: Kararsızlığı ve zayıf izolasyonu ortadan kaldırmak amacıyla, yalnızca süitlerin tamamını değil, yalnızca hataları yeniden denemenizi sağlar. Bir test sürekli olarak başarısız oluyorsa yeniden deneme de başarısız olur ve gerçek bir sorun olduğu konusunda çok daha güçlü bir sinyal alırsınız.

Paketi yeniden deneme özelliğini uygulama

Sonuçların yeniden denenmesi, önceki sonuçları okumayı ve önceki çağrı.

Yeniden denemeyi yönlendiren ana arayüz ITestSuiteResultLoader'dir. Bu arayüz, önceki bir sonucu ve önceki komut satırını yüklemenize olanak tanır.

RetryRescheduler daha sonra bu bilgileri kullanarak önceki komutu yeniden oluşturur ve yeniden çalıştırmak için filtreleri kullanın.

Örnek paket yeniden denemesi: CTS

CTS'deki yeniden deneme yapılandırması şu şekildedir:

<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>

Bu, sınırı artıran süitlerin çoğu için geçerlidir. Örneğin, VTS değerleridir.

Aşağıdakilerle çağrılır:

cts-tradefed run retry --retry <session>

Oturum, önceki sonuçlar CTS konsolunda listelenerek bulunabilir:

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

Orijinal komutun bire bir aynısı yeniden yüklenir ve ek filtrelerle yeniden çalıştırılır. Bu, orijinal komutunuzda bazı seçenekler varsa bunların da yeniden deneme kapsamında olduğu anlamına gelir.

Örnek:

cts-tradefed run cts-dev -m CtsGestureTestCases

Yukarıdaki komutun yeniden denemesi her zaman CtsGestureTestCases ile sınırlıdır çünkü yalnızca bu komutu içeren bir komutu yeniden deniyoruz.

CTS stili paket için yeniden denemeyi yapılandırma

Yeniden denemenin çalışması için önceki sonuçların proto biçimindedir. Aşağıdakilerin eklenmesi gerekir:

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

Bu, ana komutun XML yapılandırmasına eklenmelidir ve sonuç klasöründe bir test-record.pb dosyası oluşturulur.

CTS yeniden denemesi, yeniden deneme çağrısını hazırlamak için test-record.pb ve mevcut test_result.xml'un bir kombinasyonundan veri yükler.