Mengonfigurasi pengujian ACTS

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 perintah adb logcat untuk mengumpulkan log adb. Secara default, adb logcat -v threadtime -b all digunakan. Jika adb_logcat_param disetel, bagian -b all akan ditimpa. Misalnya, menetapkan adb_logcat_param ke -b radio akan mengubah perintah menjadi adb logcat -v threadtime -b radio.