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 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 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 akan mengubah perintah menjadi adb logcat -v threadtime -b radio .