Penyediaan Perangkat Pengujian

Untuk perangkat yang menjalankan Android 6 atau Android 7, Anda dapat menguji penyediaan perangkat menggunakan Test Harness Android Enterprise (AE), yang merupakan rangkaian pengujian untuk memvalidasi kompatibilitas perusahaan perangkat Android. Harness mencakup aplikasi dukungan, kasus pengujian, file konfigurasi, dan runner pengujian ( afw-test-tradefed ) yang dibangun di atas cts-tradefed . Sebelum menyiapkan AE Test Harness, pastikan untuk menyelesaikan Provisioning for Device Administration .

Untuk perangkat yang menjalankan Android 8 atau lebih tinggi, penggunaan AE Test Harness tidak digunakan lagi .

Menyiapkan lingkungan pengembangan

Lingkungan pengembangan untuk AE Test Harness mirip dengan OS Android. Ikuti langkah-langkah di Persyaratan untuk menyiapkan mesin pengembangan.

Mengunduh kode sumber

Unduh kode sumber AE Test Harness menggunakan langkah-langkah dalam Mengunduh Sumber . Kode sumber AE Test Harness ada di proyek ./test/AfwTestHarness . Nama cabang menentukan versi AE Test Harness yang akan diunduh (setiap platform Android memiliki versi AE Test Harness yang terpisah). Misalnya, nama cabang untuk Android 7.0 Nougat adalah afw-test-harness-nougat-dev . Untuk menginisialisasi repo dan mengunduh kode sumber untuk cabang ini, gunakan perintah berikut:

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
repo init -u https://android.googlesource.com/platform/manifest -b afw-test-harness-nougat-dev
repo sync -j24

Untuk memeriksa kode sumber untuk versi yang berbeda, tentukan cabang dengan tag yang sesuai. Cabang yang tersedia antara lain:

Nama cabang Platform Android yang Didukung
afw-test-harness-nougat-dev Android 7.0
afw-test-harness-2.1 Android 7.0
afw-test-harness-marshmallow-dev Android 6.0
afw-test-harness-1.5 Android 6.0

Proyek ketergantungan lain yang diperlukan untuk membangun harness juga diunduh dengan kode sumber.

Melihat di Android Studio

Untuk melihat dan mengedit kode sumber di Android Studio:

  1. Jalankan perintah berikut
    make idegen
    development/tools/idegen/idegen.sh
    
  2. Di Android Studio, buka android.ipr .

Kode sumber AE Test Harness ada di test/AfwTestHarness .

Mengonfigurasi Harness Uji AE

Anda dapat menyesuaikan harness dengan mengonfigurasi test/AfwTestHarness/afw-test.props . Untuk menjalankan harness dengan sukses, selesaikan langkah-langkah berikut:

  1. Konfigurasikan jaringan Wi-Fi di afw-test.props dengan properti berikut:
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. Dapatkan setidaknya satu akun dari domain yang terikat ke Test DPC sebagai pengontrol kebijakan perangkatnya. Tentukan detailnya di afw-test.props dengan properti berikut:
    work_account_username
    work_account_password
    

    AE Test Harness menggunakan Test DPC untuk menguji alur penyediaan, jadi akun harus mengikat ke Test DPC untuk menjalankan test harness.

Membangun Harness Uji AE

Inisialisasi konfigurasi build menggunakan:

source build/envsetup.sh
lunch

Pilih jenis perangkat dan tekan Enter .

Bangun harness menggunakan:

make afw-test-harness -j32

Ini membuat direktori ( out/host/linux-x86/afw-th/android-cts ) dengan semua binari, file konfigurasi, dan alat yang diperlukan untuk menjalankan test harness. Direktori ini juga di-zip ke dalam file ( out/host/linux-x86/afw-th/android-afw-test-harness.zip ) untuk distribusi.

Menjalankan Harness Uji AE

