Sebuah suite cenderung menyertakan beberapa modul pengujian dan dapat mencapai ukuran korpus pengujian yang cukup besar. Misalnya, Android Compatibility Test Suite (CTS) menyertakan ratusan modul dan ratusan ribu kasus uji.
Sejumlah besar pengujian mungkin gagal karena isolasi yang buruk atau perangkat mengalami kondisi buruk.
Fitur percobaan ulang suite dimaksudkan untuk mengatasi kasus-kasus tersebut: Ini memungkinkan Anda mencoba kembali kegagalan hanya alih-alih suite lengkap untuk mengesampingkan kerapuhan dan isolasi yang buruk. Jika sebuah tes secara konsisten gagal, percobaan ulang juga gagal; dan Anda mendapatkan sinyal yang jauh lebih kuat bahwa ada masalah yang sebenarnya.
Menerapkan percobaan ulang suite
Mencoba kembali hasil melibatkan membaca hasil sebelumnya dan menjalankan kembali doa 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 ulang hanya kegagalan sebelumnya atau pengujian yang tidak dijalankan.
Coba ulang rangkaian contoh: 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 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. Ini berarti bahwa jika perintah asli Anda menyertakan beberapa opsi, opsi tersebut juga merupakan bagian dari percobaan ulang.
Misalnya:
cts-tradefed run cts-dev -m CtsGestureTestCases
Coba lagi di atas selalu terikat ke CtsGestureTestCases
karena kami mencoba ulang perintah yang hanya melibatkannya.
Konfigurasi coba lagi untuk rangkaian gaya CTS
Agar percobaan ulang berfungsi, hasil sebelumnya perlu diekspor dalam format proto. 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.
CTS retry lalu memuat data dari kombinasi test-record.pb
dan test_result.xml
yang ada untuk menyiapkan permintaan coba lagi.