REST Resource: projects.testMatrices

Risorsa: TestMatrix

TestMatrix cattura tutti i dettagli su un test. Contiene la configurazione dell'ambiente, le specifiche dei test, le esecuzioni dei test, lo stato generale e i risultati.

Rappresentazione 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
}
Campi
testMatrixId

string

Solo uscita. ID univoco impostato dal servizio.

projectId

string

Il progetto cloud che possiede la matrice di test.

clientInfo

object ( ClientInfo )

Informazioni sul client che ha invocato il test.

testSpecification

object ( TestSpecification )

Necessario. Come eseguire il test.

environmentMatrix

object ( EnvironmentMatrix )

Necessario. I dispositivi su cui vengono eseguiti i test.

testExecutions[]

object ( TestExecution )

Solo uscita. L'elenco delle esecuzioni di test che il servizio crea per questa matrice.

resultStorage

object ( ResultStorage )

Necessario. Dove sono scritti i risultati della matrice.

state

enum ( TestState )

Solo uscita. Indica lo stato di avanzamento attuale della matrice di test.

timestamp

string ( Timestamp format)

Solo uscita. L'ora in cui questa matrice di test è stata inizialmente creata.

Un timestamp in formato RFC3339 UTC "Zulu", con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z" .

invalidMatrixDetails

enum ( InvalidMatrixDetails )

Solo uscita. Descrive il motivo per cui la matrice è considerata non valida. Utile solo per matrici nello stato INVALID.

flakyTestAttempts

integer

Il numero di volte in cui una TestExecution deve essere ritentata se uno o più test case falliscono per qualsiasi motivo. Il numero massimo di repliche consentite è 10.

L'impostazione predefinita è 0, il che implica nessuna ripetizione.

outcomeSummary

enum ( OutcomeSummary )

Solo uscita. Il risultato complessivo del test. Impostato solo quando lo stato della matrice di test è FINITO.

failFast

boolean

Se vero, verrà effettuato al massimo un solo tentativo per eseguire ciascuna esecuzione/frammento nella matrice. I tentativi di test instabili non vengono influenzati.

Normalmente vengono effettuati 2 o più tentativi se viene rilevato un potenziale problema infrastrutturale.

Questa funzionalità è destinata ai carichi di lavoro sensibili alla latenza. L'incidenza degli errori di esecuzione può essere significativamente maggiore per le matrici fail-fast e il supporto è più limitato a causa di tale aspettativa.

Informazioni sul cliente

Informazioni sul client che ha invocato il test.

Rappresentazione JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
Campi
name

string

Necessario. Nome del cliente, ad esempio gcloud.

clientInfoDetails[]

object ( ClientInfoDetail )

L'elenco delle informazioni dettagliate sul cliente.

ClientInfoDetail

Coppia chiave-valore di informazioni dettagliate sul client che ha richiamato il test. Esempi: {'Versione', '1.0'}, {'Traccia di rilascio', 'BETA'}.

Rappresentazione JSON
{
  "key": string,
  "value": string
}
Campi
key

string

Necessario. La chiave delle informazioni dettagliate sul cliente.

value

string

Necessario. Il valore delle informazioni dettagliate sul cliente.

Specifica del test

Una descrizione di come eseguire il test.

Rappresentazione 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.
}
Campi
testTimeout

string ( Duration format)

Tempo massimo consentito per l'esecuzione di un test prima che venga annullato automaticamente. Il valore predefinito è 5 minuti.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con ' s '. Esempio: "3.5s" .

disableVideoRecording

boolean

Disabilita la registrazione video. Può ridurre la latenza del test.

disablePerformanceMetrics

boolean

Disabilita la registrazione delle metriche delle prestazioni. Può ridurre la latenza del test.

setup del campo dell'Unione. Testare i requisiti di configurazione. setup può essere solo una delle seguenti:
testSetup

object ( TestSetup )

Testare i requisiti di configurazione per Android, ad esempio file da installare, script di bootstrap.

iosTestSetup

object ( IosTestSetup )

Testare i requisiti di configurazione per iOS.

test sul campo dell'Unione. Necessario. Il tipo di test da eseguire. test può essere solo uno dei seguenti:
androidInstrumentationTest

object ( AndroidInstrumentationTest )

Un test della strumentazione Android.

androidRoboTest

object ( AndroidRoboTest )

Un test robotico Android.

androidTestLoop

object ( AndroidTestLoop )

Un'applicazione Android con un ciclo di test.

iosXcTest

object ( IosXcTest )

Un XCTest iOS, tramite un file .xctestrun.

iosTestLoop

object ( IosTestLoop )

Un'applicazione iOS con un ciclo di test.

Configurazione di prova

Una descrizione di come configurare il dispositivo Android prima di eseguire il test.

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

object ( DeviceFile )

Elenco dei file da inviare al dispositivo prima di iniziare il test.

directoriesToPull[]

string

Elenco delle directory presenti sul dispositivo da caricare su GCS al termine del test; devono essere percorsi assoluti in /sdcard, /storage o /data/local/tmp. I nomi dei percorsi sono limitati ai caratteri az AZ 0-9 _ - . + e /

Nota: i percorsi /sdcard e /data verranno resi disponibili e trattati come sostituzioni di percorso implicite. Ad esempio, se /sdcard su un particolare dispositivo non è mappato su una memoria esterna, il sistema lo sostituirà con il prefisso del percorso di memorizzazione esterna per quel dispositivo.

additionalApks[]

object ( Apk )

APK da installare in aggiunta a quelli in fase di test diretto. Attualmente il limite è 100.

account

object ( Account )

Il dispositivo verrà registrato su questo account per tutta la durata del test.

