Gunakan percobaan ulang suite

Sebuah rangkaian cenderung menyertakan beberapa modul pengujian dan dapat mencapai ukuran korpus pengujian yang cukup besar. Misalnya, Android Compatibility Test Suite (CTS) mencakup ratusan modul dan ratusan ribu kasus pengujian.

Ada kemungkinan sejumlah besar pengujian gagal karena isolasi yang buruk atau kondisi perangkat yang buruk.

Fitur coba ulang suite dimaksudkan untuk mengatasi kasus-kasus tersebut: Fitur ini memungkinkan Anda mencoba ulang kegagalan saja, bukan rangkaian lengkap untuk mengesampingkan kelemahan dan isolasi yang buruk. Jika suatu pengujian terus-menerus gagal, percobaan ulang juga gagal; dan Anda mendapatkan sinyal yang lebih kuat bahwa ada masalah nyata.

Terapkan percobaan ulang rangkaian

Percobaan ulang hasil melibatkan membaca hasil sebelumnya dan menjalankan kembali pemanggilan sebelumnya.

Antarmuka utama yang mendorong percobaan ulang adalah ITestSuiteResultLoader , yang memungkinkan Anda memuat hasil sebelumnya, dan baris perintah sebelumnya.

RetryRescheduler kemudian menggunakan informasi ini untuk membuat ulang perintah sebelumnya dan mengisi beberapa filter untuk menjalankan kembali pengujian yang gagal atau tidak dijalankan sebelumnya.

Contoh percobaan ulang suite: CTS

Konfigurasi coba lagi di CTS adalah:

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

Ini berlaku untuk sebagian besar suite yang memperluasnya, misalnya VTS .

Itu akan dipanggil dengan:

cts-tradefed run retry --retry <session>

Sesi ini akan ditemukan dengan mencantumkan hasil sebelumnya di konsol 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

Perintah asli yang persis akan dimuat ulang dan dijalankan kembali dengan filter tambahan. Artinya, jika perintah awal Anda menyertakan beberapa opsi, opsi tersebut juga merupakan bagian dari percobaan ulang.

Misalnya:

cts-tradefed run cts-dev -m CtsGestureTestCases

Percobaan ulang di atas selalu terikat pada CtsGestureTestCases karena kita mencoba ulang perintah yang hanya melibatkannya.

Konfigurasikan percobaan ulang untuk rangkaian gaya CTS

Agar percobaan ulang berfungsi, hasil sebelumnya perlu diekspor dalam format proto. Hal-hal berikut ini perlu ditambahkan:

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

Ini perlu ditambahkan ke konfigurasi XML dari perintah utama, dan ini menghasilkan file test-record.pb yang dibuat di folder hasil.

Percobaan ulang CTS kemudian memuat data dari kombinasi test-record.pb dan test_result.xml yang ada untuk mempersiapkan pemanggilan percobaan ulang.