Halaman ini memberikan ringkasan library SDV Test Framework dan memandu Anda dalam menyiapkan, mengonfigurasi, dan menjalankan pengujian. Gunakan Framework Pengujian SDV untuk pengujian menyeluruh. Alat ini dibangun di Mobly; Anda menulis pengujian di Python.
Menyiapkan lingkungan
Halaman ini mengasumsikan bahwa Anda telah menyiapkan workstation untuk SDV. Untuk menjalankan
pengujian Framework, instal virtualenv.
Dependensi Python
Pendekatan yang direkomendasikan untuk mengelola dependensi di Android adalah mengemas pengujian, Python, dan dependensinya sebagai file yang dapat dieksekusi menggunakan konfigurasi build. Anda harus mengikuti pendekatan ini di repositori pengujian SDV.
Library SDV Test Framework menyediakan dependensi ini secara default:
moblyabsl-pyDiperlukan untuk menggunakan parameterisasi dalam pengujian.pexpectDiperlukan untuk fungsionalitas perintah interaktif.ptyprocessDiperlukan untuk fungsionalitas perintah interaktif.
Jika Anda memerlukan dependensi khusus pengujian, sertakan dalam file Android.bp
pengujian:
python_test_host {
…
libs: [
"<DEPENDENCY1",
"<DEPENDENCY2",
…
],
…
}
Jenis uji sistem
Anda membuat pengujian sistem menggunakan SDV Test Framework. Framework membedakan jenis berikut. Kategorikan pengujian dengan benar:
- Pengujian contoh: Jalankan layanan contoh SDV dan verifikasi bahwa hasilnya cocok dengan output yang diharapkan.
- Pengujian E2E: Jangan gunakan layanan contoh SDV.
- Pengujian jangka panjang: Dirancang untuk periode eksekusi yang diperpanjang.
- Pengujian performa: Gunakan library
perfetto. - Pengujian hardware: Dirancang untuk dijalankan secara eksklusif di perangkat fisik, bukan di Cuttlefish (CF).
Membuat pengujian
Semua pengujian yang ditulis menggunakan framework harus berada di repositori pengujian. Lokasi persis pengujian bergantung pada jenisnya.
Mengonfigurasi pengujian
Konfigurasi semua pengujian agar berjalan menggunakan atest dan CATBox.
Mengonfigurasi pengesahan
Framework ini menyediakan template untuk pengujian satu, dua, dan tiga virtual machine (VM). Tambahkan kode berikut ke file Android.bp Anda:
Satu VM
python_test_host {
...
test_config_template: ":sdv_one_device",
}
Dua VM
python_test_host {
...
test_config_template: ":sdv_two_devices",
}
Tiga VM
python_test_host {
...
test_config_template: ":sdv_three_devices",
}
Template default sudah cukup untuk sebagian besar pengujian. Hindari membuat konfigurasi kustom kecuali ada alasan yang kuat.
Memperbarui waktu tunggu default
Waktu tunggu default sudah cukup untuk menjalankan pengujian secara lokal.
Jika pengujian Anda gagal secara lokal karena waktu tunggu habis, pertimbangkan untuk membaginya menjadi beberapa pengujian yang berbeda. Pengujian yang sangat panjang dengan banyak kasus pengujian dapat menyebabkan hambatan dalam eksekusi.
Jika Anda harus menetapkan waktu tunggu yang lebih tinggi daripada default, lanjutkan membaca.
Mengganti waktu tunggu default
Framework tidak mendukung perluasan template untuk eksekusi atest.
Oleh karena itu, gunakan template yang disediakan yang menawarkan waktu tunggu yang lebih lama.
Pengujian panjang satu VM
python_test_host {
...
test_config_template: ":sdv_one_device_long_test",
}
Pengujian panjang dua VM
python_test_host {
...
test_config_template: ":sdv_two_devices_long_test",
}
Tambahkan komentar yang dengan jelas menunjukkan tujuan penggunaan template ini dan menjelaskan alasan waktu tambahan diperlukan (misalnya, jika pengujian memerlukan download artefak yang membutuhkan waktu tertentu).
Mengirim file ke perangkat
Langkah-langkah berikut menjelaskan cara mengirim file ke perangkat untuk konfigurasi atest.
Mengirim file ke perangkat
Framework tidak mendukung perluasan template untuk eksekusi atest.
Oleh karena itu, Anda harus membuat file AndroidTest.xml yang sepenuhnya menggantikan
template default dan menyertakan opsi target_preparer yang sesuai untuk
perangkat.
Salin konten template:
sdv-one-device.xmlsdv-two-devices.xmlsdv-three-devices.xml
Perbarui
{MODULE}dengan nama modul pengujian Anda.Tambahkan
com.android.tradefed.targetprep.PushFilePreparerke setiap perangkat.
<device name="device1">
<target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
<option name="cleanup" value="true" />
<option name="push-file" key="<FILE_NAME>" value="<REMOTE_FILE_PATH>" />
</target_preparer>
</device>
Mengonfigurasi CATBox
Untuk menjalankan pengujian sebagai rangkaian, konfigurasi CATBox diperlukan.
Buat file konfigurasi baru di
libraries/sdv/sdv_catbox/res/config/dan ikuti konvensi penamaan berikut:- Contoh pengujian:
sdv-sample-<NAME>-test.xml - Pengujian E2E:
sdv-e2e-<NAME>-test.xml - Pengujian yang berjalan lama:
sdv-long-running-<NAME>-test.xml - Uji performa:
sdv-performance-<NAME>-test.xml - Pengujian hardware:
sdv-hw-<NAME>-test.xml
- Contoh pengujian:
Tambahkan informasi yang sesuai berdasarkan jenis pengujian:
Konfigurasi pengujian satu VM
<configuration description="SDV <NAME> Test">
<!-- Template for Device Configuration -->
<template-include name="device-config" default="sdv-device-config/one-device" />
<!-- Plan. Use the same name as the file name -->
<option name="plan" value="<CONFIG_FILE_NAME>"/>
<!-- Test: mobly-par-file-name should match the module name -->
<option name="mobly-host:mobly-par-file-name" value="<ModuleName>" />
</configuration>
Konfigurasi pengujian dua VM
<configuration description="SDV <NAME> Test">
<!-- Template for Device Configuration -->
<template-include name="device-config" default="sdv-device-config/two-devices" />
<!-- Plan. Use the same name as the file name -->
<option name="plan" value="<CONFIG_FILE_NAME>"/>
<!-- Test: mobly-par-file-name should match the module name -->
<option name="mobly-host:mobly-par-file-name" value="<ModuleName>" />
</configuration>
Konfigurasi pengujian tiga VM
<!-- Copyright 2025 Google LLC -->
<configuration description="SDV <NAME> Test">
<!-- Template for Device Configuration -->
<template-include name="device-config" default="sdv-device-config/three-devices" />
<!-- Plan. Use the same name as the file name -->
<option name="plan" value="<CONFIG_FILE_NAME>"/>
<!-- Test: mobly-par-file-name should match the module name -->
<option name="mobly-host:mobly-par-file-name" value="<ModuleName>" />
</configuration>
Template default sudah cukup untuk sebagian besar pengujian. Hindari membuat konfigurasi kustom kecuali ada alasan yang kuat.
Memperbarui waktu tunggu default
Jika waktu tunggu default tidak cukup untuk pengujian, Anda dapat menggantinya.
Mengganti waktu tunggu default
Untuk mengganti waktu tunggu default, tambahkan kode berikut di akhir file konfigurasi Anda. Pengujian panjang harus memiliki waktu tunggu maksimum 10 menit.
<!-- Long Test - 10 minutes timeout: <REASON> -->
<option name="mobly-host:mobly-test-timeout" value="600000" />
Mengirim file ke perangkat
Bagian berikut menjelaskan cara mengirim file ke perangkat saat mengonfigurasi CATBox.
Mengirim file ke perangkat
Untuk mengirim file ke perangkat yang sesuai, tambahkan konfigurasi berikut setelah opsi plan:
<!-- Automatically pushes config file to device-->
<device name="device1">
<target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
<option name="cleanup" value="true" />
<option name="push-file"
key="<FILE_NAME>"
value="<REMOTE_FILE_PATH>"
/>
</target_preparer>
</device>
Jika Anda memerlukan file di setiap perangkat, tambahkan konfigurasi untuk setiap perangkat
(misalnya, name=device1, name=device2).
Eksekusi uji
Petunjuk ini mengasumsikan bahwa Anda telah menyelesaikan penyiapan lingkungan SDV yang berfungsi.
Menyiapkan lingkungan
Framework tidak memulai instance Perangkat Virtual Cloud (CVD), jadi Anda harus memulainya sebelum menjalankan pengujian.
Siapkan lingkungan dan luncurkan target SDV:
. build/envsetup.sh lunch <TARGET>Mulai instance CVD pertama:
cvd create --config=sdv_core_instance1Mulai instance CVD kedua (untuk pengujian multi-VM):
cvd create --config=sdv_core_instance2Mulai instance CVD ketiga (untuk pengujian multi-VM):
cvd create --config=sdv_core_instance3
Jalankan atest
atest <TestModuleName>
Menjalankan CATBox
Perintah ini mengasumsikan bahwa Anda berada di direktori root repositori.
- Bangun CATBox:
m catbox - (Opsional) Melihat semua rencana pengujian SDV yang tersedia di CATBox:
out/host/linux-x86/catbox/android-catbox/tools/catbox-tradefed l p | grep sdv-
Jalankan pengujian:
Menjalankan satu pengujian VM
NOTIFY_AS_NATIVE=0.0.0.0:6520 out/host/linux-x86/catbox/android-catbox/tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --{device1}serial 0.0.0.0:6520
Menjalankan pengujian dua VM
NOTIFY_AS_NATIVE=0.0.0.0:6520,0.0.0.0:6521 out/host/linux-x86/catbox/android-catbox/tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --{device1}serial 0.0.0.0:6520 --{device2}serial 0.0.0.0:6521
Menjalankan pengujian tiga VM
NOTIFY_AS_NATIVE=0.0.0.0:6520,0.0.0.0:6521,0.0.0.0:6522 out/host/linux-x86/catbox/android-catbox/tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --{device1}serial 0.0.0.0:6520 --{device2}serial 0.0.0.0:6521 --{device3}serial 0.0.0.0:6522