Jalankan Perangkat Platform Perangkat Developer

Panduan ini menjelaskan cara menjalankan uji instrumentasi Android menggunakan gcloud beta device-run CLI dan menemukan hasil di Google Cloud console. Panduan ini mengasumsikan Anda memiliki akun dan project Google Cloud .

Untuk menggunakan Google Cloud CLI ini, Anda harus memberikan ID Google Cloud project Anda.

Sebelum memulai

Langkah-langkah ini mengasumsikan bahwa Anda telah membuat project Google Cloud , menyelesaikan langkah-langkah penyiapan dalam panduan Mulai Cepat Developer Device Platform, dan melakukan autentikasi dengan gcloud di terminal.

Selain itu, Anda harus menyiapkan pengujian instrumentasi Android agar siap dijalankan. Lihat Membangun pengujian yang diinstrumentasi untuk panduan.

Selain itu, Anda harus mengidentifikasi ID perangkat yang ingin Anda gunakan 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 pengujian instrumentasi.

Untuk menjalankan pengujian, keluarkan perintah yang menyerupai perintah berikut, 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 link, yang menyerupai: 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 tanda --device beberapa kali, seperti --device shiba-34 --device tokay-36.
  • Secara opsional, Anda dapat menentukan satu atau beberapa APK yang akan diinstal sebelum menjalankan pengujian menggunakan tanda --apps=path1,path2,...,path_n. Urutan yang Anda tentukan adalah urutan penginstalan aplikasi ini.
  • Anda harus menentukan APK pengujian dengan tanda --test.
  • Saat Anda menentukan jalur lokal dengan flag --apps atau --test, Google Cloud CLI CLI akan otomatis menyalinnya ke bucket Cloud Storage Anda di gs://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 akan menunggu hingga 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 tanda --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. Tindakan 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 membagi 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 cerdas dan seragam. Saat memutuskan cara membagi pengujian, pertimbangkan opsi berikut:

  • Jika semua kasus pengujian akan memerlukan waktu yang sama, gunakan sharding seragam dengan membagi semua kasus pengujian menjadi n shard.

  • Jika waktu eksekusi kasus pengujian yang berbeda sangat bervariasi, gunakan pembagian cerdas. Platform Perangkat Developer menggunakan waktu eksekusi uji historis untuk membuat shard yang berbeda dan mencoba menyelesaikan semua shard dalam durasi yang serupa.

Sharding seragam

Untuk membagi pengujian dengan pembagian seragam, sertakan tanda --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 \
    --device tokay-36 \
    --sharding-option=uniform \
    --uniform-sharding-count=2

Anda akan melihat output yang menunjukkan Job status: 2 running. Layanan membuat dua tugas, satu untuk setiap perangkat. Karena input untuk kedua tugas identik, layanan memusatkan validasi, dan hanya melakukannya sekali.

Anda akan melihat dua tugas yang tercantum secara terpisah dalam output akhir perintah setelah selesai:

JOB NAME  EXECUTION NAME  EXECUTION RESULT
job-000   execution-000   PASSED
job-001   execution-000   PASSED

Sharding cerdas

Untuk memecah pengujian dengan pemecahan cerdas, 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 \
    --device shiba-35 \
    --device 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 telah 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 ringkasan tanda sharding pintar yang digunakan di sini:

  • --smart-sharding-max-shard-count=SMART_SHARDING_MAX_SHARD_COUNT - Tentukan jumlah maksimum shard yang akan dibuat untuk smart sharding. 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-max-shard-count: Menentukan jumlah maksimum shard yang akan dibuat. Jumlah perangkat yang ditentukan dalam tanda --device harus kurang dari atau sama dengan nilai ini.

  • --smart-sharding-target-duration=SMART_SHARDING_TARGET_DURATION - Tentukan waktu eksekusi yang ditargetkan (misalnya, 2m, 10m, 1j) per shard untuk penyusunan shard cerdas. Rentang yang valid adalah 2 menit hingga 1 jam. Wajib diisi jika --sharding-option=smart.

  • --smart-sharding-record-name=SMART_SHARDING_RECORD_NAME - Tentukan nama file rekaman smart sharding, tanpa menyertakan ekstensi file. Wajib diisi jika --sharding-option=smart. File YAML ini berada di bucket Storage Google Cloud yang ditentukan oleh --bucket-name di direktori smart-sharding/. Jika file tidak ada, file akan dibuat secara otomatis; jika tidak, isinya akan diperbarui setelah sesi selesai.

Menjelajahi dan mengelola proses 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 merangkum hasil pengujian dan menautkan ke hasil di konsol Google Cloud . 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 telah selesai:

gcloud beta device-run sessions list

Menerima output yang berisi daftar sesi di project Anda, yang menyerupai:

SESSION_ID                                    START_TIME                STATE
session-4825e153                              2026-07-28T16:38:43.155Z  DONE
session-813ca602                              2026-07-28T22:40:32.415Z  DONE

Untuk membatalkan sesi yang sedang berjalan, jalankan perintah ini dengan ID sesi Anda:

gcloud beta device-run sessions cancel your_session_id

Langkah berikutnya

Selanjutnya, temukan dan analisis log.