networkProfile

string

Il profilo del traffico di rete utilizzato per eseguire il test. È possibile eseguire query sui profili di rete disponibili utilizzando il tipo di ambiente NETWORK_CONFIGURATION quando si chiama TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

environmentVariables[]

object ( EnvironmentVariable )

Variabili d'ambiente da impostare per il test (applicabile solo per test di strumentazione).

systrace
(deprecated)

object ( SystraceSetup )

Configurazione Systrace per la corsa. Deprecato: Systrace utilizzava Python 2 che è stato disattivato il 01-01-2020. Systrace non è più supportato nell'API Cloud Testing e nei risultati non verrà fornito alcun file Systrace.

dontAutograntPermissions

boolean

Indica se impedire la concessione di tutte le autorizzazioni di runtime al momento dell'installazione dell'app

DispositivoFile

Una singola descrizione del file del dispositivo.

Rappresentazione 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.
}
Campi
Campo di unione device_file . Necessario. device_file può essere solo uno dei seguenti:
obbFile

object ( ObbFile )

Riferimento a un file BLOB binario opaco.

regularFile

object ( RegularFile )

Un riferimento a un file normale.

ObbFile

Un file BLOB binario opaco da installare nel dispositivo prima dell'inizio del test.

Rappresentazione JSON
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
Campi
obbFileName

string

Necessario. Nome del file OBB che deve essere conforme al formato specificato da Android, ad esempio [main|patch].0300110.com.example.android.obb che verrà installato in <shared-storage>/Android/obb/<package-name>/ sul dispositivo.

obb

object ( FileReference )

Necessario. File OBB (Opaque Binary BLOB) da installare sul dispositivo.

File di riferimento

Un riferimento a un file, utilizzato per gli input dell'utente.

Rappresentazione JSON
{

  // Union field file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
Campi
file del campo dell'Unione. Necessario. Il riferimento al file. file può essere solo uno dei seguenti:
gcsPath

string

Un percorso a un file in Google Cloud Storage. Esempio: gs://build-app-1414623860166/app%40debug-unaligned.apk Questi percorsi dovrebbero essere codificati nell'URL (codifica percentuale)

File normale

Un file o una directory da installare sul dispositivo prima dell'inizio del test.

Rappresentazione JSON
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
Campi
content

object ( FileReference )

Necessario. Il file di origine.

devicePath

string

Necessario. Dove posizionare il contenuto sul dispositivo. Deve essere un percorso assoluto e consentito. Se il file esiste, verrà sostituito. Le seguenti directory lato dispositivo e le relative sottodirectory sono consentite:

${EXTERNAL_STORAGE}, /sdcard o /storage

${ANDROID_DATA}/local/tmp o /data/local/tmp

La specifica di un percorso esterno a queste strutture di directory non è valida.

I percorsi /sdcard e /data verranno resi disponibili e trattati come sostituzioni di percorso implicite. Ad esempio, se /sdcard su un particolare dispositivo non è mappato su una memoria esterna, il sistema lo sostituirà con il prefisso del percorso di memorizzazione esterna per quel dispositivo e copierà lì il file.

Si consiglia vivamente di utilizzare l' API Environment nell'app e testare il codice per accedere ai file sul dispositivo in modo portatile.

Apk

Un file del pacchetto Android da installare.

Rappresentazione JSON
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
Campi
location

object ( FileReference )

Il percorso di un APK da installare sul dispositivo prima dell'inizio del test.

packageName

string

Il pacchetto Java per l'APK da installare. Il valore viene determinato esaminando il manifest dell'applicazione.

Account

Identifica un account e come accedervi.

Rappresentazione 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.
}
Campi
Campo unione account_type . Necessario. Il tipo di account, in base a cosa serve (ad esempio Google) e qual è il suo meccanismo di accesso (ad esempio nome utente e password). account_type può essere solo uno dei seguenti:
googleAuto

object ( GoogleAuto )

Un account di accesso Google automatico.

GoogleAuto

Abilita l'accesso automatico all'account Google. Se impostato, il servizio genera automaticamente un account di prova Google e lo aggiunge al dispositivo, prima di eseguire il test. Tieni presente che gli account di prova potrebbero essere riutilizzati. Molte applicazioni mostrano il loro set completo di funzionalità quando sul dispositivo è presente un account. L'accesso al dispositivo con questi account generati consente di testare più funzionalità.

Variabile d'ambiente

Una coppia chiave-valore passata al test come variabile di ambiente.

Rappresentazione JSON
{
  "key": string,
  "value": string
}
Campi
key

string

Chiave per la variabile di ambiente.

value

string

Valore per la variabile di ambiente.

SystraceSetup

Rappresentazione JSON
{
  "durationSeconds": integer
}
Campi
durationSeconds
(deprecated)

integer

Durata del sistema in secondi. Dovrebbe essere compreso tra 1 e 30 secondi. 0 disabilita systrace.

IosTestSetup

Una descrizione di come configurare un dispositivo iOS prima di eseguire il test.

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

string

Il profilo del traffico di rete utilizzato per eseguire il test. È possibile eseguire query sui profili di rete disponibili utilizzando il tipo di ambiente NETWORK_CONFIGURATION quando si chiama TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

additionalIpas[]

object ( FileReference )

App iOS da installare in aggiunta a quelle in fase di test diretto.

pushFiles[]

object ( IosDeviceFile )

Elenco dei file da inviare al dispositivo prima di iniziare il test.

pullDirectories[]

object ( IosDeviceFile )

Elenco delle directory sul dispositivo da caricare su Cloud Storage al termine del test.

