Halaman ini menjelaskan cara mengonfigurasi pengujian ACTS.
Sumber konfigurasi
Android Comms Test Suite (ACTS) memiliki tiga sumber utama konfigurasi:
- Antarmuka command line (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 tersebut akan ditimpa berdasarkan urutan di atas (di mana CLI lebih diutamakan).
Catatan tentang variabel lingkungan
Hati-hati saat menggunakan variabel lingkungan untuk pengujian ACTS. Nilai ini paling kecil terlihat oleh pengguna, dan tidak direkomendasikan untuk digunakan di luar workstation developer. Variabel lingkungan dinonaktifkan selama pengujian otomatis ACTS untuk mencegah keracunan lingkungan.
Variabel konfigurasi yang diperlukan
Setiap pengujian ACTS mengharuskan variabel berikut ditetapkan.
Jalur pengujian ACTS
ACTS berjalan dari satu lokasi entri utama. Akibatnya, lokasi jalur pengujian tidak diketahui oleh pelari.
Tetapkan lokasi jalur pengujian menggunakan variabel lingkungan ACTS_TESTPATH
atau dengan flag -tp
/--testpaths
di command line. Nilainya bisa berupa daftar direktori.
Class uji ACTS
ACTS harus mengetahui class pengujian yang akan dijalankan. Ini dapat berupa ekspresi reguler atau daftar nama class pengujian.
Untuk menetapkan nilai ini, gunakan flag -tc
/--test_class
di command line. Perhatikan
bahwa flag ini juga menerima daftar nama class. Nama class harus cocok
dengan nama file yang sesuai, misalnya,
SampleTest
harus ditemukan dalam 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 alasan beberapa pengujian gagal. Untuk mencegah kekacauan, ACTS tidak menulis log ini ke STDOUT.
Untuk menetapkan jalur log, gunakan variabel lingkungan ACTS_LOGPATH
atau flag -lp
/--logpath
di command line.
Jalur konfigurasi ACTS
Untuk menjalankan pengujian, ACTS harus mengetahui testbed apa yang ada. Konfigurasi ACTS berisi semua perangkat di tempat pengujian, dan parameter uji khusus atau lingkungan yang mungkin diperlukan. Tetapkan nilai ini pada command line menggunakan -c
/--config
.
Jika ada beberapa testbed dalam konfigurasi, ACTS akan menjalankan pengujian
untuk setiap tempat pengujian. Untuk menjalankan pengujian hanya untuk satu testbed dalam daftar, gunakan
argumen command line -tb/--testbed <NAME>
.
Contoh workstation lokal
Sebagian besar pengguna ACTS mengembangkan di satu cabang repo Android, dan memiliki penyiapan yang mirip dengan yang satu 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 beberapa cabang, mereka sering kali 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/main/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
Mengonfigurasi tempat pengujian
File konfigurasi ACTS menyediakan semua informasi yang diperlukan untuk menjalankan pengujian pada perangkat hardware:
{
"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 konfigurasi ini adalah tempat pengujian. Dalam contoh konfigurasi
di atas, my_testbed
tempat pengujian dibuat dengan satu nilai tempat pengujian. Pengujian
kedua, another_testbed
, memiliki konfigurasi pengontrol khusus yang menyimpan
informasi untuk daftar perangkat Android. Perangkat ini disimpan dalam
daftar perangkat di bagian self.android_devices
. Perhatikan bahwa jika testbed
tidak menentukan objek AndroidDevice
, class pengujian yang mengharapkan
objek AndroidDevice
akan memunculkan pengecualian. Untuk daftar lengkap konfigurasi pengontrol
yang didukung dan disertakan dengan ACTS, lihat daftarnya di
/acts/framework/acts/controllers/
.
Semua nilai lain (yang bukan nilai khusus yang disebutkan pada bagian di atas) disimpan di self.user_params
sebagai kamus. Ini adalah tempat yang baik untuk menyimpan
lingkungan atau informasi pengujian, seperti apakah ponsel berada di lingkungan data
berkuota, atau berapa lama data dikumpulkan untuk pengujian.
Kasus khusus untuk AndroidDevice
Untuk memudahkan pengembangan saat Anda ingin memiliki beberapa perangkat dengan
properti berbeda yang tersedia, AndroidDevice
memiliki beberapa kasus
khusus.
Format konfigurasi JSON
Semua key-value pair dalam contoh JSON berikut ditetapkan 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 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, menetapkanadb_logcat_param
ke-b radio
akan mengubah perintah menjadiadb logcat -v threadtime -b radio
.