REST Resource: projects.testMatrices

Sumber daya: TestMatrix

TestMatrix menangkap semua detail tentang suatu pengujian. Ini berisi konfigurasi lingkungan, spesifikasi pengujian, eksekusi pengujian, serta status dan hasil keseluruhan.

Representasi JSON
{
  "testMatrixId": string,
  "projectId": string,
  "clientInfo": {
    object (ClientInfo)
  },
  "testSpecification": {
    object (TestSpecification)
  },
  "environmentMatrix": {
    object (EnvironmentMatrix)
  },
  "testExecutions": [
    {
      object (TestExecution)
    }
  ],
  "resultStorage": {
    object (ResultStorage)
  },
  "state": enum (TestState),
  "timestamp": string,
  "invalidMatrixDetails": enum (InvalidMatrixDetails),
  "flakyTestAttempts": integer,
  "outcomeSummary": enum (OutcomeSummary),
  "failFast": boolean
}
Bidang
testMatrixId

string

Hanya keluaran. Id unik yang ditetapkan oleh layanan.

projectId

string

Proyek cloud yang memiliki matriks pengujian.

clientInfo

object ( ClientInfo )

Informasi tentang klien yang menjalankan tes.

testSpecification

object ( TestSpecification )

Diperlukan. Cara menjalankan tes.

environmentMatrix

object ( EnvironmentMatrix )

Diperlukan. Perangkat tempat pengujian dijalankan.

testExecutions[]

object ( TestExecution )

Hanya keluaran. Daftar eksekusi pengujian yang dibuat layanan untuk matriks ini.

resultStorage

object ( ResultStorage )

Diperlukan. Dimana hasil matriks ditulis.

state

enum ( TestState )

Hanya keluaran. Menunjukkan kemajuan matriks pengujian saat ini.

timestamp

string ( Timestamp format)

Hanya keluaran. Waktu matriks pengujian ini pertama kali dibuat.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z" .

invalidMatrixDetails

enum ( InvalidMatrixDetails )

Hanya keluaran. Menjelaskan mengapa matriks dianggap tidak valid. Hanya berguna untuk matriks dalam keadaan INVALID.

flakyTestAttempts

integer

Berapa kali TestExecution harus dicoba ulang jika satu atau lebih kasus pengujiannya gagal karena alasan apa pun. Jumlah maksimum tayangan ulang yang diperbolehkan adalah 10.

Defaultnya adalah 0, yang berarti tidak ada tayangan ulang.

outcomeSummary

enum ( OutcomeSummary )

Keluaran Saja. Hasil tes secara keseluruhan. Hanya disetel ketika status matriks pengujian SELESAI.

failFast

boolean

Jika benar, paling banyak hanya satu upaya yang akan dilakukan untuk menjalankan setiap eksekusi/shard dalam matriks. Upaya pengujian yang tidak stabil tidak terpengaruh.

Biasanya, 2 upaya atau lebih dilakukan jika potensi masalah infrastruktur terdeteksi.

Fitur ini ditujukan untuk beban kerja yang sensitif terhadap latensi. Insiden kegagalan eksekusi mungkin jauh lebih besar untuk matriks fail-fast dan dukungan lebih terbatas karena ekspektasi tersebut.

Info Klien

Informasi tentang klien yang menjalankan tes.

Representasi JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
Bidang
name

string

Diperlukan. Nama klien, seperti gcloud.

clientInfoDetails[]

object ( ClientInfoDetail )

Daftar informasi rinci tentang klien.

Detail Info Klien

Pasangan nilai kunci informasi mendetail tentang klien yang menjalankan pengujian. Contoh: {'Versi', '1.0'}, {'Release Track', 'BETA'}.

Representasi JSON
{
  "key": string,
  "value": string
}
Bidang
key

string

Diperlukan. Kunci informasi klien terperinci.

value

string

Diperlukan. Nilai informasi klien yang terperinci.

Spesifikasi Tes

Penjelasan tentang cara menjalankan tes.

Representasi JSON
{
  "testTimeout": string,
  "disableVideoRecording": boolean,
  "disablePerformanceMetrics": boolean,

  // Union field setup can be only one of the following:
  "testSetup": {
    object (TestSetup)
  },
  "iosTestSetup": {
    object (IosTestSetup)
  }
  // End of list of possible types for union field setup.

  // Union field test can be only one of the following:
  "androidInstrumentationTest": {
    object (AndroidInstrumentationTest)
  },
  "androidRoboTest": {
    object (AndroidRoboTest)
  },
  "androidTestLoop": {
    object (AndroidTestLoop)
  },
  "iosXcTest": {
    object (IosXcTest)
  },
  "iosTestLoop": {
    object (IosTestLoop)
  }
  // End of list of possible types for union field test.
}
Bidang
testTimeout

string ( Duration format)

Waktu maksimum eksekusi pengujian diizinkan untuk dijalankan sebelum dibatalkan secara otomatis. Nilai defaultnya adalah 5 menit.

Durasi dalam detik hingga sembilan digit pecahan, diakhiri dengan ' s '. Contoh: "3.5s" .

disableVideoRecording

boolean

Menonaktifkan perekaman video. Dapat mengurangi latensi pengujian.

disablePerformanceMetrics

boolean

Menonaktifkan perekaman metrik kinerja. Dapat mengurangi latensi pengujian.

setup bidang serikat pekerja. Persyaratan pengaturan pengujian. setup hanya dapat berupa salah satu dari berikut ini:
testSetup

object ( TestSetup )

Persyaratan pengaturan pengujian untuk Android misalnya file yang akan diinstal, skrip bootstrap.

iosTestSetup

object ( IosTestSetup )

Persyaratan pengaturan pengujian untuk iOS.

test lapangan serikat pekerja. Diperlukan. Jenis tes yang akan dijalankan. test hanya dapat berupa salah satu dari berikut ini:
androidInstrumentationTest

object ( AndroidInstrumentationTest )

Tes instrumentasi Android.

androidRoboTest

object ( AndroidRoboTest )

Tes robo Android.

androidTestLoop

object ( AndroidTestLoop )

Aplikasi Android dengan Test Loop.

iosXcTest

object ( IosXcTest )

iOS XCTest, melalui file .xctestrun.

iosTestLoop

object ( IosTestLoop )

Aplikasi iOS dengan loop pengujian.

Pengaturan Tes

Penjelasan tentang cara menyiapkan perangkat Android sebelum menjalankan pengujian.