Le directory devono trovarsi in una directory condivisa (come /private/var/mobile/Media) o in una directory accessibile all'interno del file system dell'app (come /Documents) specificando l'ID del bundle.

IosDeviceFile

Un file o una directory da installare sul dispositivo prima dell'inizio del test.

Rappresentazione JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
Campi
content

object ( FileReference )

Il file di origine

bundleId

string

L'ID bundle dell'app in cui risiede questo file.

Le app iOS eseguono il sandbox del proprio file system, quindi i file dell'app devono specificare quale app è installata sul dispositivo.

devicePath

string

Posizione del file sul dispositivo, all'interno del file system sandbox dell'app

AndroidStrumentazioneTest

Un test di un'applicazione Android in grado di controllare un componente Android indipendentemente dal suo normale ciclo di vita. I test di strumentazione Android eseguono un APK dell'applicazione e testano l'APK all'interno dello stesso processo su un dispositivo Android virtuale o fisico. Specificano inoltre una classe del test runner, come com.google.GoogleTestRunner, che può variare in base al framework di strumentazione specifico scelto.

Vedi https://developer.android.com/training/testing/fundamentals per ulteriori informazioni sui tipi di test Android.

Rappresentazione 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.
}
Campi
testApk

object ( FileReference )

Necessario. L'APK contenente il codice di test da eseguire.

appPackageId

string

Il pacchetto Java per l'applicazione in prova. Il valore predefinito viene determinato esaminando il manifesto dell'applicazione.

testPackageId

string

Il pacchetto Java per il test da eseguire. Il valore predefinito viene determinato esaminando il manifesto dell'applicazione.

testRunnerClass

string

La classe InstrumentationTestRunner. Il valore predefinito viene determinato esaminando il manifesto dell'applicazione.

testTargets[]

string

Ogni destinazione deve essere completamente qualificata con il nome del pacchetto o del nome della classe, in uno di questi formati:

  • "pacchetto nomepacchetto"
  • "nomepacchetto classe.nome_classe"
  • "nomepacchetto classe.nome_classe#nome_metodo"

Se vuoto, verranno eseguiti tutti i target nel modulo.

orchestratorOption

enum ( OrchestratorOption )

La possibilità di eseguire o meno ciascun test all'interno della propria invocazione della strumentazione con Android Test Orchestrator. ** Orchestrator è compatibile solo con AndroidJUnitRunner versione 1.1 o successiva! ** Orchestrator offre i seguenti vantaggi:

  • Nessuno stato condiviso
  • Gli incidenti sono isolati
  • I log hanno un ambito per test

Vedi https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator per ulteriori informazioni su Android Test Orchestrator.

Se non impostato, il test verrà eseguito senza l'orchestratore.

shardingOption

object ( ShardingOption )

L'opzione per eseguire test su più shard in parallelo.

Campo unione app_under_test . Necessario. app_under_test può essere solo uno dei seguenti:
appApk

object ( FileReference )

L'APK dell'applicazione in prova.

appBundle

object ( AppBundle )

Un app bundle multi-apk per l'applicazione in prova.

AppBundle

Un formato di file Android App Bundle contenente un file BundleConfig.pb, una directory del modulo di base e zero o più directory dei moduli delle funzionalità dinamiche.

Consulta https://developer.android.com/guide/app-bundle/build per indicazioni sulla creazione di app bundle.

Rappresentazione JSON
{

  // Union field bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
Campi
bundle di campi dell'Unione. Necessario. Informazioni sulla posizione del pacchetto. bundle può essere solo uno dei seguenti:
bundleLocation

object ( FileReference )

File .aab che rappresenta l'app bundle in fase di test.

Opzione orchestratore

Specifica come eseguire il test.

Enumerazioni
ORCHESTRATOR_OPTION_UNSPECIFIED Valore predefinito: il server sceglierà la modalità. Attualmente implica che il test verrà eseguito senza l'orchestratore. In futuro, tutti i test sulla strumentazione verranno eseguiti con l'orchestratore. L'utilizzo dell'orchestrator è altamente consigliato a causa di tutti i vantaggi che offre.
USE_ORCHESTRATOR Esegui il test utilizzando l'agente di orchestrazione. ** Compatibile solo con AndroidJUnitRunner versione 1.1 o successiva! ** Consigliato.
DO_NOT_USE_ORCHESTRATOR Esegui il test senza utilizzare l'agente di orchestrazione.

ShardingOpzione

Opzioni per abilitare lo sharding.

Rappresentazione 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.
}
Campi

option campo Unione.

option può essere solo una delle seguenti:

uniformSharding

object ( UniformSharding )

Casi di test sui frammenti in modo uniforme dato un numero totale di frammenti.

manualSharding

object ( ManualSharding )

Suddivide i casi di test nei gruppi specificati di pacchetti, classi e/o metodi.

smartSharding

object ( SmartSharding )

Test degli shard basato sui record temporali dei casi di test precedenti.

UniformSharding

Casi di test sui frammenti in modo uniforme dato un numero totale di frammenti.

Per i test di strumentazione, verrà tradotto negli argomenti AndroidJUnitRunner "-e numShard" e "-e shardIndex". Con lo sharding uniforme abilitato, la specifica di uno di questi argomenti di sharding tramite environmentVariables non è valida.

In base al meccanismo di sharding utilizzato da AndroidJUnitRunner, non vi è alcuna garanzia che i casi di test vengano distribuiti uniformemente su tutti gli shard.

Rappresentazione JSON
{
  "numShards": integer
}
Campi
numShards

integer

Necessario. Il numero totale di frammenti da creare. Deve sempre essere un numero positivo non superiore al numero totale di casi di test. Quando selezioni uno o più dispositivi fisici, il numero di shard deve essere <= 50. Quando selezioni uno o più dispositivi virtuali ARM, deve essere <= 200. Quando selezioni solo dispositivi virtuali x86, deve essere <= 500 .

