Panduan ini menjelaskan cara menjalankan uji instrumentasi Android menggunakan
gcloud beta device-run CLI dan menemukan hasil Anda di Google Cloud konsol. Panduan ini
mengasumsikan bahwa Anda memiliki akun dan project. Google Cloud
Untuk menggunakan Google Cloud CLI ini, Anda harus memberikan Google Cloud project
ID. Lihat gcloud beta device-run untuk a
ringkasan perintah.
Sebelum memulai
Langkah-langkah ini mengasumsikan bahwa Anda telah membuat Google Cloud project,
menyelesaikan langkah-langkah penyiapan dalam panduan Mulai Cepat
Platform Perangkat Developer, dan melakukan autentikasi
dengan gcloud di terminal.
Selain itu, Anda harus memiliki uji instrumentasi Android yang siap dijalankan. Lihat Mem-build uji instrumentasi untuk panduan.
Selain itu, Anda harus mengidentifikasi ID perangkat yang ingin digunakan untuk menjalankan workload. Lihat Katalog Perangkat untuk mengetahui petunjuknya.
Menjalankan pengujian
Setelah mengetahui ID perangkat yang tersedia untuk menguji aplikasi, Anda dapat
menentukan perangkat menggunakan perintah gcloud beta device-run sessions submit
instrumentation dan flag --device untuk menjalankan uji instrumentasi.
Untuk menjalankan pengujian, keluarkan perintah yang mirip dengan berikut ini, tetapi dengan ID perangkat dan jalur pengujian Anda sendiri:
gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--apps /path/to/app.apk \
--test /path/to/test.apk
Folder laporan hasil tugas dapat ditemukan di jalur Cloud Storage seperti
gs://<your_project_id>/automation/sessions/session-id/. Lihat output pengujian untuk mengetahui link-nya, yang mirip dengan: https://console.cloud.google.com/storage/browser/your_project_id/automation/sessions/session-id/.
Mengonfigurasi pengujian
Setelah menjalankan pengujian, pelajari beberapa opsi konfigurasi:
- Untuk menjalankan pengujian yang sama di beberapa perangkat, berikan flag
--devicedengan beberapa ID perangkat yang dipisahkan dengan koma, seperti--device shiba-34,tokay-36, atau dengan beberapa flag--device, yang masing-masing menentukan ID perangkat yang berbeda (misalnya,--device shiba-34 --device tokay-36). - Anda dapat secara opsional menentukan satu atau beberapa APK untuk diinstal sebelum menjalankan pengujian menggunakan flag
--apps=path1,path2,...,path_n. Urutan yang Anda tentukan adalah urutan penginstalan aplikasi ini. - Anda harus menentukan APK pengujian dengan flag
--test. - Saat Anda menentukan jalur lokal dengan flag
--appsatau--test, Google Cloud CLI CLI akan otomatis menyalinnya ke bucket Cloud Storage Anda di bagiangs://my-project-id/automation/inputs/date_time_four_chars_suffix/setiap kali Anda menjalankan perintah. - Karena mengupload APK besar dapat memakan waktu, Anda dapat langsung mereferensikan APK menggunakan jalur
gs://Cloud Storage untuk menghemat waktu upload.
Perintah sessions submit instrumentation memblokir hasil sesi secara default, yang berarti perintah tersebut akan menunggu pengujian selesai dan menampilkan hasil yang mirip dengan:
Using the default Cloud Storage bucket [gs://<my-project-id>] for input and result files. Will create the bucket if it does not exist.
Uploading [app.apk].
Uploading [test.apk].
Initiated long-running operation [operation-number] to create session.
Creating session [session-id] in location [global].
Result files will be stored at [https://console.cloud.google.com/storage/browser/<my-project-id>/automation/sessions/session-id/].
Waiting for session [session-id] to complete....done.
Session [session-id] finished with result [FAILED].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
Untuk menjalankan perintah secara asinkron, sertakan flag --async. Hal ini memungkinkan perintah keluar segera setelah mengupload file ke Cloud Storage dan mencetak ID Operasi dan ID Sesi. Anda dapat menggunakan perintah operations wait dan ID Operasi untuk menunggu eksekusi. Perintah ini akan diblokir hingga tugas selesai:
gcloud beta device-run operations wait your_operation_id
Menggunakan sharding
Untuk menyertakan Platform Perangkat Developer dalam alur kerja Continuous Integration dan Continuous Delivery (CI/CD), Anda harus mempertimbangkan untuk melakukan sharding pada pengujian. Sharding pengujian membagi satu set pengujian menjadi sejumlah subgrup (shard) yang masing-masing berjalan secara terpisah. Platform Perangkat Developer otomatis menjalankan setiap shard secara paralel menggunakan beberapa perangkat dan menyelesaikan keseluruhan set pengujian tersebut dalam waktu yang lebih singkat.
Opsi sharding
Jika tugas Anda hanya memiliki sejumlah kecil kasus pengujian, atau total waktu eksekusi semua kasus pengujian tidak lama, Anda tidak perlu menggunakan sharding. Jika Anda memiliki banyak kasus pengujian, atau total waktu eksekusi semua kasus pengujiannya lama, pertimbangkan untuk menggunakan sharding.
Platform Perangkat Developer mendukung sharding pintar dan seragam. Saat memutuskan cara melakukan sharding pada pengujian, pertimbangkan opsi berikut:
Jika semua kasus pengujian akan memerlukan waktu yang sama, gunakan sharding seragam dengan membagi semua kasus pengujian menjadi
nshard.Jika waktu eksekusi kasus pengujian yang berbeda sangat bervariasi, gunakan sharding pintar. Platform Perangkat Developer menggunakan waktu eksekusi uji historis untuk membuat shard yang berbeda dan mencoba menyelesaikan semua shard dalam durasi yang sama.
Sharding seragam
Untuk melakukan sharding pada pengujian dengan sharding seragam, sertakan flag --sharding-option=uniform dan --uniform-sharding-count= dalam perintah sessions submit instrumentation seperti berikut:
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34,tokay-36 \
--sharding-option=uniform \
--uniform-sharding-count=2
Anda akan melihat output yang menunjukkan Job status: 2 running. Layanan ini membuat dua tugas, satu untuk setiap perangkat. Karena input untuk kedua tugas tersebut identik, layanan ini memusatkan validasi, dan hanya melakukannya sekali.
Anda akan melihat dua tugas yang tercantum secara terpisah dalam output akhir perintah saat selesai:
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
Sharding pintar
Untuk melakukan sharding pada pengujian dengan sharding pintar, sertakan flag --sharding-option=smart,
--smart-sharding-max-shard-count=, --smart-sharding-target-duration= (dalam
menit atau 1 jam), dan --smart-sharding-record-name= dalam perintah sessions
submit instrumentation seperti berikut:
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34,shiba-35,tokay-36 \
--sharding-option=smart \
--smart-sharding-max-shard-count=3 \
--smart-sharding-target-duration=5m \
--smart-sharding-record-name=test.yaml
Anda akan melihat output akhir yang menunjukkan tiga tugas dijalankan:
Session [session-3cd0564a] finished with result [ERROR].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
job-002 execution-000 PASSED
Berikut adalah ringkasan flag sharding pintar yang digunakan di sini:
--smart-sharding-max-shard-count=SMART_SHARDING_MAX_SHARD_COUNT- Menentukan jumlah maksimum shard yang akan dibuat untuk sharding pintar. Jika tidak disetel atau disetel ke 0, batas maksimum yang ditentukan sistem akan digunakan. Rentang yang valid adalah 0 hingga 20 untuk perangkat fisik dan 0 hingga 200 untuk perangkat virtual.--smart-sharding-target-duration=SMART_SHARDING_TARGET_DURATION- Menentukan waktu eksekusi target (misalnya, 2m, 10m, 1h) per shard untuk sharding pintar. Rentang yang valid adalah 2m hingga 1h. Diperlukan jika--sharding-option=smart.--smart-sharding-record-name=SMART_SHARDING_RECORD_NAME- Menentukan nama file rekaman sharding pintar, tidak termasuk ekstensi file. Diperlukan jika --sharding-option=smart. File YAML ini terletak di Google Cloud bucket Penyimpanan yang ditentukan oleh--bucket-namedismart-sharding/direktori. Jika file tidak ada, file akan dibuat secara otomatis; jika tidak, kontennya akan diperbarui setelah sesi selesai.
Mempelajari dan mengelola pengujian
Untuk mode asinkron dan sinkron perintah sessions submit instrumentation, Anda dapat menggunakan perintah sessions describe untuk membuat kueri status tugas selama eksekusi, atau mendapatkan hasilnya setelah selesai:
gcloud beta device-run sessions describe <session_id>
Output ini merangkum hasil pengujian dan link ke hasil di Google Cloud konsol. Contoh:
Session [session-id] finished with result [FAILED].
Result files are stored at [https://console.cloud.google.com/storage/browser/your_project_id-devicerun/automation/sessions/session-id/].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
Gunakan perintah berikut untuk mencantumkan semua sesi yang sedang berjalan dan yang telah selesai:
gcloud beta device-run sessions list
Terima output yang berisi daftar sesi di project Anda, yang mirip dengan:
SESSION_ID START_TIME STATE
session-4825e153 2026-07-28T16:38:43.155Z DONE
session-813ca602 2026-07-28T22:40:32.415Z DONE
session-67cd0570 2026-07-16T08:25:55.474Z DONE
session-17cc299c 2026-07-14T14:31:33.649Z DONE
session-911d0763 2026-07-09T00:39:02.051Z DONE
session-4e943fea 2026-07-15T23:08:32.252Z DONE
session-0132e458 2026-08-20T18:33:19.751Z DONE
session-1077f07b 2026-07-28T22:35:43.848Z DONE
session-71b054c6 2026-07-15T01:15:41.643Z DONE
session-4f8b2e45 2026-08-06T23:11:56.161Z DONE
Perintah daftar sessions mendukung semua opsi flag gcloud standar. Contoh:
gcloud beta device-run sessions list --limit 5
Yang menghasilkan hasil yang mirip dengan:
SESSION_ID START_TIME STATE
session-4825e153 2026-07-28T16:38:43.155Z DONE
session-813ca602 2026-07-28T22:40:32.415Z DONE
93ec2df2-d5bf-4c36-b7f7-c2a4fb0dc3ce 2026-07-03T05:10:58.015Z DONE
session-67cd0570 2026-07-16T08:25:55.474Z DONE
session-17cc299c 2026-07-14T14:31:33.649Z DONE
Atau, untuk menemukan semua sesi yang sedang berjalan, jalankan:
gcloud beta device-run sessions list --filter RUNNING
Dengan asumsi Anda memiliki sesi yang sedang berjalan, Anda akan melihat hasil yang mirip dengan:
SESSION_ID START_TIME STATE
session-d7ff8b81 RUNNING
Jika tidak, Anda akan menerima Listed 0 items.
Untuk membatalkan sesi yang sedang berjalan, jalankan perintah ini dengan ID sesi Anda:
gcloud beta device-run sessions cancel your_session_id
Perintah akan segera ditampilkan, karena sesi hanya ditandai untuk dibatalkan. Pembatalan terjadi secara asinkron di backend.
Jika sesi sudah selesai, hanya status saat ini yang akan dicetak. Meminta pembatalan untuk sesi yang telah selesai bukanlah error.
Langkah berikutnya
Selanjutnya, temukan dan analisis log.