Gunakan langkah-langkah berikut untuk menjalankan AE Test Harness:

  1. Di lingkungan build Anda, luncurkan test runner menggunakan:
    afw-test-tradefed
    
    Ini memulai konsol cts-tf , memuat rencana pengujian, kasus pengujian, dan afw-test.props dari out/host/linux-x86/afw-th/android-cts .
  2. Dari folder android-afw-test-harness.zip yang telah dibuka ritsletingnya, luncurkan test runner menggunakan:
    cts-tf> ./android‐cts/tools/afw-test‐tradefed
    
    Ini memuat rencana pengujian, kasus pengujian, dan afw-test.props dari direktori android-cts . Pastikan ./android‐cts/repository/testcases/afw-test.props memiliki akun kerja dan konfigurasi Wi-Fi.
  3. Jalankan rencana pengujian. Setiap rencana pengujian adalah file XML yang berisi sekumpulan paket pengujian dari direktori paket pengujian AfwTestHarness/tests . Rencana umum meliputi:
    • afw-userdebug-build . Berisi semua paket pengujian yang memerlukan build userdebug.
    • afw-user-build . Berjalan pada build pengguna tetapi perangkat uji harus disiapkan dengan benar, termasuk menyelesaikan penyiapan awal dan mengaktifkan USB debugging.

    Untuk menjalankan rencana pengujian afw-userdebug-build , gunakan:
    cts-tf> run cts --plan afw-userdebug-build
    
    Untuk melihat semua rencana pengujian, gunakan list plans perintah . Untuk melihat definisi paket, lihat out/host/linux-x86/afw-th/android-cts/repository/plans .
  4. Jalankan paket pengujian. Untuk menjalankan satu paket pengujian, gunakan
    cts-tf> run cts --package com.android.afwtest.NfcProvisioning
    
    Untuk melihat semua paket, gunakan perintah list packages . Untuk opsi lainnya, gunakan perintah run cts --help .

Men-debug Harness Uji AE

Jalankan semua perintah di konsol afw-test-tradefed ( cts-tf ), yang dapat Anda luncurkan dengan menjalankan afw-test-tradefed .

  • Tampilkan lebih banyak informasi dengan flag -l INFO atau -l DEBUG . Contoh:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG
    
  • Jalankan test harness pada perangkat tertentu dengan flag -s . Contoh:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG -s device_sn
    
  • Jalankan test harness pada semua perangkat yang terhubung dengan --all-devices . Contoh:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG --all-devices
    
  • Lihat eksekusi yang sedang berjalan menggunakan list invocations atau li .
  • Lihat ringkasan eksekusi pengujian sebelumnya menggunakan list results atau lr .
  • Lihat perintah list lainnya menggunakan help list .
  • Pantau logcat real-time dengan filter menggunakan afwtest , lalu buka terminal lain dan mulai logcat menggunakan: adb logcat | grep afwtest . Setelah tes selesai:
    • Lihat log in out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time . Logcat perangkat lengkap dan log host ( afw-test-tradefed logs) disimpan dalam file zip terpisah.
    • Temukan informasi yang relevan dengan menelusuri logcat perangkat untuk afwtest . Contoh: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
    • Untuk melihat log lengkap afw-test-tradefed, gunakan: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /host_log_ random-number .zip
  • Paket pengujian mengotomatiskan alur penyediaan perusahaan dengan menelusuri halaman UI dan merekam log navigasi di file logcat perangkat untuk setiap halaman. Contoh: afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage
    Halaman UI untuk paket pengujian com.android.afwtest.NfcProvisioning meliputi:
    • com.android.afwtest.uiautomator.pages.managedprovisioning.NfcProvisioningPage
    • com.android.afwtest.uiautomator.pages.PageSkipper
    • com.android.afwtest.uiautomator.pages.LandingPage
  • Jika pengujian gagal selama proses penyediaan, logcat berisi kesalahan yang mirip dengan:
    TestRunner: java.lang.RuntimeException: Failed to load page: com.android.afwtest.uiautomator.pages.packageinstaller.DeviceAccessPage
    
    Ini biasanya disebabkan oleh kesalahan di halaman UI sebelumnya atau halaman yang gagal dimuat, jadi coba temukan pesan kesalahan lain di logcat sebelum kesalahan ini , lalu coba untuk mereproduksinya secara manual mengikuti alur penyediaan.
  • Jika paket pengujian gagal:
    • Tangkapan layar disimpan ke out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time menggunakan sintaks berikut: screenshot-test_ test_class_full_name _ test_case_name - random_number .png . Informasi ini juga dicatat di log host.
    • Laporan bug disimpan ke out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time sebagai: bug- test_class_full_name _ test_case_name - random_number .zip .
  • Setelah semua paket pengujian dijalankan, tangkapan layar diambil dan disimpan ke out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time sebagai: screenshot- random_number .png . Informasi ini juga dicatat di log host.