Sharding manuale

Suddivide i casi di test nei gruppi specificati di pacchetti, classi e/o metodi.

Con lo sharding manuale abilitato, la specifica delle destinazioni del test tramite EnvironmentVariables o in InstrumentationTest non è valida.

Rappresentazione JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
Campi
testTargetsForShard[]

object ( TestTargetsForShard )

Necessario. Gruppo di pacchetti, classi e/o metodi di test da eseguire per ogni shard creato manualmente. È necessario specificare almeno uno shard se questo campo è presente. Quando selezioni uno o più dispositivi fisici, il numero di testTargetsForShard ripetuti deve essere <= 50. Quando selezioni uno o più dispositivi virtuali ARM, deve essere <= 200. Quando selezioni solo dispositivi virtuali x86, deve essere <= 500.

TestTargetsForShard

Testare gli obiettivi per un frammento.

Rappresentazione JSON
{
  "testTargets": [
    string
  ]
}
Campi
testTargets[]

string

Gruppo di pacchetti, classi e/o metodi di test da eseguire per ogni shard. Gli obiettivi devono essere specificati nel formato dell'argomento AndroidJUnitRunner. Ad esempio, "pacchetto com.my.packages" "class com.my.package.MyClass".

Il numero di testTargets deve essere maggiore di 0.

SmartSharding

Test degli shard basato sui record temporali dei casi di test precedenti.

Rappresentazione JSON
{
  "targetedShardDuration": string
}
Campi
targetedShardDuration

string ( Duration format)

Il tempo necessario per eseguire i test all'interno di uno shard.

Impostazione predefinita: 300 secondi (5 minuti). Il minimo consentito: 120 secondi (2 minuti).

Il conteggio dei frammenti viene impostato dinamicamente in base al tempo, fino al limite massimo dei frammenti (descritto di seguito). Per garantire almeno un caso di test per ogni shard, il numero di shard non supererà il numero di casi di test. La durata dello shard verrà superata se:

  • È stato raggiunto il limite massimo di shard ed è rimasto più tempo di test calcolato da allocare negli shard.
  • Si stima che ogni singolo test sia più lungo della durata dello shard target.

La durata dello sharding non è garantita perché lo sharding intelligente utilizza la cronologia dei test case e le durate predefinite che potrebbero non essere precise. Le regole per trovare i record temporali dei casi di test sono:

  • Se il servizio ha elaborato un test case negli ultimi 30 giorni, verrà utilizzato il record dell'ultimo test case riuscito.
  • Per i nuovi casi di test verrà utilizzata la durata media di altri casi di test noti.
  • Se non sono disponibili record temporali dei test case precedenti, la durata predefinita dei test case è 15 secondi.

Poiché la durata effettiva dello shard può superare la durata dello shard target, ti consigliamo di impostare il valore target almeno 5 minuti in meno rispetto al timeout massimo consentito del test (45 minuti per i dispositivi fisici e 60 minuti per quelli virtuali) o di utilizzare la durata personalizzata testare il valore di timeout impostato. Questo approccio evita di cancellare lo shard prima che tutti i test possano essere completati.

Tieni presente che esiste un limite per il numero massimo di shard. Quando selezioni uno o più dispositivi fisici, il numero di shard deve essere <= 50. Quando selezioni uno o più dispositivi virtuali ARM, deve essere <= 200. Quando selezioni solo dispositivi virtuali x86, deve essere <= 500 Per garantire almeno un caso di test per ogni shard, il numero di shard non supererà il numero di casi di test. Ogni shard creato conta ai fini della quota di test giornaliera.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con ' s '. Esempio: "3.5s" .

AndroidRoboTest

Un test di un'applicazione Android che esplora l'applicazione su un dispositivo Android virtuale o fisico, trovando colpevoli e arresti anomali man mano che procede.

Rappresentazione 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.
}
Campi
appPackageId

string

Il pacchetto Java per l'applicazione in prova. Il valore predefinito viene determinato esaminando il manifesto dell'applicazione.

appInitialActivity

string

L'attività iniziale da utilizzare per avviare l'app.

maxDepth
(deprecated)

integer

La profondità massima dello stack trasversale che Robo può esplorare. Devono essere almeno 2 per consentire a Robo di esplorare l'app oltre la prima attività. L'impostazione predefinita è 50.

maxSteps
(deprecated)

integer

Il numero massimo di passaggi che Robo può eseguire. L'impostazione predefinita non ha limiti.

roboDirectives[]

object ( RoboDirective )

Una serie di direttive che Robo dovrebbe applicare durante la scansione. Ciò consente agli utenti di personalizzare la scansione. Ad esempio, è possibile fornire il nome utente e la password per un account di prova.

roboMode

enum ( RoboMode )

La modalità in cui Robo dovrebbe essere eseguito. La maggior parte dei client dovrebbe consentire al server di compilare questo campo automaticamente.

roboScript

object ( FileReference )

Un file JSON con una sequenza di azioni che Robo dovrebbe eseguire come prologo alla scansione.

startingIntents[]

object ( RoboStartingIntent )

