Menggunakan percobaan ulang suite

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

Sejumlah besar pengujian dapat gagal karena isolasi yang buruk atau perangkat mengalami kondisi yang buruk.

Fitur coba ulang rangkaian dimaksudkan untuk mengatasi kasus tersebut: Fitur ini memungkinkan Anda mencoba ulang kegagalan saja, bukan seluruh rangkaian, untuk mengesampingkan ketidakstabilan dan isolasi yang buruk. Jika pengujian terus gagal, percobaan ulang juga akan gagal; dan Anda akan mendapatkan sinyal yang jauh lebih kuat bahwa ada masalah yang sebenarnya.

Menerapkan percobaan ulang suite

Percobaan ulang hasil melibatkan pembacaan hasil sebelumnya dan menjalankan ulang pemanggilan sebelumnya.

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

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

Contoh percobaan ulang rangkaian pengujian: CTS

Konfigurasi percobaan ulang 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>

Hal ini berlaku untuk sebagian besar suite yang memperluasnya, misalnya VTS.

Fungsi ini akan dipanggil dengan:

cts-tradefed run retry --retry <session>

Sesi 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 tepat akan dimuat ulang dan dijalankan kembali dengan filter tambahan. Artinya, jika perintah asli Anda menyertakan beberapa opsi, opsi tersebut juga merupakan bagian dari percobaan ulang.

Contoh:

cts-tradefed run cts-dev -m CtsGestureTestCases

Percobaan ulang di atas selalu terikat ke CtsGestureTestCases karena kita mencoba ulang perintah yang hanya melibatkan CtsGestureTestCases.

Mengonfigurasi percobaan ulang untuk rangkaian gaya CTS

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

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

Ini perlu ditambahkan ke konfigurasi XML perintah utama, dan akan menghasilkan pembuatan file test-record.pb di folder hasil.

CTS retry kemudian memuat data dari kombinasi test-record.pb dan test_result.xml yang ada untuk menyiapkan pemanggilan ulang.