FAQ

Bisakah saya menjalankan rencana pengujian afw-userdebug-build pada perangkat yang di-flash dengan build pengguna?

Tidak. Paket pengujian di afw-userdebug-build plan factory reset perangkat pengujian sebelum menjalankan alur pengujian yang sebenarnya dan memerlukan adb debugging untuk diaktifkan secara otomatis. Dengan build pengguna, debug adb hanya dapat diaktifkan dengan mengubah setelan secara manual di opsi Pengembang.

Bisakah saya menjalankan rencana pengujian afw-user-build pada perangkat yang di-flash dengan build userdebug?

Ya, tetapi kami menyarankan Anda menjalankan rencana pengujian ini pada build pengguna.

Terkadang pengujian saya gagal karena pemuatan UI memakan waktu terlalu lama. Bagaimana saya bisa memperbaiki ini?

Konfigurasikan pengaturan timeout_size di ./android-cts/repository/testcases/afw-test.props . Pengaturan yang valid adalah: S, M, L, XL, XXL.

Paket pengujian com.android.afwtest.NfcProvisioning (atau SuwDoProvisioning ) gagal pada perangkat saya karena pengaturan awal yang diinstal menunjukkan UI yang disesuaikan (seperti Syarat & Ketentuan) setelah penyediaan selesai. Bagaimana saya bisa melewati UI yang disesuaikan ini?

Harus ada UI minimal setelah proses penyediaan. Harness tes akan secara otomatis melewati UI tersebut jika UI memiliki tombol yang memiliki teks bermakna atau deskripsi konten yang berisi salah satu kata berikut: Lewati, Selesai, Selesai, Terima, Setuju, Berikutnya, Lanjutkan, atau Lanjutkan. Atau, Anda dapat menentukan tombol di afw-test.props untuk mengonfigurasi test harness untuk melewati UI Anda. Contoh:

oem_widgets=your_btn
your_btn.text=your_customized_text
your_btn.package=your_package
your_btn.action=click

Untuk menentukan beberapa widget, pisahkan menggunakan koma.

Paket pengujian com.android.afwtest.NfcProvisioning (atau SuwDoProvisioning ) gagal dan layar UI terakhir adalah "Verifikasi akun Anda". Mengapa hal ini terjadi dan bagaimana cara memulihkan perangkat pengujian?

Kegagalan ini terjadi karena paket pengujian sebelumnya gagal menghapus Perlindungan Penyetelan Ulang Pabrik di akhir pengujian. Anda harus memasukkan akun secara manual untuk membuka kunci perangkat.

Perangkat saya membutuhkan lebih banyak waktu untuk mengembalikan ke setelan pabrik. Bisakah saya memperpanjang batas waktu reset pabrik?

Ya. Konfigurasikan pengaturan factory_reset_timeout_min di afw-test.props . Pengaturan yang valid dalam hitungan menit; Anda dapat mengatur ke sejumlah menit yang bekerja dengan perangkat Anda.