Gli intenti utilizzati per avviare l'app per la scansione. Se non ne viene fornita alcuna, viene avviata l'attività principale del launcher. Se ne vengono forniti alcuni, verranno avviati solo quelli forniti (l'attività di avvio principale deve essere fornita esplicitamente).

Campo unione app_under_test . Necessario. app_under_test può essere solo uno dei seguenti:
appApk

object ( FileReference )

L'APK dell'applicazione in prova.

appBundle

object ( AppBundle )

Un app bundle multi-apk per l'applicazione in prova.

RoboDirective

Indica a Robo di interagire con uno specifico elemento dell'interfaccia utente se viene rilevato durante la scansione. Attualmente, Robo può eseguire l'immissione di testo o fare clic su un elemento.

Rappresentazione JSON
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
Campi
resourceName

string

Necessario. Il nome della risorsa Android dell'elemento dell'interfaccia utente di destinazione. Ad esempio, in Java: R.string.foo in xml: @string/foo È necessaria solo la parte "foo". Documento di riferimento: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

Il testo che Robo è tenuto a impostare. Se lasciata vuota, la direttiva verrà trattata come un CLIC sull'elemento corrispondente a ResourceName.

actionType

enum ( RoboActionType )

Necessario. Il tipo di azione che Robo dovrebbe eseguire sull'elemento specificato.

RoboActionType

Azioni che Robo può eseguire sugli elementi dell'interfaccia utente.

Enumerazioni
ACTION_TYPE_UNSPECIFIED NON USARE. Solo per il controllo delle versioni del prototipo.
SINGLE_CLICK Ordina a Robo di fare clic sull'elemento specificato. No-op se l'elemento specificato non è selezionabile.
ENTER_TEXT Dirigi Robo per inserire il testo nell'elemento specificato. No-op se l'elemento specificato non è abilitato o non consente l'immissione di testo.
IGNORE Ordina a Robo di ignorare le interazioni con un elemento specifico.

RoboMode

La modalità in cui Robo dovrebbe essere eseguito.

Enumerazioni
ROBO_MODE_UNSPECIFIED Ciò significa che il server dovrebbe scegliere la modalità. Consigliato.
ROBO_VERSION_1 Esegue Robo in modalità solo UIAutomator senza dimettersi dall'app
ROBO_VERSION_2 Esegue Robo in Espresso standard con fallback UIAutomator

RoboStartingIntent

Messaggio per specificare le attività iniziali da sottoporre a scansione.

Rappresentazione 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.
}
Campi
timeout

string ( Duration format)

Timeout in secondi per ciascun intento.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con ' s '. Esempio: "3.5s" .

Campo unione starting_intent . Necessario. Dettagli dell'intento per avviare un'attività. starting_intent può essere solo uno dei seguenti:
launcherActivity

object ( LauncherActivityIntent )

Un intento che avvia l'attività principale del launcher.

startActivity

object ( StartActivityIntent )

Un intento che avvia un'attività con dettagli specifici.

LauncherActivityIntent

Specifica un intento che avvia l'attività principale del programma di avvio.

StartActivityIntent

Un intento iniziale specificato da un'azione, un URI e categorie.

Rappresentazione JSON
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
Campi
action

string

Nome dell'azione. Obbligatorio per START_ACTIVITY.

uri

string

URI per l'azione.

categories[]

string

Categorie di intenti da impostare sull'intento.

AndroidTestLoop

Un test di un'applicazione Android con un ciclo di test. L'intento <intent-name> verrà aggiunto implicitamente, poiché Games è l'unico utente di questa API, per il momento.

Rappresentazione 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.
}
Campi
appPackageId

string

Il pacchetto Java per l'applicazione in prova. L'impostazione predefinita viene determinata esaminando il manifesto dell'applicazione.

scenarios[]

integer

L'elenco degli scenari da eseguire durante il test. L'impostazione predefinita prevede tutti i cicli di test, derivati ​​dal manifest dell'applicazione.

scenarioLabels[]

string

L'elenco delle etichette dello scenario da eseguire durante il test. Le etichette dello scenario devono corrispondere alle etichette definite nel manifesto dell'applicazione. Ad esempio, player_experience e com.google.test.loops.player_experience aggiungono all'esecuzione tutti i loop etichettati nel manifest con il nome com.google.test.loops.player_experience. Gli scenari possono essere specificati anche nel campo scenari.

Campo unione app_under_test . Necessario. Il pacchetto Android da testare. app_under_test può essere solo uno dei seguenti:
appApk

object ( FileReference )

L'APK dell'applicazione in prova.

appBundle

object ( AppBundle )

Un app bundle multi-apk per l'applicazione in prova.

IosXcTest

Un test di un'applicazione iOS che utilizza il framework XCTest. Xcode supporta l'opzione "build for testing", che genera un file .xctestrun che contiene una specifica di test (argomenti, metodi di test, ecc.). Questo tipo di test accetta un file zip contenente il file .xctestrun e il contenuto corrispondente della directory Build/Products che contiene tutti i file binari necessari per eseguire i test.

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

object ( FileReference )

Necessario. Il file .zip contenente il file .xctestrun e il contenuto della directory DerivedData/Build/Products. Il file .xctestrun in questo zip viene ignorato se viene specificato il campo xctestrun.

xctestrun

object ( FileReference )

Un file .xctestrun che sovrascriverà il file .xctestrun nel file zip dei test. Poiché il file .xctestrun contiene variabili di ambiente insieme ai metodi di test da eseguire e/o ignorare, ciò può essere utile per lo sharding dei test. L'impostazione predefinita è presa dal file zip dei test.

xcodeVersion

string

La versione di Xcode da utilizzare per il test. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate. Le impostazioni predefinite corrispondono all'ultima versione di Xcode supportata da Firebase Test Lab.

appBundleId

string

Solo uscita. L'ID del bundle per l'applicazione in fase di test.

testSpecialEntitlements

boolean

L'opzione per testare i diritti speciali delle app. L'impostazione di questa opzione firmerebbe nuovamente l'app con diritti speciali con un identificatore di applicazione esplicito. Attualmente supporta il test dei diritti dell'ambiente aps.

