Halaman ini memberikan bantuan pemecahan masalah dan jawaban atas pertanyaan umum (FAQ) tentang cara menjalankan pengujian dengan Platform Perangkat Developer. Jika Anda tidak dapat menemukan yang Anda cari atau memerlukan bantuan tambahan, hubungi kami.
Pemecahan masalah
Mengapa pengujian saya perlu waktu begitu lama untuk dijalankan?
Saat Anda memilih perangkat dengan tingkat kapasitas tinggi di katalog Platform Perangkat Developer, pengujian dapat dimulai lebih cepat. Jika kapasitas perangkat rendah, pengujian mungkin perlu waktu lebih lama untuk berjalan. Jika jumlah pengujian yang dipanggil jauh lebih besar daripada kapasitas perangkat yang dipilih, pengujian dapat memerlukan waktu lebih lama untuk selesai.
Pengujian yang berjalan pada tingkat kapasitas perangkat apa pun mungkin memerlukan waktu lebih lama karena faktor berikut:
- Traffic, yang memengaruhi ketersediaan perangkat dan kecepatan pengujian.
- Kegagalan perangkat atau infrastruktur, yang dapat terjadi kapan saja. Untuk memeriksa apakah ada infrastruktur yang dilaporkan untuk Platform Perangkat Developer, lihat dasbor Google Cloud Personalized Service Health.
Untuk mempelajari lebih lanjut kapasitas perangkat di Developer Device Platform, lihat Katalog Perangkat.
Mengapa saya menerima hasil pengujian yang tidak meyakinkan?
Hasil pengujian yang tidak meyakinkan biasanya terjadi karena pengujian yang dibatalkan
atau error infrastruktur. Selain PASSED dan FAILED, Developer Device Platform
dapat menampilkan ERROR, TIMED_OUT, dan CANCELLED.
Error infrastruktur disebabkan oleh masalah internal Platform Perangkat Developer, seperti error jaringan atau perilaku perangkat yang tidak terduga. Platform Perangkat Developer secara internal mencoba ulang pengujian yang menghasilkan error infrastruktur beberapa kali sebelum melaporkan hasil yang tidak meyakinkan.
Untuk mengetahui penyebab error, ikuti langkah-langkah berikut:
- Periksa pemadaman layanan yang diketahui di dasbor Google Cloud Service Health.
Coba lagi pengujian di Platform Perangkat Developer untuk memverifikasi bahwa pengujian tersebut dapat direproduksi.
Coba jalankan pengujian di perangkat atau jenis perangkat lain, jika ada. Lihat Katalog Perangkat untuk mengetahui informasi selengkapnya.
Mengapa sharding membuat pengujian berjalan lebih lama?
Sharding dapat menyebabkan pengujian berjalan lebih lama jika jumlah shard yang Anda tetapkan melebihi jumlah perangkat yang dapat digunakan di Platform Perangkat Developer. Untuk menghindari situasi ini, batasi jumlah perangkat Anda ke jumlah partisi Anda. Untuk mengetahui informasi selengkapnya tentang cara memilih perangkat lain, lihat Katalog Perangkat.
Mengapa perlu waktu lama untuk memulai pengujian?
Saat Anda mengirimkan permintaan pengujian, aplikasi akan divalidasi terlebih dahulu, ditandatangani ulang, dll. sebagai persiapan untuk menjalankan pengujian pada perangkat. Biasanya, proses ini selesai dalam waktu kurang dari beberapa detik, tetapi dapat dipengaruhi oleh faktor seperti ukuran aplikasi Anda.
Setelah aplikasi Anda siap, eksekusi uji akan dijadwalkan dan tetap berada dalam antrean sampai perangkat siap menjalankannya.
Mengapa perlu waktu lama untuk menyelesaikan pengujian?
Setelah eksekusi uji selesai, artefak pengujian akan didownload dari perangkat, diproses, dan diupload ke Cloud Storage. Durasi langkah ini dapat terpengaruh oleh jumlah dan ukuran artefak.
Pemecahan masalah khusus Android
Aplikasi tidak menampilkan data dan tidak dapat menemukan screenshot
Artefak eksekusi uji (seperti screenshot dan file log) disimpan di Cloud Storage dan langsung dirender ke Google Cloud console. Pastikan Anda telah menetapkan peran level project.
Perhatikan juga, Platform Perangkat Developer memiliki agen layanan khusus yang menggunakan kredensialnya sendiri, bukan kredensial Anda, untuk:
- Membaca dan menulis ke bucket dan objek Cloud Storage
- Mendownload file input Cloud Storage ke sistem internal
- Mengupload file dari sistem internal ke bucket output Cloud Storage
Anda mungkin memiliki akses ke bucket Cloud Storage dan file, tetapi bucket tersebut dimiliki oleh project Google Cloud lain daripada yang digunakan di DDP. Oleh karena itu, akun layanan Developer Device Platform tidak memiliki akses ke akun tersebut.
Anda juga dapat memiliki kontrol akses tambahan pada setiap bucket. Lihat Device Run untuk mengetahui cara menyertakan file dengan pengujian Anda.
Mengapa saya menerima hasil kasus uji instrumentasi sebagian atau kosong?
Saat menjalankan uji instrumentasi, Anda mungkin melihat total kasus pengujian kurang dari yang diharapkan. Hal ini sering disebabkan oleh Developer Device Platform yang tidak dapat mengurai logcat untuk penanda awal atau akhir kasus pengujian yang biasanya dihasilkan oleh AndroidJUnitRunner.
Berikut adalah penyebab umum masalah ini:
| Deskripsi masalah | Kemungkinan resolusi |
|---|---|
| Kasus pengujian tidak berjalan karena waktu tunggu habis. Jika total durasi pengujian lebih lama daripada waktu tunggu yang ditentukan atau lebih lama dari waktu tunggu maksimum, Platform Perangkat Developer akan membatalkan kasus pengujian lainnya. |
|
| Kasus pengujian gagal diselesaikan karena keluar sebelum waktunya atau macet. Kasus pengujian dapat keluar lebih awal karena pengecualian yang tidak tertangkap atau error pernyataan. Kasus pengujian bisa macet dalam loop yang tidak terbatas atau mungkin tidak dapat dilanjutkan, misalnya, jika aplikasi tidak menampilkan tampilan yang benar dan kasus pengujian tidak dapat melakukan tindakan di UI. |
Lihat video dan logcat untuk menyelidiki tempat pengujian dihentikan.
|
Runner pengujian kustom (termasuk memperluas AndroidJUnitRunner) mengalami error secara tidak terduga atau menulis penanda awal atau akhir kasus pengujian yang tidak terduga pada logcat.
|
Periksa kode runner pengujian Anda. |
Terlalu banyak log yang ditulis ke logcat sehingga membebani buffer atau membuat proses logcat mengalami error.
|
Kurangi penulisan menjadi logcat.
|
| Aplikasi yang sedang diuji mengalami error. | Lakukan debug aplikasi Anda. |
Pertanyaan umum (FAQ)
Di mana saya dapat menemukan informasi tentang harga Developer Device Platform?
Lihat Pertanyaan terkait harga dan penagihan untuk mengetahui detailnya.
Di mana detail perangkat, seperti resolusi, dan sebagainya, dapat ditemukan?
Informasi perangkat mendetail tersedia melalui API dan dapat diakses dari CLI Platform Perangkat Developer dengan perintah device-run devices describe <device-id>:
gcloud beta device-run devices describe DEVICE_ID
Bagaimana cara mengetahui apakah traffic yang menjangkau backend saya berasal dari Platform Perangkat Developer?
Dari backend, Anda dapat menentukan apakah traffic berasal dari perangkat uji yang dihosting Platform Perangkat Developer atau tidak dengan memeriksa alamat IP sumber terhadap rentang IP kami.
Apakah Developer Device Platform berfungsi dengan VPC-SC?
Platform Perangkat Developer tidak berfungsi dengan VPC-SC, yang memblokir penyalinan aplikasi dan artefak pengujian lainnya antara penyimpanan internal Platform Perangkat Developer dan bucket hasil pengguna.
Bagaimana cara mengurangi pengujian yang tidak stabil di Platform Perangkat Developer?
Untuk mendeteksi perilaku yang tidak stabil dalam pengujian Anda, sebaiknya gunakan opsi
--flaky-test-attempts. Penggunaan ulang Deflake ditagih atau dihitung terhadap kuota harian Anda sama seperti eksekusi uji normal.
Ingat hal berikut:
- DDP akan menjalankan percobaan ulang secara berurutan secara default untuk menghemat biaya. Pengguna harus
menyetel
--flaky-test-parallel-retryagar berjalan secara paralel. - Flag
--flaky-test-retry-levelmenentukan apakah akan mencoba lagi di tingkatshardatautestindividual dan secara default ditetapkan keshard. Setel ketestuntuk mengurangi ukuran dan durasi pengujian ulang.
FAQ khusus iOS
Apakah Platform Perangkat Developer mendukung Appium, Flutter/FlutterDriver, ReactNative/Jest, atau Cucumber?
Meskipun beberapa item tersebut tercakup dalam rencana kami, saat ini kami tidak dapat memberikan komitmen untuk mendukung platform pengujian dan pengembangan aplikasi ini.
Mengapa pengujian iOS saya tidak menampilkan video dalam hasil pengujian?
Dukungan untuk video dalam hasil penelusuran direncanakan untuk iOS 18 atau yang lebih baru.
FAQ khusus Android
Apakah Developer Device Platform mendukung perangkat wearable?
Ya. Platform Perangkat Developer mendukung Google Pixel Watch. Kini Anda dapat menjalankan pengujian di aplikasi Wear OS mandiri di Google Pixel Watch. Untuk mempelajari lebih lanjut perangkat Developer Device Platform, lihat Katalog Perangkat.
Apakah Developer Device Platform mendukung perangkat Google terbaru?
Ya. Platform Perangkat Developer mendukung Google Pixel Tablet dan Google Pixel Fold. Anda dapat menjalankan pengujian di perangkat fisik mandiri. Untuk mempelajari lebih lanjut perangkat yang tersedia di Developer Device Platform, lihat Katalog Perangkat.
Apakah Platform Perangkat Developer mendukung Appium, Flutter/FlutterDriver, ReactNative/Jest, atau Cucumber?
Meskipun beberapa item tersebut tercakup dalam rencana kami, saat ini kami tidak dapat memberikan komitmen untuk mendukung platform pengujian dan pengembangan aplikasi ini. Namun, jika Anda mem-build aplikasi dengan framework yang mendukung Espresso (misalnya, Flutter), Anda dapat menulis uji instrumentasi menggunakan Espresso lalu menjalankan pengujian di Platform Perangkat Developer.
Apakah Platform Perangkat Developer mendukung pengujian aplikasi yang di-obfuscate, misalnya, dengan ProGuard atau R8)?
Platform Perangkat Developer tidak secara eksplisit mendukung obfuscation atau deobfuscation. Meskipun aplikasi kemungkinan akan berjalan, data aplikasi yang di-obfuscate, seperti pelacakan tumpukan, akan muncul sebagai di-obfuscate dalam log.
Dapatkah saya menggunakan perangkat foldable saya di berbagai status dan postur perangkat foldable saat menguji di Developer Device Platform?
Ya. Anda dapat menguji perangkat foldable dalam status dan postur perangkat foldable.
Perangkat foldable dapat berada dalam berbagai status terlipat, seperti FLAT (terbuka sepenuhnya) atau HALF_OPENED (antara terbuka sepenuhnya dan tertutup sepenuhnya).
Di sisi lain, postur terdiri dari orientasi perangkat dan status
perangkat foldable tertentu. Misalnya, postur mode di atas meja, yang merupakan status HALF_OPENED dalam orientasi horizontal, atau postur buku, yang merupakan status HALF_OPENED dalam orientasi vertikal.
Jika menjalankan uji instrumentasi, Anda dapat menggunakan library Jetpack WindowManager dan mengikuti dokumentasi menguji aplikasi Anda di perangkat foldable untuk menguji pada berbagai status dan postur.
Atau, status yang tersedia bersifat spesifik untuk perangkat dan dapat berinteraksi dengan adb
shell command cmd device_state.
- Untuk mencantumkan status saat ini, jalankan
adb shell cmd device_state state. - Untuk menetapkan atau mengganti status saat ini, jalankan
adb shell cmd device_state state <IDENTIFIER>. - Untuk mereset status, jalankan
adb shell cmd device_state state reset. - Untuk memeriksa status yang tersedia, jalankan perintah
adb shell cmd device_state print-statesdi perangkat foldable.
Google Pixel Fold (ID model felix)
$ adb shell cmd device_state print-states
Supported states: [
DeviceState{identifier=0, name='CLOSED', app_accessible=true},
DeviceState{identifier=1, name='HALF_OPENED', app_accessible=true},
DeviceState{identifier=2, name='OPENED', app_accessible=true},
DeviceState{identifier=3, name='REAR_DISPLAY_STATE', app_accessible=true},
]
Samsung Galaxy Z Fold4 (ID model q4q)
$ adb shell cmd device_state print-states
Supported states: [
DeviceState{identifier=0, name='CLOSE', app_accessible=true},
DeviceState{identifier=1, name='TENT', app_accessible=true},
DeviceState{identifier=2, name='HALF_FOLDED', app_accessible=true},
DeviceState{identifier=3, name='OPEN', app_accessible=true},
]
Dapatkah saya mencoba Platform Perangkat Developer jika tidak memiliki aplikasi?
Tidak seperti produk Developer Device Platform lainnya, Anda tidak perlu menambahkan SDK Developer Device Platform untuk menggunakan Developer Device Platform. Jika belum memiliki aplikasi, Anda dapat mendownload APK secara online atau mem-build aplikasi dan APK pengujian dari salah satu contoh di repositori GitHub AndroidX. Perhatikan bahwa uji instrumentasi memerlukan aplikasi dan APK pengujian yang di-build dari kode sumber. Untuk mengetahui informasi selengkapnya, baca informasi tentang Pengujian berinstrumen.
Untuk mempelajari lebih lanjut fitur Developer Device Platform, lihat ringkasan produk DDP.
Perangkat apa yang paling cocok untuk pengujian perbedaan screenshot?
Pada pengujian perbedaan screenshot, pernyataan pengujian didasarkan pada perbandingan gambar layar yang diperoleh saat menjalankan pengujian dengan gambar emas yang mewakili perilaku yang diharapkan. Pengujian tersebut mungkin lebih rapuh pada beberapa jenis perangkat dibandingkan dengan perangkat lainnya. Sebaiknya targetkan perangkat emulator Arm (*.arm) untuk jenis pengujian ini. Perangkat emulator Arm menggunakan image yang sangat mirip atau identik dengan emulator generik Android Studio.
Sebaiknya Anda juga menyelidiki library pengujian yang dapat membantu membuat pengujian screenshot lebih efektif dengan adanya perubahan yang diharapkan.
Apakah Developer Device Platform memperbarui perangkat virtual?
Ya. Perangkat virtual diperbarui saat perubahan berikut dilakukan:
- Pembaruan pada gambar yang sudah ada
- Penghentian penggunaan level API sebelumnya
- Level API Android baru telah ditambahkan
Bagaimana cara mengaktifkan laporan cakupan?
Untuk mengaktifkan laporan cakupan, tambahkan coverage=true ke
kolom additional-test-options.
Jika menggunakan Android Test Orchestrator, Anda harus memberikan jalur direktori untuk menyimpan hasil cakupan:
--additional-test-options coverage=true,coverageFilePath=/sdcard/Download/
Jika tidak menggunakan Orchestrator, Anda dapat menentukan jalur file:
--additional-test-options coverage=true,coverageFile=/sdcard/Download/coverage.ec
Bagaimana cara login ke aplikasi Wear tanpa ponsel?
Jika aplikasi Anda biasanya memerlukan ponsel untuk login, Anda dapat
membuat varian build yang melewati login dan menggunakan token yang disematkan di build
pengujian, atau membaca dari file di disk yang biasanya di-push menggunakan
flag --other-files-to-push.