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 tersebut akan ditimpa berdasarkan urutan di atas (dengan CLI yang diutamakan).
Catatan tentang variabel lingkungan
Berhati-hatilah saat menggunakan variabel lingkungan untuk pengujian ACTS. Nilai-nilai ini paling sedikit 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 memerlukan variabel berikut untuk ditetapkan.
jalur tes ACTS
ACTS berjalan dari satu lokasi masuk utama. Akibatnya, lokasi jalur tes tidak diketahui oleh pelari.
Tetapkan 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 mengetahui kelas tes apa yang akan dijalankan. Ini bisa berupa regex atau daftar nama kelas pengujian.
Untuk menetapkan nilai ini, gunakan tanda -tc
/ --test_class
di baris perintah. Perhatikan bahwa flag ini juga menerima daftar nama kelas. Nama kelas harus cocok dengan nama file yang sesuai, 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 mengatur jalur log, gunakan variabel lingkungan ACTS_LOGPATH
atau tanda -lp
/ --logpath
di baris perintah.
jalur konfigurasi ACTS
Untuk menjalankan tes, ACTS harus mengetahui testbed apa yang ada. Konfigurasi ACTS berisi semua perangkat di testbed, dan parameter pengujian atau lingkungan khusus apa pun yang mungkin diperlukan. Tetapkan nilai ini pada baris perintah menggunakan -c
/ --config
.
Jika ada beberapa testbed dalam konfigurasi, ACTS menjalankan pengujian untuk setiap testbed. Untuk hanya menjalankan pengujian pada 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 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/main/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
Mengonfigurasi testbed 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 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 self.android_devices
. Perhatikan bahwa jika testbed tidak menentukan objek AndroidDevice
, kelas pengujian yang mengharapkan objek AndroidDevice
akan memunculkan pengecualian. Untuk daftar lengkap konfigurasi pengontrol yang didukung yang disertakan dengan ACTS, lihat daftar di /acts/framework/acts/controllers/
.
Semua nilai lainnya (yang bukan nilai khusus yang disebutkan pada 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 pengumpulan data untuk pengujian.
Kasus khusus untuk Perangkat Android
Untuk kenyamanan pengembangan saat Anda ingin memiliki beberapa perangkat dengan properti berbeda, AndroidDevice
memiliki beberapa kasus khusus.
Format konfigurasi JSON
Semua pasangan kunci/nilai dalam 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
: Sebuah 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
akan mengubah perintah menjadiadb logcat -v threadtime -b radio
.