IosTestLoop

Un test di un'applicazione iOS che implementa uno o più scenari di loop di gioco. Questo tipo di test accetta un'applicazione archiviata (file .ipa) e un elenco di scenari interi che verranno eseguiti sull'app in sequenza.

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

object ( FileReference )

Necessario. Il file .ipa dell'applicazione da testare.

scenarios[]

integer

L'elenco degli scenari da eseguire durante il test. Il valore predefinito è il singolo scenario 0 se non specificato.

appBundleId

string

Solo uscita. L'ID del bundle per l'applicazione in fase di test.

MatriceAmbiente

La matrice degli ambienti in cui verrà eseguito il test.

Rappresentazione 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.
}
Campi
Campo dell'unione environment_matrix . Necessario. La matrice ambientale. environment_matrix può essere solo uno dei seguenti:
androidMatrix

object ( AndroidMatrix )

Una matrice di dispositivi Android.

androidDeviceList

object ( AndroidDeviceList )

Un elenco di dispositivi Android; il test verrà eseguito solo sui dispositivi specificati.

iosDeviceList

object ( IosDeviceList )

Un elenco di dispositivi iOS.

AndroidMatrix

Un insieme di permutazioni di configurazione del dispositivo Android è definito dal prodotto incrociato degli assi indicati. Internamente, l'AndroidMatrix specificato verrà espanso in un set di AndroidDevices.

Verranno istanziate solo le permutazioni supportate. Le permutazioni non valide (ad esempio modelli/versioni incompatibili) vengono ignorate.

Rappresentazione JSON
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
Campi
androidModelIds[]

string

Necessario. Gli ID del set di dispositivi Android da utilizzare. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

androidVersionIds[]

string

Necessario. Gli ID del set di versioni del sistema operativo Android da utilizzare. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

locales[]

string

Necessario. L'insieme di impostazioni locali abilitate dal dispositivo di test per il test. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

orientations[]

string

Necessario. L'insieme di orientamenti con cui eseguire il test. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

AndroidDeviceList

Un elenco di configurazioni del dispositivo Android in cui deve essere eseguito il test.

Rappresentazione JSON
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
Campi
androidDevices[]

object ( AndroidDevice )

Necessario. Un elenco di dispositivi Android.

Dispositivo Android

Un unico dispositivo Android.

Rappresentazione JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
Campi
androidModelId

string

Necessario. L'ID del dispositivo Android da utilizzare. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

androidVersionId

string

Necessario. L'ID della versione del sistema operativo Android da utilizzare. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

locale

string

Necessario. Le impostazioni locali utilizzate dal dispositivo di test per il test. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

orientation

string

Necessario. Come viene orientato il dispositivo durante il test. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

IosDeviceList

Un elenco di configurazioni del dispositivo iOS in cui deve essere eseguito il test.

Rappresentazione JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
Campi
iosDevices[]

object ( IosDevice )

Necessario. Un elenco di dispositivi iOS.

IosDevice

Un singolo dispositivo iOS.

Rappresentazione JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
Campi
iosModelId

string

Necessario. L'ID del dispositivo iOS da utilizzare. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

iosVersionId

string

Necessario. L'ID della versione principale del software iOS da utilizzare. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

locale

string

Necessario. Le impostazioni locali utilizzate dal dispositivo di test per il test. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

orientation

string

Necessario. Come viene orientato il dispositivo durante il test. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate.

Esecuzione del test

Un singolo test eseguito in un unico ambiente.

Rappresentazione 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)
  }
}
Campi
id

string

Solo uscita. ID univoco impostato dal servizio.

matrixId

string

Solo uscita. ID del TestMatrix contenente.

projectId

string

Solo uscita. Il progetto cloud a cui appartiene l'esecuzione del test.

testSpecification

object ( TestSpecification )

Solo uscita. Come eseguire il test.

shard

object ( Shard )

Solo uscita. Dettagli sul frammento.

environment

object ( Environment )

Solo uscita. Come sono configurate le macchine host.

state

enum ( TestState )

Solo uscita. Indica lo stato di avanzamento attuale dell'esecuzione del test (ad esempio, FINISHED).

toolResultsStep

object ( ToolResultsStep )

Solo uscita. Dove sono scritti i risultati di questa esecuzione.

timestamp

string ( Timestamp format)

Solo uscita. L'ora in cui è stata inizialmente creata l'esecuzione del test.

Un timestamp in formato RFC3339 UTC "Zulu", con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z" .

testDetails

object ( TestDetails )

Solo uscita. Ulteriori dettagli sul test in corso.

Coccio

Solo uscita. Dettagli sul frammento.

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

integer

Solo uscita. L'indice dello shard tra tutti gli shard.

numShards

integer

Solo uscita. Il numero totale di frammenti.

testTargetsForShard

object ( TestTargetsForShard )

Solo uscita. Testare gli obiettivi per ogni frammento. Impostato solo per lo sharding manuale.

estimatedShardDuration

string ( Duration format)

Solo uscita. La durata stimata dello shard in base ai record temporali dei test case precedenti, se disponibili.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con ' s '. Esempio: "3.5s" .

Ambiente

L'ambiente in cui viene eseguito il test.

Rappresentazione 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.
}
Campi
environment sul campo dell'Unione. Necessario. L'ambiente. environment può essere solo uno dei seguenti:
androidDevice

object ( AndroidDevice )

Un dispositivo Android che deve essere utilizzato con un test Android.

iosDevice

object ( IosDevice )

Un dispositivo iOS che deve essere utilizzato con un test iOS.

StatoTest

