Halaman ini menjelaskan cara mengonfigurasi pengujian ACTS.
Sumber konfigurasi
Android Comms Test Suite (ACTS) memiliki tiga sumber konfigurasi utama:
- Antarmuka baris perintah (CLI)
- File konfigurasi ACTS
- Variabel lingkungan
Nilai dari sumber ini digabungkan menjadi satu konfigurasi yang digunakan untuk menjalankan pengujian ACTS. Jika nilai ditentukan di beberapa lokasi, nilai akan ditimpa berdasarkan urutan di atas (di mana CLI diutamakan).
Catatan tentang variabel lingkungan
Hati-hati saat menggunakan variabel lingkungan untuk pengujian ACTS. Nilai-nilai ini paling tidak terlihat oleh pengguna, dan tidak direkomendasikan untuk digunakan di luar stasiun kerja pengembang. Variabel lingkungan dinonaktifkan selama pengujian otomatis ACTS untuk mencegah keracunan lingkungan.
Variabel konfigurasi yang diperlukan
Setiap tes ACTS membutuhkan variabel berikut untuk ditetapkan.
Jalur tes ACTS
ACTS berjalan dari satu lokasi entri utama. Akibatnya, lokasi jalur pengujian tidak diketahui oleh pelari.
Setel lokasi jalur pengujian menggunakan variabel lingkungan ACTS_TESTPATH
atau dengan tanda -tp
/ --testpaths
di baris perintah. Nilainya bisa berupa daftar direktori.
kelas tes ACTS
ACTS harus tahu kelas tes apa yang harus dijalankan. Ini bisa berupa regex atau daftar nama kelas pengujian.
Untuk menyetel nilai ini, gunakan flag -tc
/ --test_class
di baris perintah. Perhatikan bahwa flag ini juga menerima daftar nama kelas. Nama kelas harus cocok dengan nama file terkait, misalnya, SampleTest
harus ditemukan di SampleTest.py
.
Jalur log ACTS
ACTS harus memiliki lokasi untuk menulis log selain STDOUT. ACTS menulis log debug lengkap yang berisi data yang dapat membantu menentukan mengapa beberapa pengujian gagal. Untuk mencegah kekacauan, ACTS tidak menulis log ini ke STDOUT.
Untuk menyetel jalur log, gunakan variabel lingkungan ACTS_LOGPATH
atau tanda -lp
/ --logpath
di baris perintah.
jalur konfigurasi ACTS
Untuk menjalankan tes, ACTS harus tahu testbed apa yang ada. Konfigurasi ACTS berisi semua perangkat di testbed, dan semua parameter pengujian atau lingkungan khusus yang mungkin diperlukan. Tetapkan nilai ini pada baris perintah menggunakan -c
/ --config
.
Jika ada beberapa testbed dalam konfigurasi, ACTS menjalankan tes untuk setiap testbed. Untuk hanya menjalankan pengujian untuk satu testbed dalam daftar, gunakan argumen baris perintah -tb/--testbed <NAME>
.
Contoh stasiun kerja lokal
Sebagian besar pengguna ACTS mengembangkan pada satu cabang repo Android, dan memiliki pengaturan yang mirip dengan yang ini:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='~/android/<REPO_BRANCH>/tools/test/connectivity/acts_tests/'
# On cmdline
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
Jika pengguna ACTS berjalan di banyak cabang, mereka sering menjalankan ACTS dari direktori acts/framework
, dan menggunakan jalur relatif untuk ACTS_TESTPATH
:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='../acts_tests/'
# On cmdline
$ cd ~/android/master/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
Mengonfigurasi testbeds Anda
File konfigurasi ACTS menyediakan semua informasi yang diperlukan untuk menjalankan pengujian pada perangkat keras:
{
"testbed": {
"my_testbed": {
"my_testbed_value": "value"
},
"another_testbed": {
"AndroidDevice": [
"53R147"
]
}
},
"user_parameter_1": "special environment value",
"user_parameter_2": "other special value"
}
Unit dasar dari konfigurasi ini adalah testbed. Dalam contoh konfigurasi di atas, testbed my_testbed
dibuat dengan nilai testbed tunggal. Testbed kedua, another_testbed
, memiliki konfigurasi pengontrol khusus yang menyimpan informasi untuk daftar perangkat Android. Perangkat ini disimpan dalam daftar perangkat di bawah self.android_devices
. Perhatikan bahwa jika testbed tidak menentukan objek AndroidDevice
, kelas pengujian yang mengharapkan objek AndroidDevice
memunculkan pengecualian. Untuk daftar lengkap konfigurasi pengontrol yang didukung yang disertakan dengan ACTS, lihat daftar di /acts/framework/acts/controllers/
.
Semua nilai lain (yang bukan nilai khusus yang disebutkan di bagian di atas) disimpan di self.user_params
sebagai kamus. Ini adalah tempat yang baik untuk menyimpan informasi lingkungan atau pengujian seperti apakah ponsel berada dalam lingkungan data terukur, atau berapa lama untuk mengumpulkan data untuk pengujian.
Kasing khusus untuk Perangkat Android
Untuk kenyamanan pengembangan saat Anda ingin memiliki beberapa perangkat dengan properti berbeda yang tersedia, AndroidDevice
memiliki beberapa kasus khusus.
format konfigurasi JSON
Semua pasangan kunci/nilai di JSON di bawah disetel ke objek AndroidDevice
yang sesuai. Jika konfigurasi mencoba menimpa parameter yang ditentukan dalam atribut AndroidDevice
, ControllerError
akan ditampilkan.
"AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
{"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]
Kemudian dalam skrip pengujian, Anda dapat menggunakan fungsi filter untuk mengambil perangkat yang benar dan mengakses parameter tambahan dari objek perangkat:
def setup_class(self):
self.pub = next(filter(lambda ad: ad.label == 'publisher',
self.android_devices))
self.sub = next(filter(lambda ad: ad.label == 'user_parameter_1',
self.android_devices))
Parameter opsional
Berikut ini adalah parameter opsional:
-
adb_logcat_param
: String yang ditambahkan ke perintahadb logcat
untuk mengumpulkan log adb. Secara default,adb logcat -v threadtime -b all
digunakan. Jikaadb_logcat_param
disetel, bagian-b all
akan ditimpa. Misalnya, menyeteladb_logcat_param
ke-b radio
mengubah perintah menjadiadb logcat -v threadtime -b radio
.