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:
- Jalankan perintah berikut
make idegen
development/tools/idegen/idegen.sh
- 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:
- 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)
- 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:
- Di lingkungan build Anda, luncurkan test runner menggunakan:
afw-test-tradefed
Ini memulai konsolcts-tf
, memuat rencana pengujian, kasus pengujian, danafw-test.props
dariout/host/linux-x86/afw-th/android-cts
. - 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, danafw-test.props
dari direktoriandroid-cts
. Pastikan./android‐cts/repository/testcases/afw-test.props
memiliki akun kerja dan konfigurasi Wi-Fi. - 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 pengujianafw-userdebug-build
, gunakan:cts-tf> run cts --plan afw-userdebug-build
Untuk melihat semua rencana pengujian, gunakanlist plans
perintah . Untuk melihat definisi paket, lihatout/host/linux-x86/afw-th/android-cts/repository/plans
. -
- Jalankan paket pengujian. Untuk menjalankan satu paket pengujian, gunakan
cts-tf> run cts --package com.android.afwtest.NfcProvisioning
Untuk melihat semua paket, gunakan perintahlist packages
. Untuk opsi lainnya, gunakan perintahrun 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
atauli
. - Lihat ringkasan eksekusi pengujian sebelumnya menggunakan
list results
ataulr
. - Lihat perintah
list
lainnya menggunakanhelp 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
- Lihat log in
- 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 pengujiancom.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
.
- Tangkapan layar disimpan ke
- 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.