Lo stato (ovvero l'avanzamento) dell'esecuzione o della matrice di un test.

Enumerazioni
TEST_STATE_UNSPECIFIED Non usare. Solo per il controllo delle versioni del prototipo.
VALIDATING L'esecuzione o la matrice è in fase di convalida.
PENDING L'esecuzione o la matrice è in attesa che le risorse diventino disponibili.
RUNNING

L'esecuzione è attualmente in fase di elaborazione.

Può essere impostato solo su un'esecuzione.

FINISHED

L'esecuzione o la matrice è terminata normalmente.

Su una matrice ciò significa che l'elaborazione a livello di matrice è stata completata normalmente, ma le singole esecuzioni potrebbero trovarsi in uno stato di ERRORE.

ERROR L'esecuzione o la matrice si è interrotta perché ha riscontrato un guasto dell'infrastruttura.
UNSUPPORTED_ENVIRONMENT

L'esecuzione non è stata eseguita perché corrisponde a un ambiente non supportato.

Può essere impostato solo su un'esecuzione.

INCOMPATIBLE_ENVIRONMENT

L'esecuzione non è stata eseguita perché gli input forniti non sono compatibili con l'ambiente richiesto.

Esempio: la AndroidVersion richiesta è inferiore alla minSdkVersion dell'APK

Può essere impostato solo su un'esecuzione.

INCOMPATIBLE_ARCHITECTURE

L'esecuzione non è stata eseguita perché gli input forniti non sono compatibili con l'architettura richiesta.

Esempio: il dispositivo richiesto non supporta l'esecuzione del codice nativo nell'APK fornito

Può essere impostato solo su un'esecuzione.

CANCELLED

L'utente ha annullato l'esecuzione.

Può essere impostato solo su un'esecuzione.

INVALID

L'esecuzione o la matrice non è stata eseguita perché gli input forniti non sono validi.

Esempi: il file di input non è del tipo previsto, non è valido/corrotto oppure è stato contrassegnato come malware

StrumentoRisultatiPassaggio

Rappresenta una risorsa del passaggio dei risultati dello strumento.

Questo ha i risultati di un TestExecution.

Rappresentazione JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
Campi
projectId

string

Solo uscita. Il progetto cloud che possiede il passaggio dei risultati dello strumento.

historyId

string

Solo uscita. Un ID della cronologia dei risultati dello strumento.

executionId

string

Solo uscita. Uno strumento risulta l'ID di esecuzione.

stepId

string

Solo uscita. Un ID passaggio dei risultati dello strumento.

Dettagli del test

Ulteriori dettagli sullo stato di avanzamento del test di corsa.

Rappresentazione JSON
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
Campi
progressMessages[]

string

Solo uscita. Descrizioni dettagliate e leggibili dell'avanzamento del test. Ad esempio: "Provisioning di un dispositivo", "Avvio del test".

Durante il corso dell'esecuzione potrebbero essere aggiunti nuovi dati alla fine di progressMessages.

errorMessage

string

Solo uscita. Se TestState è ERROR, questa stringa conterrà dettagli leggibili sull'errore.

RisultatoArchiviazione

Posizioni in cui vengono archiviati i risultati dell'esecuzione del test.

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

object ( GoogleCloudStorage )

Necessario.

toolResultsHistory

object ( ToolResultsHistory )

La cronologia dei risultati dello strumento che contiene l'esecuzione dei risultati dello strumento in cui vengono scritti i risultati.

Se non fornito, il servizio sceglierà un valore appropriato.

toolResultsExecution

object ( ToolResultsExecution )

Solo uscita. L'esecuzione dei risultati dello strumento in cui vengono scritti i risultati.

resultsUrl

string

Solo uscita. URL dei risultati nella console Web Firebase.

GoogleCloudStorage

Una posizione di archiviazione all'interno dell'archivio cloud di Google (GCS).

Rappresentazione JSON
{
  "gcsPath": string
}
Campi
gcsPath

string

Necessario. Il percorso di una directory in GCS che conterrà eventualmente i risultati di questo test. L'utente richiedente deve avere accesso in scrittura sul bucket nel percorso fornito.

Storia dei risultati degli strumenti

Rappresenta una risorsa della cronologia dei risultati dello strumento.

Rappresentazione JSON
{
  "projectId": string,
  "historyId": string
}
Campi
projectId

string

Necessario. Il progetto cloud che possiede la cronologia dei risultati dello strumento.

historyId

string

Necessario. Un ID della cronologia dei risultati dello strumento.

Esecuzione dei risultati dello strumento

Rappresenta una risorsa di esecuzione dei risultati dello strumento.

Questo ha i risultati di un TestMatrix.

Rappresentazione JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
Campi
projectId

string

Solo uscita. Il progetto cloud proprietario dello strumento risulta in esecuzione.

historyId

string

Solo uscita. Un ID della cronologia dei risultati dello strumento.

executionId

string

Solo uscita. Uno strumento risulta l'ID di esecuzione.

Dettagli matrice non validi

Il motivo dettagliato per cui una matrice è stata ritenuta NON VALIDA.

Enumerazioni
INVALID_MATRIX_DETAILS_UNSPECIFIED Non usare. Solo per il controllo delle versioni del prototipo.
DETAILS_UNAVAILABLE La matrice NON È VALIDA, ma non sono disponibili ulteriori dettagli.
MALFORMED_APK Impossibile analizzare l'APK dell'app di input.
MALFORMED_TEST_APK Non è stato possibile analizzare l'APK del test di input.
NO_MANIFEST Impossibile trovare AndroidManifest.xml.
NO_PACKAGE_NAME Il manifesto dell'APK non dichiara il nome del pacchetto.
INVALID_PACKAGE_NAME L'ID dell'applicazione APK (noto anche come nome del pacchetto) non è valido. Vedi anche https://developer.android.com/build/configure-app-module#set-application-id
TEST_SAME_AS_APP Il pacchetto di test e il pacchetto dell'app sono gli stessi.
NO_INSTRUMENTATION L'apk di test non dichiara una strumentazione.
NO_SIGNATURE L'apk dell'app di input non ha una firma.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE La classe del test runner specificata dall'utente o nel file manifest dell'APK di test non è compatibile con Android Test Orchestrator. Orchestrator è compatibile solo con AndroidJUnitRunner versione 1.1 o successiva. L'orchestrator può essere disabilitato utilizzando DO_NOT_USE_ORCHESTRATOR OrchestratorOption.
NO_TEST_RUNNER_CLASS

L'APK di test non contiene la classe del test runner specificata dall'utente o nel file manifest. Ciò può essere causato da uno dei seguenti motivi:

  • l'utente ha fornito un nome di classe corridore errato oppure
  • il test runner non è integrato nell'APK di test (potrebbe invece essere nell'APK dell'app).
NO_LAUNCHER_ACTIVITY Impossibile trovare un'attività di avvio principale.
FORBIDDEN_PERMISSIONS L'app dichiara una o più autorizzazioni non consentite.
INVALID_ROBO_DIRECTIVES C'è un conflitto nelle roboDirectives fornite.
INVALID_RESOURCE_NAME È presente almeno un nome di risorsa non valido nelle direttive robo fornite
INVALID_DIRECTIVE_ACTION Definizione di azione non valida nelle direttive Robo (ad esempio, un'azione di clic o di ignoranza include un campo di testo di input)
TEST_LOOP_INTENT_FILTER_NOT_FOUND Non esiste un filtro dell'intento del ciclo di test oppure quello fornito non è formattato correttamente.
SCENARIO_LABEL_NOT_DECLARED La richiesta contiene un'etichetta di scenario che non è stata dichiarata nel manifest.
SCENARIO_LABEL_MALFORMED Si è verificato un errore durante l'analisi del valore di un'etichetta.
SCENARIO_NOT_DECLARED La richiesta contiene un numero di scenario che non è stato dichiarato nel manifest.
DEVICE_ADMIN_RECEIVER Le applicazioni di amministratore del dispositivo non sono consentite.
MALFORMED_XC_TEST_ZIP Il formato XCTest compresso non era valido. Il file zip non conteneva un singolo file .xctestrun e il contenuto della directory DerivedData/Build/Products.
BUILT_FOR_IOS_SIMULATOR L'XCTest compresso è stato creato per il simulatore iOS anziché per un dispositivo fisico.
NO_TESTS_IN_XC_TEST_ZIP Il file .xctestrun non ha specificato alcuna destinazione di test.
USE_DESTINATION_ARTIFACTS Una o più destinazioni di test definite nel file .xctestrun specifica "UseDestinationArtifacts", che non è consentito.
TEST_NOT_APP_HOSTED I test XC eseguiti su dispositivi fisici devono avere "IsAppHostedTestBundle" == "true" nel file xctestrun.
PLIST_CANNOT_BE_PARSED Non è stato possibile analizzare un file Info.plist nel file zip XCTest.
TEST_ONLY_APK

L'APK è contrassegnato come "testOnly". Deprecato e attualmente non utilizzato.

MALFORMED_IPA Non è stato possibile analizzare l'IPA di input.
MISSING_URL_SCHEME L'applicazione non registra lo schema URL del loop di gioco.
MALFORMED_APP_BUNDLE Impossibile elaborare il bundle dell'applicazione iOS (.app).
NO_CODE_APK L'APK non contiene codice. Vedi anche https://developer.android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK Il percorso APK di input fornito non aveva un formato corretto, il file APK non esiste oppure l'utente non dispone dell'autorizzazione per accedere al file APK.
INVALID_APK_PREVIEW_SDK L'APK è creato per un SDK di anteprima che non è supportato
MATRIX_TOO_LARGE La matrice si è espansa per contenere troppe esecuzioni.
TEST_QUOTA_EXCEEDED Quota di test insufficiente per eseguire le esecuzioni in questa matrice.
SERVICE_NOT_ACTIVATED Un'API del servizio cloud richiesta non è attivata. Vedi: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR Si è verificato un problema di autorizzazione sconosciuto durante l'esecuzione di questo test.

Riepilogo dei risultati

Riepilogo dei risultati per una matrice di test finita.

Enumerazioni
OUTCOME_SUMMARY_UNSPECIFIED Non usare. Solo per il controllo delle versioni del prototipo.
SUCCESS

L'esecuzione della matrice di test ha avuto esito positivo, ad esempio:

  • Tutti i casi di test sono stati superati.
  • Robo non ha rilevato un arresto anomalo dell'applicazione sottoposta a test.
FAILURE

Una corsa non è riuscita, ad esempio:

  • Uno o più casi di test non sono riusciti.
  • Un test è scaduto.
  • L'applicazione in prova si è bloccata.
INCONCLUSIVE È successo qualcosa di inaspettato. L'esecuzione dovrebbe comunque essere considerata non riuscita, ma è probabile che si tratti di un problema temporaneo e la riesecuzione del test potrebbe avere esito positivo.
SKIPPED

Tutti i test sono stati saltati, ad esempio:

  • Tutte le configurazioni del dispositivo erano incompatibili.

Metodi

cancel

Annulla le esecuzioni di test non completate in una matrice di test.

create

Crea ed esegue una matrice di test in base alle specifiche fornite.

get

Controlla lo stato di una matrice di test e le esecuzioni una volta create.