Representasi JSON
{
  "filesToPush": [
    {
      object (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "additionalApks": [
    {
      object (Apk)
    }
  ],
  "account": {
    object (Account)
  },
  "networkProfile": string,
  "environmentVariables": [
    {
      object (EnvironmentVariable)
    }
  ],
  "systrace": {
    object (SystraceSetup)
  },
  "dontAutograntPermissions": boolean
}
Bidang
filesToPush[]

object ( DeviceFile )

Daftar file yang akan dikirim ke perangkat sebelum memulai pengujian.

directoriesToPull[]

string

Daftar direktori pada perangkat yang akan diunggah ke GCS di akhir pengujian; jalur tersebut harus berupa jalur absolut di bawah /sdcard, /storage, atau /data/local/tmp. Nama jalur dibatasi pada karakter az AZ 0-9 _ - . + dan /

Catatan: Jalur /sdcard dan /data akan tersedia dan diperlakukan sebagai substitusi jalur implisit. Misalnya jika /sdcard pada perangkat tertentu tidak dipetakan ke penyimpanan eksternal, sistem akan menggantinya dengan awalan jalur penyimpanan eksternal untuk perangkat tersebut.

additionalApks[]

object ( Apk )

APK yang akan dipasang selain yang sedang diuji secara langsung. Saat ini dibatasi pada 100.

account

object ( Account )

Perangkat akan masuk ke akun ini selama pengujian.

networkProfile

string

Profil lalu lintas jaringan yang digunakan untuk menjalankan pengujian. Profil jaringan yang tersedia dapat ditanyakan dengan menggunakan jenis lingkungan NETWORK_CONFIGURATION saat memanggil TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

environmentVariables[]

object ( EnvironmentVariable )

Variabel lingkungan yang akan ditetapkan untuk pengujian (hanya berlaku untuk pengujian instrumentasi).

systrace
(deprecated)

object ( SystraceSetup )

Konfigurasi Systrace untuk dijalankan. Tidak berlaku lagi: Systrace menggunakan Python 2 yang dihentikan pada 01-01-2020. Systrace tidak lagi didukung di Cloud Testing API, dan tidak ada file Systrace yang akan diberikan dalam hasilnya.

dontAutograntPermissions

boolean

Apakah akan mencegah semua izin waktu proses diberikan saat pemasangan aplikasi

File Perangkat

Deskripsi file perangkat tunggal.

Representasi JSON
{

  // Union field device_file can be only one of the following:
  "obbFile": {
    object (ObbFile)
  },
  "regularFile": {
    object (RegularFile)
  }
  // End of list of possible types for union field device_file.
}
Bidang
Bidang gabungan device_file . Diperlukan. device_file hanya dapat berupa salah satu dari berikut ini:
obbFile

object ( ObbFile )

Referensi ke file gumpalan biner buram.

regularFile

object ( RegularFile )

Referensi ke file biasa.

File Obb

File gumpalan biner buram untuk diinstal pada perangkat sebelum pengujian dimulai.

Representasi JSON
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
Bidang
obbFileName

string

Diperlukan. Nama file OBB harus sesuai dengan format yang ditentukan oleh Android misalnya [main|patch].0300110.com.example.android.obb yang akan diinstal ke <shared-storage>/Android/obb/<package-name>/ pada perangkat.

obb

object ( FileReference )

Diperlukan. File Opaque Binary Blob (OBB) untuk diinstal pada perangkat.

Referensi File

Referensi ke file, digunakan untuk input pengguna.

Representasi JSON
{

  // Union field file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
Bidang
file bidang serikat pekerja. Diperlukan. Referensi file. file hanya dapat berupa salah satu dari berikut ini:
gcsPath

string

Jalur ke file di Google Cloud Storage. Contoh: gs://build-app-1414623860166/app%40debug-unaligned.apk Jalur ini diharapkan berupa url yang dikodekan (persen pengkodean)

File Biasa

File atau direktori untuk diinstal pada perangkat sebelum pengujian dimulai.

Representasi JSON
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
Bidang
content

object ( FileReference )

Diperlukan. File sumber.

devicePath

string

Diperlukan. Tempat meletakkan konten di perangkat. Harus merupakan jalur yang mutlak dan diperbolehkan. Jika file tersebut ada, maka akan diganti. Direktori sisi perangkat berikut dan salah satu subdirektorinya diizinkan:

${EXTERNAL_STORAGE}, /sdcard, atau /storage

${ANDROID_DATA}/local/tmp, atau /data/local/tmp

Menentukan jalur di luar pohon direktori ini tidak valid.

Jalur /sdcard dan /data akan tersedia dan diperlakukan sebagai substitusi jalur implisit. Misalnya jika /sdcard pada perangkat tertentu tidak dipetakan ke penyimpanan eksternal, sistem akan menggantinya dengan awalan jalur penyimpanan eksternal untuk perangkat tersebut dan menyalin file di sana.

Sangat disarankan untuk menggunakan API Lingkungan dalam aplikasi dan menguji kode untuk mengakses file di perangkat dengan cara portabel.

Apk

File paket Android untuk diinstal.

Representasi JSON
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
Bidang
location

object ( FileReference )

Jalur ke APK yang akan diinstal pada perangkat sebelum pengujian dimulai.

packageName

string

Paket java untuk APK yang akan diinstal. Nilai ditentukan dengan memeriksa manifes aplikasi.

Akun

Mengidentifikasi akun dan cara masuk ke dalamnya.

Representasi JSON
{

  // Union field account_type can be only one of the following:
  "googleAuto": {
    object (GoogleAuto)
  }
  // End of list of possible types for union field account_type.
}
Bidang
Bidang gabungan account_type . Diperlukan. Jenis akun, berdasarkan kegunaannya (misalnya Google) dan mekanisme loginnya (misalnya nama pengguna dan kata sandi). account_type hanya dapat berupa salah satu dari berikut ini:
googleAuto

object ( GoogleAuto )

Akun login google otomatis.

GoogleOtomatis

Mengaktifkan login akun Google otomatis. Jika disetel, layanan secara otomatis membuat akun pengujian Google dan menambahkannya ke perangkat, sebelum menjalankan pengujian. Perhatikan bahwa akun pengujian mungkin digunakan kembali. Banyak aplikasi menunjukkan serangkaian fungsi lengkapnya saat ada akun di perangkat. Masuk ke perangkat dengan akun yang dihasilkan ini memungkinkan pengujian lebih banyak fungsi.

Variabel Lingkungan

Pasangan kunci-nilai diteruskan sebagai variabel lingkungan ke pengujian.

Representasi JSON
{
  "key": string,
  "value": string
}
Bidang
key

string

Kunci untuk variabel lingkungan.

value

string

Nilai untuk variabel lingkungan.

Pengaturan Systrace

Representasi JSON
{
  "durationSeconds": integer
}
Bidang
durationSeconds
(deprecated)

integer

Durasi Systrace dalam hitungan detik. Harus antara 1 dan 30 detik. 0 menonaktifkan systrace.

Pengaturan IosTest

Deskripsi tentang cara menyiapkan perangkat iOS sebelum menjalankan pengujian.

Representasi JSON
{
  "networkProfile": string,
  "additionalIpas": [
    {
      object (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
Bidang
networkProfile

string

Profil lalu lintas jaringan yang digunakan untuk menjalankan pengujian. Profil jaringan yang tersedia dapat ditanyakan dengan menggunakan jenis lingkungan NETWORK_CONFIGURATION saat memanggil TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

additionalIpas[]

object ( FileReference )

Aplikasi iOS yang akan dipasang selain yang diuji secara langsung.

pushFiles[]

object ( IosDeviceFile )

Daftar file yang akan dikirim ke perangkat sebelum memulai pengujian.

pullDirectories[]

object ( IosDeviceFile )

Daftar direktori pada perangkat yang akan diupload ke Cloud Storage di akhir pengujian.

Direktori harus berada dalam direktori bersama (seperti /private/var/mobile/Media) atau dalam direktori yang dapat diakses di dalam sistem file aplikasi (seperti /Documents) dengan menentukan ID bundel.

File Perangkat Ios

File atau direktori untuk diinstal pada perangkat sebelum pengujian dimulai.

Representasi JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
Bidang
content

object ( FileReference )

File sumber

bundleId

string

Id bundel aplikasi tempat file ini berada.

Aplikasi iOS melakukan sandbox pada sistem filenya sendiri, jadi file aplikasi harus menentukan aplikasi mana yang diinstal pada perangkat.

devicePath

string

Lokasi file di perangkat, di dalam sistem file sandbox aplikasi

Tes Instrumentasi Android

Pengujian aplikasi Android yang dapat mengontrol komponen Android secara independen dari siklus hidup normalnya. Pengujian instrumentasi Android menjalankan APK aplikasi dan menguji APK dalam proses yang sama pada Perangkat Android virtual atau fisik. Mereka juga menentukan kelas test runner, seperti com.google.GoogleTestRunner, yang dapat bervariasi berdasarkan kerangka instrumentasi spesifik yang dipilih.

Lihat https://developer.android.com/training/testing/fundamentals untuk informasi selengkapnya tentang jenis pengujian Android.

Representasi JSON
{
  "testApk": {
    object (FileReference)
  },
  "appPackageId": string,
  "testPackageId": string,
  "testRunnerClass": string,
  "testTargets": [
    string
  ],
  "orchestratorOption": enum (OrchestratorOption),
  "shardingOption": {
    object (ShardingOption)
  },

  // Union field app_under_test can be only one of the following:
  "appApk": {
    object (FileReference)
  },
  "appBundle": {
    object (AppBundle)
  }
  // End of list of possible types for union field app_under_test.
}
Bidang
testApk

object ( FileReference )

Diperlukan. APK berisi kode pengujian yang akan dieksekusi.

appPackageId

string

Paket java untuk aplikasi yang sedang diuji. Nilai default ditentukan dengan memeriksa manifes aplikasi.

testPackageId

string

Paket java untuk pengujian yang akan dijalankan. Nilai default ditentukan dengan memeriksa manifes aplikasi.

testRunnerClass

string

Kelas InstrumentationTestRunner. Nilai default ditentukan dengan memeriksa manifes aplikasi.

testTargets[]

string

Setiap target harus sepenuhnya memenuhi syarat dengan nama paket atau nama kelas, dalam salah satu format berikut:

  • "paket nama paket"
  • "nama paket kelas.nama_kelas"
  • "nama paket kelas.nama_kelas#nama_metode"

Jika kosong, semua target dalam modul akan dijalankan.

orchestratorOption

enum ( OrchestratorOption )

Opsi untuk menjalankan setiap pengujian dalam pemanggilan instrumentasinya sendiri dengan Android Test Orchestrator atau tidak. ** Orchestrator hanya kompatibel dengan AndroidJUnitRunner versi 1.1 atau lebih tinggi! ** Orchestrator menawarkan manfaat berikut:

  • Tidak ada status bersama
  • Kecelakaan terisolasi
  • Log dicakup per pengujian

Lihat https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator untuk informasi selengkapnya tentang Android Test Orchestrator.

Jika tidak disetel, pengujian akan dijalankan tanpa orkestrator.

shardingOption

object ( ShardingOption )

Opsi untuk menjalankan pengujian di beberapa pecahan secara paralel.

Bidang gabungan app_under_test . Diperlukan. app_under_test hanya dapat berupa salah satu dari berikut ini:
appApk

object ( FileReference )

APK untuk aplikasi yang sedang diuji.

appBundle

object ( AppBundle )

Paket aplikasi multi-apk untuk aplikasi yang sedang diuji.

Paket Aplikasi

Format file Android App Bundle, berisi file BundleConfig.pb, direktori modul dasar, nol atau lebih direktori modul fitur dinamis.

Lihat https://developer.android.com/guide/app-bundle/build untuk panduan membuat App Bundle.

Representasi JSON
{

  // Union field bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
Bidang
bundle bidang serikat pekerja. Diperlukan. Informasi lokasi bundel. bundle hanya dapat berupa salah satu dari berikut ini:
bundleLocation

object ( FileReference )

File .aab yang mewakili app bundle yang sedang diuji.

Opsi Orchestrator

Menentukan cara menjalankan pengujian.

Enum
ORCHESTRATOR_OPTION_UNSPECIFIED Nilai default: server akan memilih mode. Saat ini menyiratkan bahwa pengujian akan berjalan tanpa orkestrator. Kedepannya, seluruh uji instrumentasi akan dijalankan bersama orkestrator. Penggunaan orkestrator sangat dianjurkan karena semua manfaat yang ditawarkannya.
USE_ORCHESTRATOR Jalankan pengujian menggunakan orkestrator. ** Hanya kompatibel dengan AndroidJUnitRunner versi 1.1 atau lebih tinggi! ** Direkomendasikan.
DO_NOT_USE_ORCHESTRATOR Jalankan pengujian tanpa menggunakan orkestrator.

Opsi Sharding

Opsi untuk mengaktifkan sharding.

Representasi JSON
{

  // Union field option can be only one of the following:
  "uniformSharding": {
    object (UniformSharding)
  },
  "manualSharding": {
    object (ManualSharding)
  },
  "smartSharding": {
    object (SmartSharding)
  }
  // End of list of possible types for union field option.
}
Bidang

option bidang serikat pekerja.

option hanya dapat berupa salah satu dari berikut ini:

uniformSharding

object ( UniformSharding )

Kasus uji shard secara seragam berdasarkan jumlah total shard.

manualSharding

object ( ManualSharding )

Pecahan kasus uji ke dalam grup paket, kelas, dan/atau metode tertentu.

smartSharding

object ( SmartSharding )

Tes pecahan berdasarkan catatan waktu kasus uji sebelumnya.

Sharding Seragam

Kasus uji shard secara seragam berdasarkan jumlah total shard.

Untuk uji instrumentasi, ini akan diterjemahkan ke argumen AndroidJUnitRunner "-e numShard" dan "-e shardIndex". Jika sharding seragam diaktifkan, menentukan salah satu argumen sharding ini melalui environmentVariables tidak valid.

Berdasarkan mekanisme sharding yang digunakan AndroidJUnitRunner, tidak ada jaminan bahwa kasus uji akan didistribusikan secara seragam ke seluruh shard.

Representasi JSON
{
  "numShards": integer
}
Bidang
numShards

integer

Diperlukan. Jumlah total pecahan yang akan dibuat. Angka ini harus selalu berupa angka positif yang tidak lebih besar dari jumlah total kasus uji. Saat Anda memilih satu atau lebih perangkat fisik, jumlah pecahannya harus <= 50. Saat Anda memilih satu atau lebih perangkat virtual ARM, jumlahnya harus <= 200. Saat Anda memilih perangkat virtual x86 saja, jumlahnya harus <= 500 .

Pembagian Manual

Pecahan kasus uji ke dalam grup paket, kelas, dan/atau metode tertentu.

Jika sharding manual diaktifkan, menentukan target pengujian melalui environmentVariables atau di InstrumentationTest tidak valid.

Representasi JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
Bidang
testTargetsForShard[]

object ( TestTargetsForShard )

Diperlukan. Kelompok paket, kelas, dan/atau metode pengujian yang akan dijalankan untuk setiap pecahan yang dibuat secara manual. Anda harus menentukan setidaknya satu pecahan jika bidang ini ada. Saat Anda memilih satu atau lebih perangkat fisik, jumlah testTargetsForShard yang diulang harus <= 50. Saat Anda memilih satu atau lebih perangkat virtual ARM, jumlahnya harus <= 200. Saat Anda memilih perangkat virtual x86 saja, jumlahnya harus <= 500.

TestTargetsForShard

Uji target untuk pecahan.

Representasi JSON
{
  "testTargets": [
    string
  ]
}
Bidang
testTargets[]

string

Sekelompok paket, kelas, dan/atau metode pengujian yang akan dijalankan untuk setiap shard. Target harus ditentukan dalam format argumen AndroidJUnitRunner. Misalnya, "paket com.my.packages" "kelas com.my.package.MyClass".

Jumlah testTargets harus lebih besar dari 0.

Sharding Cerdas

Tes pecahan berdasarkan catatan waktu kasus uji sebelumnya.

Representasi JSON
{
  "targetedShardDuration": string
}
Bidang
targetedShardDuration

string ( Duration format)

Jumlah waktu yang diperlukan untuk pengujian dalam sebuah pecahan.

Default: 300 detik (5 menit). Minimum yang diperbolehkan: 120 detik (2 menit).

Jumlah pecahan diatur secara dinamis berdasarkan waktu, hingga batas maksimum pecahan (dijelaskan di bawah). Untuk menjamin setidaknya satu kasus uji untuk setiap shard, jumlah shard tidak akan melebihi jumlah kasus uji. Durasi shard akan terlampaui jika:

  • Batas shard maksimum tercapai dan ada lebih banyak waktu pengujian yang tersisa untuk dialokasikan ke shard.
  • Setiap pengujian individu diperkirakan lebih lama dari durasi shard yang ditargetkan.

Durasi shard tidak dijamin karena smart sharding menggunakan riwayat kasus uji dan durasi default yang mungkin tidak akurat. Aturan untuk menemukan catatan waktu kasus uji adalah:

  • Jika layanan telah memproses kasus uji dalam 30 hari terakhir, catatan kasus uji terbaru yang berhasil akan digunakan.
  • Untuk kasus uji baru, durasi rata-rata dari kasus uji lain yang diketahui akan digunakan.
  • Jika tidak ada catatan waktu uji kasus sebelumnya yang tersedia, durasi uji kasus default adalah 15 detik.

Karena durasi shard sebenarnya dapat melebihi durasi shard yang ditargetkan, kami menyarankan Anda menetapkan nilai yang ditargetkan setidaknya 5 menit kurang dari batas waktu pengujian maksimum yang diperbolehkan (45 menit untuk perangkat fisik dan 60 menit untuk perangkat virtual), atau Anda menggunakan kustom nilai batas waktu pengujian yang Anda tetapkan. Pendekatan ini menghindari pembatalan pecahan sebelum semua pengujian selesai.

Perhatikan bahwa ada batasan jumlah maksimum pecahan. Saat Anda memilih satu atau lebih perangkat fisik, jumlah pecahannya harus <= 50. Saat Anda memilih satu atau lebih perangkat virtual ARM, jumlahnya harus <= 200. Saat Anda memilih perangkat virtual x86 saja, jumlahnya harus <= 500 . Untuk menjamin setidaknya satu kasus pengujian untuk setiap pecahan, jumlah pecahan tidak akan melebihi jumlah kasus pengujian. Setiap pecahan yang dibuat diperhitungkan dalam kuota pengujian harian.

Durasi dalam detik hingga sembilan digit pecahan, diakhiri dengan ' s '. Contoh: "3.5s" .

AndroidRoboTest

Pengujian aplikasi Android yang menjelajahi aplikasi pada Perangkat Android virtual atau fisik, menemukan penyebab dan mengalami error seiring berjalannya waktu.

Representasi JSON
{
  "appPackageId": string,
  "appInitialActivity": string,
  "maxDepth": integer,
  "maxSteps": integer,
  "roboDirectives": [
    {
      object (RoboDirective)
    }
  ],
  "roboMode": enum (RoboMode),
  "roboScript": {
    object (FileReference)
  },
  "startingIntents": [
    {
      object (RoboStartingIntent)
    }
  ],

  // Union field app_under_test can be only one of the following:
  "appApk": {
    object (FileReference)
  },
  "appBundle": {
    object (AppBundle)
  }
  // End of list of possible types for union field app_under_test.
}
Bidang
appPackageId

string

Paket java untuk aplikasi yang sedang diuji. Nilai default ditentukan dengan memeriksa manifes aplikasi.

appInitialActivity

string

Aktivitas awal yang harus digunakan untuk memulai aplikasi.

maxDepth
(deprecated)

integer

Kedalaman maksimum tumpukan traversal yang dapat dijelajahi Robo. Setidaknya harus ada 2 agar Robo dapat menjelajahi aplikasi lebih dari aktivitas pertama. Standarnya adalah 50.

maxSteps
(deprecated)

integer

Jumlah langkah maksimal yang dapat dijalankan Robo. Standarnya tidak ada batasnya.

roboDirectives[]

object ( RoboDirective )

Serangkaian arahan yang harus diterapkan Robo selama penjelajahan. Hal ini memungkinkan pengguna untuk menyesuaikan perayapan. Misalnya, nama pengguna dan kata sandi untuk akun pengujian dapat diberikan.

roboMode

enum ( RoboMode )

Mode di mana Robo harus dijalankan. Kebanyakan klien harus mengizinkan server untuk mengisi kolom ini secara otomatis.

roboScript

object ( FileReference )

File JSON dengan serangkaian tindakan yang harus dilakukan Robo sebagai prolog untuk perayapan.

startingIntents[]

object ( RoboStartingIntent )

Maksud yang digunakan untuk meluncurkan aplikasi untuk perayapan. Jika tidak ada yang disediakan, maka aktivitas peluncur utama akan diluncurkan. Jika ada yang disediakan, maka hanya yang disediakan saja yang diluncurkan (aktivitas peluncur utama harus disediakan secara eksplisit).

Bidang gabungan app_under_test . Diperlukan. app_under_test hanya dapat berupa salah satu dari berikut ini:
appApk

object ( FileReference )

APK untuk aplikasi yang sedang diuji.

appBundle

object ( AppBundle )

Paket aplikasi multi-apk untuk aplikasi yang sedang diuji.

RoboDirective

Mengarahkan Robo untuk berinteraksi dengan elemen UI tertentu jika ditemukan selama perayapan. Saat ini, Robo dapat melakukan entri teks atau klik elemen.

Representasi JSON
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
Bidang
resourceName

string

Diperlukan. Nama sumber daya Android dari elemen UI target. Misalnya, di Java: R.string.foo di xml: @string/foo Hanya bagian "foo" yang diperlukan. Dokumen referensi: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

Teks yang diarahkan untuk diatur oleh Robo. Jika dibiarkan kosong, direktif akan dianggap sebagai CLICK pada elemen yang cocok dengan resourceName.

actionType

enum ( RoboActionType )

Diperlukan. Jenis tindakan yang harus dilakukan Robo pada elemen tertentu.

Tipe Aksi Robo

Tindakan yang dapat dilakukan Robo pada elemen UI.

Enum
ACTION_TYPE_UNSPECIFIED JANGAN GUNAKAN. Hanya untuk versi proto.
SINGLE_CLICK Arahkan Robo untuk mengklik elemen yang ditentukan. Tidak boleh dijalankan jika elemen tertentu tidak dapat diklik.
ENTER_TEXT Arahkan Robo untuk memasukkan teks pada elemen yang ditentukan. Tidak boleh dijalankan jika elemen tertentu tidak diaktifkan atau tidak mengizinkan entri teks.
IGNORE Arahkan Robo untuk mengabaikan interaksi dengan elemen tertentu.

Mode Robo

Mode di mana Robo harus dijalankan.

Enum
ROBO_MODE_UNSPECIFIED Ini berarti server harus memilih mode. Direkomendasikan.
ROBO_VERSION_1 Menjalankan Robo dalam mode khusus UIAutomator tanpa aplikasi mengundurkan diri
ROBO_VERSION_2 Menjalankan Robo dalam Espresso standar dengan fallback UIAutomator

RoboStartingIntent

Pesan untuk menentukan aktivitas awal yang akan dirayapi.

Representasi JSON
{
  "timeout": string,

  // Union field starting_intent can be only one of the following:
  "launcherActivity": {
    object (LauncherActivityIntent)
  },
  "startActivity": {
    object (StartActivityIntent)
  }
  // End of list of possible types for union field starting_intent.
}
Bidang
timeout

string ( Duration format)

Batas waktu dalam hitungan detik untuk setiap maksud.

Durasi dalam detik hingga sembilan digit pecahan, diakhiri dengan ' s '. Contoh: "3.5s" .

Bidang gabungan starting_intent . Diperlukan. Detail maksud untuk memulai aktivitas. starting_intent hanya dapat berupa salah satu dari berikut ini:
launcherActivity

object ( LauncherActivityIntent )

Niat yang memulai aktivitas peluncur utama.

startActivity

object ( StartActivityIntent )

Niat yang memulai aktivitas dengan detail spesifik.

PeluncurActivityIntent

Menentukan maksud yang memulai aktivitas peluncur utama.

MulaiActivityIntent

Niat awal yang ditentukan oleh tindakan, uri, dan kategori.

Representasi JSON
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
Bidang
action

string

Nama tindakan. Diperlukan untuk START_ACTIVITY.

uri

string

URI untuk tindakan tersebut.

categories[]

string

Kategori maksud untuk ditetapkan pada maksud.

AndroidTestLoop

Pengujian Aplikasi Android dengan Test Loop. Intent <intent-name> akan ditambahkan secara implisit, karena Games adalah satu-satunya pengguna api ini, untuk saat ini.

Representasi JSON
{
  "appPackageId": string,
  "scenarios": [
    integer
  ],
  "scenarioLabels": [
    string
  ],

  // Union field app_under_test can be only one of the following:
  "appApk": {
    object (FileReference)
  },
  "appBundle": {
    object (AppBundle)
  }
  // End of list of possible types for union field app_under_test.
}
Bidang
appPackageId

string

Paket java untuk aplikasi yang sedang diuji. Defaultnya ditentukan dengan memeriksa manifes aplikasi.

scenarios[]

integer

Daftar skenario yang harus dijalankan selama pengujian. Standarnya adalah semua loop pengujian, yang berasal dari manifes aplikasi.

scenarioLabels[]

string

Daftar label skenario yang harus dijalankan selama pengujian. Label skenario harus dipetakan ke label yang ditentukan dalam manifes aplikasi. Misalnya, player_experience dan com.google.test.loops.player_experience menambahkan semua loop yang diberi label dalam manifes dengan nama com.google.test.loops.player_experience ke eksekusi. Skenario juga dapat ditentukan di bidang skenario.

Bidang gabungan app_under_test . Diperlukan. Paket Android untuk diuji. app_under_test hanya dapat berupa salah satu dari berikut ini:
appApk

object ( FileReference )

APK untuk aplikasi yang sedang diuji.

appBundle

object ( AppBundle )

Paket aplikasi multi-apk untuk aplikasi yang sedang diuji.

Tes IosXc

Pengujian aplikasi iOS yang menggunakan framework XCTest. Xcode mendukung opsi untuk "membangun untuk pengujian", yang menghasilkan file .xctestrun yang berisi spesifikasi pengujian (argumen, metode pengujian, dll). Jenis pengujian ini menerima file zip yang berisi file .xctestrun dan konten terkait dari direktori Build/Products yang berisi semua binari yang diperlukan untuk menjalankan pengujian.

Representasi JSON
{
  "testsZip": {
    object (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
Bidang
testsZip

object ( FileReference )

Diperlukan. .zip yang berisi file .xctestrun dan konten direktori DerivedData/Build/Products. File .xctestrun dalam zip ini diabaikan jika bidang xctestrun ditentukan.

xctestrun

object ( FileReference )

File .xctestrun yang akan menggantikan file .xctestrun di zip tes. Karena file .xctestrun berisi variabel lingkungan beserta metode pengujian yang harus dijalankan dan/atau diabaikan, ini dapat berguna untuk pengujian sharding. Default diambil dari zip tes.

xcodeVersion

string

Versi Xcode yang harus digunakan untuk pengujian. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung. Defaultnya adalah versi Xcode terbaru yang didukung Firebase Test Lab.

appBundleId

string

Hanya keluaran. Id bundel untuk aplikasi yang sedang diuji.

testSpecialEntitlements

boolean

Opsi untuk menguji hak aplikasi khusus. Menyetel ini akan menandatangani ulang aplikasi yang memiliki hak khusus dengan pengidentifikasi aplikasi eksplisit. Saat ini mendukung pengujian hak lingkungan aps.

IosTestLoop

Pengujian aplikasi iOS yang mengimplementasikan satu atau lebih skenario game loop. Jenis pengujian ini menerima aplikasi yang diarsipkan (file .ipa) dan daftar skenario bilangan bulat yang akan dijalankan pada aplikasi secara berurutan.

Representasi JSON
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
Bidang
appIpa

object ( FileReference )

Diperlukan. .ipa aplikasi yang akan diuji.

scenarios[]

integer

Daftar skenario yang harus dijalankan selama pengujian. Defaultnya adalah skenario tunggal 0 jika tidak ditentukan.

appBundleId

string

Hanya keluaran. Id bundel untuk aplikasi yang sedang diuji.

Matriks Lingkungan

Matriks lingkungan tempat pengujian akan dijalankan.

Representasi JSON
{

  // Union field environment_matrix can be only one of the following:
  "androidMatrix": {
    object (AndroidMatrix)
  },
  "androidDeviceList": {
    object (AndroidDeviceList)
  },
  "iosDeviceList": {
    object (IosDeviceList)
  }
  // End of list of possible types for union field environment_matrix.
}
Bidang
Bidang gabungan environment_matrix . Diperlukan. Matriks lingkungan. environment_matrix hanya dapat berupa salah satu dari berikut ini:
androidMatrix

object ( AndroidMatrix )

Matriks perangkat Android.

androidDeviceList

object ( AndroidDeviceList )

Daftar perangkat Android; pengujian hanya akan dijalankan pada perangkat yang ditentukan.

iosDeviceList

object ( IosDeviceList )

Daftar perangkat iOS.

AndroidMatrix

Kumpulan permutasi konfigurasi perangkat Android ditentukan oleh perkalian silang sumbu tertentu. Secara internal, AndroidMatrix yang diberikan akan diperluas ke sekumpulan Perangkat Android.

Hanya permutasi yang didukung yang akan dipakai. Permutasi yang tidak valid (misalnya, model/versi yang tidak kompatibel) akan diabaikan.

Representasi JSON
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
Bidang
androidModelIds[]

string

Diperlukan. Id kumpulan perangkat Android yang akan digunakan. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

androidVersionIds[]

string

Diperlukan. Id kumpulan versi OS Android yang akan digunakan. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

locales[]

string

Diperlukan. Kumpulan lokal yang akan diaktifkan perangkat pengujian untuk pengujian. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

orientations[]

string

Diperlukan. Kumpulan orientasi untuk diuji. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

Daftar Perangkat Android

Daftar konfigurasi perangkat Android tempat pengujian akan dijalankan.

Representasi JSON
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
Bidang
androidDevices[]

object ( AndroidDevice )

Diperlukan. Daftar perangkat Android.

Perangkat Android

Satu perangkat Android.

Representasi JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
Bidang
androidModelId

string

Diperlukan. Id perangkat Android yang akan digunakan. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

androidVersionId

string

Diperlukan. Id versi OS Android yang akan digunakan. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

locale

string

Diperlukan. Lokal perangkat pengujian yang digunakan untuk pengujian. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

orientation

string

Diperlukan. Bagaimana perangkat diorientasikan selama pengujian. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

Daftar Perangkat Ios

Daftar konfigurasi perangkat iOS tempat pengujian akan dijalankan.

Representasi JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
Bidang
iosDevices[]

object ( IosDevice )

Diperlukan. Daftar perangkat iOS.

Perangkat Ios

Satu perangkat iOS.

Representasi JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
Bidang
iosModelId

string

Diperlukan. Id perangkat iOS yang akan digunakan. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

iosVersionId

string

Diperlukan. Id versi perangkat lunak utama iOS yang akan digunakan. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

locale

string

Diperlukan. Lokal perangkat pengujian yang digunakan untuk pengujian. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

orientation

string

Diperlukan. Bagaimana perangkat diorientasikan selama pengujian. Gunakan TestEnvironmentDiscoveryService untuk mendapatkan opsi yang didukung.

Eksekusi Tes

Satu pengujian dijalankan dalam satu lingkungan.

Representasi JSON
{
  "id": string,
  "matrixId": string,
  "projectId": string,
  "testSpecification": {
    object (TestSpecification)
  },
  "shard": {
    object (Shard)
  },
  "environment": {
    object (Environment)
  },
  "state": enum (TestState),
  "toolResultsStep": {
    object (ToolResultsStep)
  },
  "timestamp": string,
  "testDetails": {
    object (TestDetails)
  }
}
Bidang
id

string

Hanya keluaran. Id unik yang ditetapkan oleh layanan.

matrixId

string

Hanya keluaran. Id dari TestMatrix yang berisi.

projectId

string

Hanya keluaran. Proyek cloud yang memiliki eksekusi pengujian.

testSpecification

object ( TestSpecification )

Hanya keluaran. Cara menjalankan tes.

shard

object ( Shard )

Hanya keluaran. Detail tentang pecahannya.

environment

object ( Environment )

Hanya keluaran. Bagaimana mesin host dikonfigurasi.

state

enum ( TestState )

Hanya keluaran. Menunjukkan kemajuan pelaksanaan pengujian saat ini (misalnya, SELESAI).

toolResultsStep

object ( ToolResultsStep )

Hanya keluaran. Dimana hasil eksekusi ini ditulis.

timestamp

string ( Timestamp format)

Hanya keluaran. Waktu eksekusi pengujian ini pertama kali dibuat.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z" .

testDetails

object ( TestDetails )

Hanya keluaran. Detail tambahan tentang tes berjalan.

Beling

Hanya keluaran. Detail tentang pecahannya.

Representasi JSON
{
  "shardIndex": integer,
  "numShards": integer,
  "testTargetsForShard": {
    object (TestTargetsForShard)
  },
  "estimatedShardDuration": string
}
Bidang
shardIndex

integer

Hanya keluaran. Indeks pecahan di antara semua pecahan.

numShards

integer

Hanya keluaran. Jumlah total pecahan.

testTargetsForShard

object ( TestTargetsForShard )

Hanya keluaran. Uji target untuk setiap pecahan. Hanya disetel untuk sharding manual.

estimatedShardDuration

string ( Duration format)

Hanya keluaran. Perkiraan durasi pecahan berdasarkan catatan waktu uji kasus sebelumnya, jika tersedia.

Durasi dalam detik hingga sembilan digit pecahan, diakhiri dengan ' s '. Contoh: "3.5s" .

Lingkungan

Lingkungan tempat pengujian dijalankan.

Representasi JSON
{

  // Union field environment can be only one of the following:
  "androidDevice": {
    object (AndroidDevice)
  },
  "iosDevice": {
    object (IosDevice)
  }
  // End of list of possible types for union field environment.
}
Bidang
environment bidang serikat pekerja. Diperlukan. Lingkungan. environment hanya dapat berupa salah satu dari berikut ini:
androidDevice

object ( AndroidDevice )

Perangkat Android yang harus digunakan dengan pengujian Android.

iosDevice

object ( IosDevice )

Perangkat iOS yang harus digunakan dengan pengujian iOS.

Status Uji

Keadaan (yaitu, kemajuan) dari eksekusi tes atau matriks.

Enum
TEST_STATE_UNSPECIFIED Jangan gunakan. Hanya untuk versi proto.
VALIDATING Eksekusi atau matriks sedang divalidasi.
PENDING Eksekusi atau matriks sedang menunggu sumber daya tersedia.
RUNNING

Eksekusinya sedang diproses.

Hanya dapat diatur pada eksekusi.

FINISHED

Eksekusi atau matriks telah berakhir secara normal.

Pada matriks, hal ini berarti pemrosesan tingkat matriks selesai secara normal, namun eksekusi individual mungkin berada dalam status ERROR.

ERROR Eksekusi atau matriks terhenti karena mengalami kegagalan infrastruktur.
UNSUPPORTED_ENVIRONMENT

Eksekusi tidak dijalankan karena berhubungan dengan lingkungan yang tidak didukung.

Hanya dapat diatur pada eksekusi.

INCOMPATIBLE_ENVIRONMENT

Eksekusi tidak dijalankan karena masukan yang diberikan tidak sesuai dengan lingkungan yang diminta.

Contoh: AndroidVersion yang diminta lebih rendah dari minSdkVersion APK

Hanya dapat diatur pada eksekusi.

INCOMPATIBLE_ARCHITECTURE

Eksekusi tidak dijalankan karena input yang diberikan tidak kompatibel dengan arsitektur yang diminta.

Contoh: perangkat yang diminta tidak mendukung menjalankan kode asli di APK yang disediakan

Hanya dapat diatur pada eksekusi.

CANCELLED

Pengguna membatalkan eksekusi.

Hanya dapat diatur pada eksekusi.

INVALID

Eksekusi atau matriks tidak dijalankan karena input yang diberikan tidak valid.

Contoh: file masukan bukan jenis yang diharapkan, formatnya salah/rusak, atau ditandai sebagai malware

AlatHasilLangkah

Mewakili sumber daya langkah hasil alat.

Ini memiliki hasil TestExecution.

Representasi JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
Bidang
projectId

string

Hanya keluaran. Proyek cloud yang memiliki langkah hasil alat.

historyId

string

Hanya keluaran. ID riwayat hasil alat.

executionId

string

Hanya keluaran. ID eksekusi hasil alat.

stepId

string

Hanya keluaran. ID langkah hasil alat.

Detail Tes

Detail tambahan tentang kemajuan tes lari.

Representasi JSON
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
Bidang
progressMessages[]

string

Hanya keluaran. Deskripsi kemajuan tes yang dapat dibaca manusia dan mendetail. Misalnya: "Menyediakan perangkat", "Memulai Tes".

Selama eksekusi, data baru dapat ditambahkan ke akhir pesan kemajuan.

errorMessage

string

Hanya keluaran. Jika TestState adalah ERROR, maka string ini akan berisi detail kesalahan yang dapat dibaca manusia.

Penyimpanan Hasil

Lokasi dimana hasil pengujian yang dijalankan disimpan.

Representasi JSON
{
  "googleCloudStorage": {
    object (GoogleCloudStorage)
  },
  "toolResultsHistory": {
    object (ToolResultsHistory)
  },
  "toolResultsExecution": {
    object (ToolResultsExecution)
  },
  "resultsUrl": string
}
Bidang
googleCloudStorage

object ( GoogleCloudStorage )

Diperlukan.

toolResultsHistory

object ( ToolResultsHistory )

Riwayat hasil alat yang berisi eksekusi hasil alat tempat hasil ditulis.

Jika tidak disediakan, layanan akan memilih nilai yang sesuai.

toolResultsExecution

object ( ToolResultsExecution )

Hanya keluaran. Alat ini menghasilkan eksekusi tempat hasil ditulis.

resultsUrl

string

Hanya keluaran. URL ke hasil di Firebase Web Console.

Penyimpanan GoogleCloud

Lokasi penyimpanan dalam penyimpanan cloud Google (GCS).

Representasi JSON
{
  "gcsPath": string
}
Bidang
gcsPath

string

Diperlukan. Jalur ke direktori di GCS yang pada akhirnya akan berisi hasil pengujian ini. Pengguna yang meminta harus memiliki akses tulis pada bucket di jalur yang disediakan.

AlatHasilSejarah

Mewakili sumber daya riwayat hasil alat.

Representasi JSON
{
  "projectId": string,
  "historyId": string
}
Bidang
projectId

string

Diperlukan. Proyek cloud yang memiliki riwayat hasil alat.

historyId

string

Diperlukan. ID riwayat hasil alat.

Eksekusi Hasil Alat

Mewakili sumber daya eksekusi hasil alat.

Ini memiliki hasil TestMatrix.

Representasi JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
Bidang
projectId

string

Hanya keluaran. Proyek cloud yang memiliki alat tersebut menghasilkan eksekusi.

historyId

string

Hanya keluaran. ID riwayat hasil alat.

executionId

string

Hanya keluaran. ID eksekusi hasil alat.

DetailMatrix Tidak Valid

Alasan rinci mengapa Matriks dianggap TIDAK VALID.

Enum
INVALID_MATRIX_DETAILS_UNSPECIFIED Jangan gunakan. Hanya untuk versi proto.
DETAILS_UNAVAILABLE Matriksnya INVALID, namun tidak ada rincian lebih lanjut yang tersedia.
MALFORMED_APK APK aplikasi masukan tidak dapat diuraikan.
MALFORMED_TEST_APK APK pengujian masukan tidak dapat diuraikan.
NO_MANIFEST AndroidManifest.xml tidak dapat ditemukan.
NO_PACKAGE_NAME Manifes APK tidak mendeklarasikan nama paket.
INVALID_PACKAGE_NAME ID aplikasi APK (alias nama paket) tidak valid. Lihat juga https://developer.android.com/build/configure-app-module#set-application-id
TEST_SAME_AS_APP Paket pengujian dan paket aplikasi sama.
NO_INSTRUMENTATION APK pengujian tidak mendeklarasikan instrumentasi.
NO_SIGNATURE APK aplikasi masukan tidak memiliki tanda tangan.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE Kelas test runner yang ditentukan oleh pengguna atau dalam file manifes APK pengujian tidak kompatibel dengan Android Test Orchestrator. Orchestrator hanya kompatibel dengan AndroidJUnitRunner versi 1.1 atau lebih tinggi. Orchestrator dapat dinonaktifkan dengan menggunakan DO_NOT_USE_ORCHESTRATOR OrchestratorOption.
NO_TEST_RUNNER_CLASS

APK pengujian tidak berisi kelas runner pengujian yang ditentukan oleh pengguna atau dalam file manifes. Hal ini dapat disebabkan oleh salah satu alasan berikut:

  • pengguna memberikan nama kelas pelari yang salah, atau
  • test runner tidak dimasukkan ke dalam APK pengujian (mungkin ada di APK aplikasi).
NO_LAUNCHER_ACTIVITY Aktivitas peluncur utama tidak dapat ditemukan.
FORBIDDEN_PERMISSIONS Aplikasi mendeklarasikan satu atau lebih izin yang tidak diperbolehkan.
INVALID_ROBO_DIRECTIVES Ada konflik dalam roboDirectives yang disediakan.
INVALID_RESOURCE_NAME Setidaknya ada satu nama sumber daya yang tidak valid dalam arahan robo yang diberikan
INVALID_DIRECTIVE_ACTION Definisi tindakan yang tidak valid dalam arahan robo (misalnya tindakan klik atau abaikan menyertakan bidang teks masukan)
TEST_LOOP_INTENT_FILTER_NOT_FOUND Tidak ada filter maksud perulangan pengujian, atau filter yang diberikan tidak diformat dengan benar.
SCENARIO_LABEL_NOT_DECLARED Permintaan tersebut berisi label skenario yang tidak dideklarasikan dalam manifes.
SCENARIO_LABEL_MALFORMED Terjadi kesalahan saat mengurai nilai label.
SCENARIO_NOT_DECLARED Permintaan tersebut berisi nomor skenario yang tidak dideklarasikan dalam manifes.
DEVICE_ADMIN_RECEIVER Aplikasi administrator perangkat tidak diperbolehkan.
MALFORMED_XC_TEST_ZIP XCTest yang di-zip salah formatnya. Zip tidak berisi satu pun file .xctestrun dan konten direktori DerivedData/Build/Products.
BUILT_FOR_IOS_SIMULATOR XCTest yang di-zip dibuat untuk simulator iOS, bukan untuk perangkat fisik.
NO_TESTS_IN_XC_TEST_ZIP File .xctestrun tidak menentukan target pengujian apa pun.
USE_DESTINATION_ARTIFACTS Satu atau lebih target pengujian yang ditentukan dalam file .xctestrun menentukan "UseDestinationArtifacts", yang tidak diizinkan.
TEST_NOT_APP_HOSTED Pengujian XC yang dijalankan pada perangkat fisik harus memiliki "IsAppHostedTestBundle" == "true" di file xctestrun.
PLIST_CANNOT_BE_PARSED File Info.plist di zip XCTest tidak dapat diuraikan.
TEST_ONLY_APK

APK ditandai sebagai "testOnly". Tidak digunakan lagi dan saat ini tidak digunakan.

MALFORMED_IPA IPA masukan tidak dapat diuraikan.
MISSING_URL_SCHEME Aplikasi tidak mendaftarkan skema URL game loop.
MALFORMED_APP_BUNDLE Paket aplikasi iOS (.app) tidak dapat diproses.
NO_CODE_APK APK tidak berisi kode. Lihat juga https://developer.android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK Entah format jalur APK masukan yang diberikan salah, file APK tidak ada, atau pengguna tidak memiliki izin untuk mengakses file APK.
INVALID_APK_PREVIEW_SDK APK dibuat untuk SDK pratinjau yang tidak didukung
MATRIX_TOO_LARGE Matriks diperluas untuk memuat terlalu banyak eksekusi.
TEST_QUOTA_EXCEEDED Kuota pengujian tidak cukup untuk menjalankan eksekusi dalam matriks ini.
SERVICE_NOT_ACTIVATED Api layanan cloud yang diperlukan tidak diaktifkan. Lihat: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR Ada masalah izin yang tidak diketahui saat menjalankan pengujian ini.

Ringkasan Hasil

Ringkasan hasil untuk matriks pengujian yang telah selesai.

Enum
OUTCOME_SUMMARY_UNSPECIFIED Jangan gunakan. Hanya untuk versi proto.
SUCCESS

Uji matriks yang dijalankan berhasil, misalnya:

  • Semua kasus uji lulus.
  • Robo tidak mendeteksi kerusakan pada aplikasi yang sedang diuji.
FAILURE

Proses gagal, misalnya:

  • Satu atau lebih kasus uji gagal.
  • Waktu ujian telah habis.
  • Aplikasi yang sedang diuji mogok.
INCONCLUSIVE Sesuatu yang tidak terduga terjadi. Proses ini tetap dianggap tidak berhasil, namun hal ini kemungkinan merupakan masalah sementara dan menjalankan kembali pengujian mungkin akan berhasil.
SKIPPED

Semua tes dilewati, misalnya:

  • Semua konfigurasi perangkat tidak kompatibel.

Metode

cancel

Membatalkan eksekusi pengujian yang belum selesai dalam matriks pengujian.

create

Membuat dan menjalankan matriks pengujian sesuai dengan spesifikasi yang diberikan.

get

Memeriksa status matriks pengujian dan eksekusi setelah dibuat.