Mengonfigurasi Tes ACTS

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 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, menyetel adb_logcat_param ke -b radio mengubah perintah menjadi adb logcat -v threadtime -b radio .