REST Resource: projects.testMatrices

Ressource : TestMatrix

TestMatrix capture tous les détails d'un test. Il contient la configuration de l'environnement, la spécification des tests, les exécutions des tests, ainsi que l'état et les résultats globaux.

Représentation 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
}
Des champs
testMatrixId

string

Sortie uniquement. Identifiant unique défini par le service.

projectId

string

Le projet cloud qui possède la matrice de test.

clientInfo

object ( ClientInfo )

Informations sur le client qui a invoqué le test.

testSpecification

object ( TestSpecification )

Requis. Comment exécuter le test.

environmentMatrix

object ( EnvironmentMatrix )

Requis. Les appareils sur lesquels les tests sont exécutés.

testExecutions[]

object ( TestExecution )

Sortie uniquement. Liste des exécutions de tests que le service crée pour cette matrice.

resultStorage

object ( ResultStorage )

Requis. Où sont écrits les résultats de la matrice.

state

enum ( TestState )

Sortie uniquement. Indique la progression actuelle de la matrice de test.

timestamp

string ( Timestamp format)

Sortie uniquement. Heure à laquelle cette matrice de test a été initialement créée.

Un horodatage au format RFC3339 UTC "Zulu", avec une résolution en nanosecondes et jusqu'à neuf chiffres fractionnaires. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z" .

invalidMatrixDetails

enum ( InvalidMatrixDetails )

Sortie uniquement. Décrit pourquoi la matrice est considérée comme non valide. Utile uniquement pour les matrices à l’état INVALID.

flakyTestAttempts

integer

Nombre de fois qu'une TestExecution doit être réessayée si un ou plusieurs de ses scénarios de test échouent pour une raison quelconque. Le nombre maximum de rediffusions autorisées est de 10.

La valeur par défaut est 0, ce qui implique aucune réexécution.

outcomeSummary

enum ( OutcomeSummary )

Sortie uniquement. Le résultat global du test. Défini uniquement lorsque l'état de la matrice de test est TERMINÉ.

failFast

boolean

Si c'est vrai, une seule tentative au maximum sera effectuée pour exécuter chaque exécution/fragment dans la matrice. Les tentatives de test instables ne sont pas affectées.

Normalement, 2 tentatives ou plus sont effectuées si un problème potentiel d'infrastructure est détecté.

Cette fonctionnalité est destinée aux charges de travail sensibles à la latence. L'incidence des échecs d'exécution peut être considérablement plus élevée pour les matrices à échec rapide et la prise en charge est plus limitée en raison de cette attente.

InfoClient

Informations sur le client qui a invoqué le test.

Représentation JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
Des champs
name

string

Requis. Nom du client, tel que gcloud.

clientInfoDetails[]

object ( ClientInfoDetail )

La liste des informations détaillées sur le client.

ClientInfoDétail

Paire clé-valeur d'informations détaillées sur le client qui a appelé le test. Exemples : {'Version', '1.0'}, {'Release Track', 'BETA'}.

Représentation JSON
{
  "key": string,
  "value": string
}
Des champs
key

string

Requis. La clé des informations détaillées sur le client.

value

string

Requis. La valeur des informations détaillées sur le client.

Spécifications du test

Une description de la façon d'exécuter le test.

Représentation 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.
}
Des champs
testTimeout

string ( Duration format)

Durée maximale pendant laquelle une exécution de test est autorisée à s'exécuter avant d'être automatiquement annulée. La valeur par défaut est de 5 minutes.

Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, se terminant par « s ». Exemple : "3.5s" .

disableVideoRecording

boolean

Désactive l'enregistrement vidéo. Peut réduire la latence des tests.

disablePerformanceMetrics

boolean

Désactive l’enregistrement des mesures de performances. Peut réduire la latence des tests.

setup du champ Union. Exigences de configuration des tests. setup ne peut être que l'un des éléments suivants :
testSetup

object ( TestSetup )

Testez les exigences de configuration pour Android, par exemple les fichiers à installer, les scripts d'amorçage.

iosTestSetup

object ( IosTestSetup )

Testez les exigences de configuration pour iOS.

test sur le terrain de l'Union. Requis. Le type de test à exécuter. test ne peut être qu’un des éléments suivants :
androidInstrumentationTest

object ( AndroidInstrumentationTest )

Un test d'instrumentation Android.

androidRoboTest

object ( AndroidRoboTest )

Un test robot Android.

androidTestLoop

object ( AndroidTestLoop )

Une application Android avec une boucle de test.

iosXcTest

object ( IosXcTest )

Un XCTest iOS, via un fichier .xctestrun.

iosTestLoop

object ( IosTestLoop )

Une application iOS avec une boucle de test.

Configuration du test

Une description de la façon de configurer l'appareil Android avant d'exécuter le test.

Représentation JSON
{
  "filesToPush": [
    {
      object (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "additionalApks": [
    {
      object (Apk)
    }
  ],
  "account": {
    object (Account)
  },
  "networkProfile": string,
  "environmentVariables": [
    {
      object (EnvironmentVariable)
    }
  ],
  "systrace": {
    object (SystraceSetup)
  },
  "dontAutograntPermissions": boolean
}
Des champs
filesToPush[]

object ( DeviceFile )

Liste des fichiers à transmettre à l'appareil avant de démarrer le test.

directoriesToPull[]

string

Liste des répertoires sur l'appareil à télécharger sur GCS à la fin du test ; il doit s'agir de chemins absolus sous /sdcard, /storage ou /data/local/tmp. Les noms de chemin sont limités aux caractères az AZ 0-9 _ - . + et /

Remarque : Les chemins /sdcard et /data seront rendus disponibles et traités comme des substitutions de chemin implicites. Par exemple, si /sdcard sur un périphérique particulier ne correspond pas au stockage externe, le système le remplacera par le préfixe du chemin de stockage externe pour ce périphérique.

additionalApks[]

object ( Apk )

Des APK à installer en plus de ceux directement testés. Actuellement plafonné à 100.

account

object ( Account )

L'appareil sera connecté sur ce compte pendant toute la durée du test.

networkProfile

string

Profil de trafic réseau utilisé pour exécuter le test. Les profils réseau disponibles peuvent être interrogés à l'aide du type d'environnement NETWORK_CONFIGURATION lors de l'appel de TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

environmentVariables[]

object ( EnvironmentVariable )

Variables d'environnement à définir pour le test (applicable uniquement pour les tests d'instrumentation).

systrace
(deprecated)

object ( SystraceSetup )

Configuration Systrace pour l’exécution. Obsolète : Systrace utilisait Python 2 qui a été abandonné le 01/01/2020. Systrace n'est plus pris en charge dans l'API Cloud Testing et aucun fichier Systrace ne sera fourni dans les résultats.

dontAutograntPermissions

boolean

S'il faut empêcher l'octroi de toutes les autorisations d'exécution lors de l'installation de l'application

Fichier de périphérique

Une seule description de fichier de périphérique.

Représentation 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.
}
Des champs
Champ d'union device_file . Requis. device_file ne peut être qu'un des éléments suivants :
obbFile

object ( ObbFile )

Une référence à un fichier blob binaire opaque.

regularFile

object ( RegularFile )

Une référence à un fichier normal.

Fichier Obb

Un fichier blob binaire opaque à installer sur l’appareil avant le début du test.

Représentation JSON
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
Des champs
obbFileName

string

Requis. Nom du fichier OBB qui doit être conforme au format spécifié par Android, par exemple [main|patch].0300110.com.example.android.obb qui sera installé dans <shared-storage>/Android/obb/<package-name>/ sur l'appareil.

obb

object ( FileReference )

Requis. Fichier(s) Opaque Binary Blob (OBB) à installer sur l’appareil.

Référence de fichier

Une référence à un fichier, utilisée pour les entrées utilisateur.

Représentation JSON
{

  // Union field file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
Des champs
file de terrain de l'Union. Requis. La référence du fichier. file ne peut être qu'un des éléments suivants :
gcsPath

string

Chemin d'accès à un fichier dans Google Cloud Storage. Exemple : gs://build-app-1414623860166/app%40debug-unalignementd.apk Ces chemins devraient être codés en URL (encodage en pourcentage)

Fichier régulier

Un fichier ou un répertoire à installer sur l'appareil avant le démarrage du test.

Représentation JSON
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
Des champs
content

object ( FileReference )

Requis. Le fichier source.

devicePath

string

Requis. Où placer le contenu sur l'appareil. Il doit s'agir d'un chemin absolu sur liste autorisée. Si le fichier existe, il sera remplacé. Les répertoires suivants côté appareil et tous leurs sous-répertoires sont sur liste verte :

${EXTERNAL_STORAGE}, /sdcard ou /storage

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

La spécification d'un chemin en dehors de ces arborescences de répertoires n'est pas valide.

Les chemins /sdcard et /data seront rendus disponibles et traités comme des substitutions de chemin implicites. Par exemple, si /sdcard sur un périphérique particulier ne correspond pas au stockage externe, le système le remplacera par le préfixe du chemin de stockage externe pour ce périphérique et y copiera le fichier.

Il est fortement conseillé d'utiliser l' API d'environnement dans l'application et le code de test pour accéder aux fichiers sur l'appareil de manière portable.

Apk

Un fichier de package Android à installer.

Représentation JSON
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
Des champs
location

object ( FileReference )

Le chemin d’accès à un APK à installer sur l’appareil avant le début du test.

packageName

string

Le package Java pour l’APK à installer. La valeur est déterminée en examinant le manifeste de l'application.

Compte

Identifie un compte et comment s'y connecter.

Représentation 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.
}
Des champs
Champ d'union account_type . Requis. Le type de compte, en fonction de son utilité (par exemple Google) et de son mécanisme de connexion (par exemple nom d'utilisateur et mot de passe). account_type ne peut être qu'un des éléments suivants :
googleAuto

object ( GoogleAuto )

Un compte de connexion Google automatique.

GoogleAuto

Permet la connexion automatique au compte Google. S'il est défini, le service génère automatiquement un compte de test Google et l'ajoute à l'appareil avant d'exécuter le test. Notez que les comptes de test peuvent être réutilisés. De nombreuses applications affichent l'ensemble de leurs fonctionnalités lorsqu'un compte est présent sur l'appareil. La connexion à l'appareil avec ces comptes générés permet de tester plus de fonctionnalités.

Variable d'environnement

Une paire clé-valeur transmise en tant que variable d'environnement au test.

Représentation JSON
{
  "key": string,
  "value": string
}
Des champs
key

string

Clé de la variable d'environnement.

value

string

Valeur de la variable d'environnement.

Configuration Systrace

Représentation JSON
{
  "durationSeconds": integer
}
Des champs
durationSeconds
(deprecated)

integer

Durée de la Systrace en secondes. Cela devrait durer entre 1 et 30 secondes. 0 désactive la trace système.

IosTestSetup

Une description de la façon de configurer un appareil iOS avant d'exécuter le test.

Représentation JSON
{
  "networkProfile": string,
  "additionalIpas": [
    {
      object (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
Des champs
networkProfile

string

Profil de trafic réseau utilisé pour exécuter le test. Les profils réseau disponibles peuvent être interrogés à l'aide du type d'environnement NETWORK_CONFIGURATION lors de l'appel de TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

additionalIpas[]

object ( FileReference )

Applications iOS à installer en plus de celles directement testées.

pushFiles[]

object ( IosDeviceFile )

Liste des fichiers à transmettre à l'appareil avant de démarrer le test.

pullDirectories[]

object ( IosDeviceFile )

Liste des répertoires de l'appareil à télécharger sur Cloud Storage à la fin du test.

Les répertoires doivent se trouver soit dans un répertoire partagé (tel que /private/var/mobile/Media), soit dans un répertoire accessible à l'intérieur du système de fichiers de l'application (tel que /Documents) en spécifiant l'ID du bundle.

Fichier de périphérique Ios

Un fichier ou un répertoire à installer sur l'appareil avant le démarrage du test.

Représentation JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
Des champs
content

object ( FileReference )

Le fichier source

bundleId

string

L'identifiant du bundle de l'application où se trouve ce fichier.

Les applications iOS disposent de leur propre système de fichiers en sandbox, les fichiers d'application doivent donc spécifier quelle application est installée sur l'appareil.

devicePath

string

Emplacement du fichier sur l'appareil, dans le système de fichiers sandbox de l'application

AndroidInstrumentationTest

Un test d'une application Android capable de contrôler un composant Android indépendamment de son cycle de vie normal. Les tests d'instrumentation Android exécutent un APK d'application et testent l'APK dans le même processus sur un appareil Android virtuel ou physique. Ils spécifient également une classe d'exécution de tests, telle que com.google.GoogleTestRunner, qui peut varier en fonction du cadre d'instrumentation spécifique choisi.

Voir https://developer.android.com/training/testing/fundamentals pour plus d'informations sur les types de tests Android.

Représentation 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.
}
Des champs
testApk

object ( FileReference )

Requis. L'APK contenant le code de test à exécuter.

appPackageId

string

Le package Java pour l'application testée. La valeur par défaut est déterminée en examinant le manifeste de l'application.

testPackageId

string

Le package Java pour le test à exécuter. La valeur par défaut est déterminée en examinant le manifeste de l'application.

testRunnerClass

string

La classe InstrumentationTestRunner. La valeur par défaut est déterminée en examinant le manifeste de l'application.

testTargets[]

string

Chaque cible doit être entièrement qualifiée avec le nom du package ou le nom de la classe, dans l'un de ces formats :

  • "package nom du package"
  • "class packageName.class_name"
  • "class packageName.class_name#method_name"

S'il est vide, toutes les cibles du module seront exécutées.

orchestratorOption

enum ( OrchestratorOption )

La possibilité d'exécuter ou non chaque test dans sa propre invocation d'instrumentation avec Android Test Orchestrator. ** Orchestrator est uniquement compatible avec AndroidJUnitRunner version 1.1 ou supérieure ! ** Orchestrator offre les avantages suivants :

  • Aucun état partagé
  • Les accidents sont isolés
  • Les journaux sont limités par test

Voir https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator pour plus d'informations sur Android Test Orchestrator.

S’il n’est pas défini, le test sera exécuté sans l’orchestrateur.

shardingOption

object ( ShardingOption )

La possibilité d'exécuter des tests sur plusieurs fragments en parallèle.

Champ syndical app_under_test . Requis. app_under_test ne peut être qu'un des éléments suivants :
appApk

object ( FileReference )

L'APK de l'application testée.

appBundle

object ( AppBundle )

Un ensemble d'applications multi-apk pour l'application testée.

AppBundle

Un format de fichier Android App Bundle, contenant un fichier BundleConfig.pb, un répertoire de module de base, zéro ou plusieurs répertoires de modules de fonctionnalités dynamiques.

Voir https://developer.android.com/guide/app-bundle/build pour obtenir des conseils sur la création d'App Bundles.

Représentation JSON
{

  // Union field bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
Des champs
bundle de champs Union. Requis. Regroupez les informations de localisation. bundle ne peut être qu'un des éléments suivants :
bundleLocation

object ( FileReference )

Fichier .aab représentant le bundle d’applications testé.

Option Orchestrateur

Spécifie comment exécuter le test.

Énumérations
ORCHESTRATOR_OPTION_UNSPECIFIED Valeur par défaut : le serveur choisira le mode. Cela implique actuellement que le test s'exécutera sans l'orchestrateur. À l’avenir, tous les tests d’instrumentation seront exécutés avec l’orchestrateur. L’utilisation de l’orchestrateur est fortement encouragée en raison de tous les avantages qu’il offre.
USE_ORCHESTRATOR Exécutez le test à l’aide de l’orchestrateur. ** Uniquement compatible avec AndroidJUnitRunner version 1.1 ou supérieure ! ** Recommandé.
DO_NOT_USE_ORCHESTRATOR Exécutez le test sans utiliser Orchestrator.

Option de partage

Options pour activer le partitionnement.

Représentation 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.
}
Des champs

option champ Union.

option ne peut être qu'un des éléments suivants :

uniformSharding

object ( UniformSharding )

Partage uniformément les cas de test en fonction d'un nombre total de fragments.

manualSharding

object ( ManualSharding )

Divise les cas de test dans les groupes spécifiés de packages, de classes et/ou de méthodes.

smartSharding

object ( SmartSharding )

Test des fragments basé sur les enregistrements de synchronisation des cas de test précédents.

PartageUniforme

Partage uniformément les cas de test en fonction d'un nombre total de fragments.

Pour les tests d'instrumentation, il sera traduit en arguments AndroidJUnitRunner "-e numShard" et "-e shardIndex". Lorsque le partitionnement uniforme est activé, la spécification de l'un ou l'autre de ces arguments de partitionnement via environmentVariables n'est pas valide.

Sur la base du mécanisme de partitionnement utilisé par AndroidJUnitRunner, rien ne garantit que les cas de test seront répartis uniformément sur toutes les partitions.

Représentation JSON
{
  "numShards": integer
}
Des champs
numShards

integer

Requis. Le nombre total de fragments à créer. Il doit toujours s'agir d'un nombre positif qui ne dépasse pas le nombre total de cas de test. Lorsque vous sélectionnez un ou plusieurs appareils physiques, le nombre de partitions doit être <= 50. Lorsque vous sélectionnez un ou plusieurs appareils virtuels ARM, il doit être <= 200. Lorsque vous sélectionnez uniquement des appareils virtuels x86, il doit être <= 500. .

Partage manuel

Divise les cas de test dans les groupes spécifiés de packages, de classes et/ou de méthodes.

Lorsque le partitionnement manuel est activé, la spécification de cibles de test via EnvironmentVariables ou dans InstrumentationTest n'est pas valide.

Représentation JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
Des champs
testTargetsForShard[]

object ( TestTargetsForShard )

Requis. Groupe de packages, de classes et/ou de méthodes de test à exécuter pour chaque partition créée manuellement. Vous devez spécifier au moins une partition si ce champ est présent. Lorsque vous sélectionnez un ou plusieurs appareils physiques, le nombre de testsTargetsForShard répétés doit être <= 50. Lorsque vous sélectionnez un ou plusieurs appareils virtuels ARM, il doit être <= 200. Lorsque vous sélectionnez uniquement des appareils virtuels x86, il doit être <= 500.

TestTargetsForShard

Testez les cibles pour un fragment.

Représentation JSON
{
  "testTargets": [
    string
  ]
}
Des champs
testTargets[]

string

Groupe de packages, de classes et/ou de méthodes de test à exécuter pour chaque partition. Les cibles doivent être spécifiées au format d'argument AndroidJUnitRunner. Par exemple, « package com.my.packages » « classe com.my.package.MyClass ».

Le nombre de testTargets doit être supérieur à 0.

Partage intelligent

Test des fragments basé sur les enregistrements de synchronisation des cas de test précédents.

Représentation JSON
{
  "targetedShardDuration": string
}
Des champs
targetedShardDuration

string ( Duration format)

La durée que devraient prendre les tests au sein d’une partition.

Par défaut : 300 secondes (5 minutes). Le minimum autorisé : 120 secondes (2 minutes).

Le nombre de fragments est défini dynamiquement en fonction du temps, jusqu'à la limite maximale de fragments (décrite ci-dessous). Pour garantir au moins un scénario de test pour chaque fragment, le nombre de fragments ne dépassera pas le nombre de scénarios de test. La durée du fragment sera dépassée si :

  • La limite maximale de partitions est atteinte et il reste plus de temps de test calculé à allouer aux partitions.
  • On estime que tout test individuel est plus long que la durée de fragmentation ciblée.

La durée du fragment n'est pas garantie, car le partage intelligent utilise l'historique des cas de test et des durées par défaut qui peuvent ne pas être exactes. Les règles permettant de trouver les enregistrements de synchronisation des scénarios de test sont :

  • Si le service a traité un scénario de test au cours des 30 derniers jours, l'enregistrement du dernier scénario de test réussi sera utilisé.
  • Pour les nouveaux cas de test, la durée moyenne des autres cas de test connus sera utilisée.
  • Si aucun enregistrement de synchronisation de scénario de test précédent n'est disponible, la durée par défaut du scénario de test est de 15 secondes.

Étant donné que la durée réelle de la partition peut dépasser la durée de partition ciblée, nous vous recommandons de définir la valeur ciblée au moins 5 minutes de moins que le délai d'expiration de test maximum autorisé (45 minutes pour les appareils physiques et 60 minutes pour les appareils virtuels), ou d'utiliser l'option personnalisée. valeur du délai d'expiration du test que vous avez définie. Cette approche évite d'annuler la partition avant la fin de tous les tests.

Notez qu'il existe une limite pour le nombre maximum de fragments. Lorsque vous sélectionnez un ou plusieurs appareils physiques, le nombre de partitions doit être <= 50. Lorsque vous sélectionnez un ou plusieurs appareils virtuels ARM, il doit être <= 200. Lorsque vous sélectionnez uniquement des appareils virtuels x86, il doit être <= 500. Pour garantir au moins un scénario de test par fragment, le nombre de fragments ne dépassera pas le nombre de scénarios de test. Chaque fragment créé compte dans le quota de test quotidien.

Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, se terminant par « s ». Exemple : "3.5s" .

AndroidRoboTest

Un test d'une application Android qui explore l'application sur un appareil Android virtuel ou physique, trouvant les coupables et les plantages au fur et à mesure.

Représentation 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.
}
Des champs
appPackageId

string

Le package Java pour l'application testée. La valeur par défaut est déterminée en examinant le manifeste de l'application.

appInitialActivity

string

L'activité initiale qui doit être utilisée pour démarrer l'application.

maxDepth
(deprecated)

integer

La profondeur maximale de la pile de traversée que Robo peut explorer. Il doit y avoir au moins 2 pour que Robo explore l'application au-delà de la première activité. La valeur par défaut est 50.

maxSteps
(deprecated)

integer

Le nombre maximum d'étapes que Robo peut exécuter. La valeur par défaut n'est pas une limite.

roboDirectives[]

object ( RoboDirective )

Un ensemble de directives que Robo doit appliquer pendant l'analyse. Cela permet aux utilisateurs de personnaliser l'exploration. Par exemple, le nom d'utilisateur et le mot de passe d'un compte de test peuvent être fournis.

roboMode

enum ( RoboMode )

Le mode dans lequel Robo doit fonctionner. La plupart des clients devraient autoriser le serveur à remplir automatiquement ce champ.

roboScript

object ( FileReference )

Un fichier JSON avec une séquence d'actions que Robo doit effectuer comme prologue pour l'analyse.

startingIntents[]

object ( RoboStartingIntent )

Intents utilisés pour lancer l'application pour l'analyse. Si aucune n’est fournie, alors l’activité principale du lanceur est lancée. Si certains sont fournis, alors seuls ceux fournis sont lancés (l'activité principale du lanceur doit être fournie explicitement).

Champ syndical app_under_test . Requis. app_under_test ne peut être qu'un des éléments suivants :
appApk

object ( FileReference )

L'APK de l'application testée.

appBundle

object ( AppBundle )

Un ensemble d'applications multi-apk pour l'application testée.

RoboDirective

Demande à Robo d'interagir avec un élément spécifique de l'interface utilisateur s'il est rencontré lors de l'analyse. Actuellement, Robo peut effectuer une saisie de texte ou un clic sur un élément.

Représentation JSON
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
Des champs
resourceName

string

Requis. Le nom de la ressource Android de l’élément d’interface utilisateur cible. Par exemple, en Java : R.string.foo en xml : @string/foo Seule la partie "foo" est nécessaire. Document de référence : https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

Le texte que Robo est invité à définir. Si elle est laissée vide, la directive sera traitée comme un CLIC sur l'élément correspondant au nom de la ressource.

actionType

enum ( RoboActionType )

Requis. Le type d'action que Robo doit effectuer sur l'élément spécifié.

Type d'action robot

Actions que Robo peut effectuer sur les éléments de l'interface utilisateur.

Énumérations
ACTION_TYPE_UNSPECIFIED NE PAS UTILISER. Pour le versionnage de proto uniquement.
SINGLE_CLICK Demandez à Robo de cliquer sur l’élément spécifié. Pas d'opération si l'élément spécifié n'est pas cliquable.
ENTER_TEXT Demandez à Robo de saisir du texte sur l'élément spécifié. Pas d'opération si l'élément spécifié n'est pas activé ou n'autorise pas la saisie de texte.
IGNORE Demandez à Robo d'ignorer les interactions avec un élément spécifique.

Mode Robo

Le mode dans lequel Robo doit fonctionner.

Énumérations
ROBO_MODE_UNSPECIFIED Cela signifie que le serveur doit choisir le mode. Recommandé.
ROBO_VERSION_1 Exécute Robo en mode UIAutomator uniquement sans que l'application ne démissionne
ROBO_VERSION_2 Exécute Robo dans Espresso standard avec la solution de secours UIAutomator

RoboStartingIntent

Message permettant de spécifier les activités de démarrage à analyser.

Représentation 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.
}
Des champs
timeout

string ( Duration format)

Délai d'expiration en secondes pour chaque intention.

Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, se terminant par « s ». Exemple : "3.5s" .

Champ d'union starting_intent . Requis. Détails de l’intention de démarrer une activité. starting_intent ne peut être qu'un des éléments suivants :
launcherActivity

object ( LauncherActivityIntent )

Une intention qui démarre l'activité principale du lanceur.

startActivity

object ( StartActivityIntent )

Une intention qui démarre une activité avec des détails spécifiques.

LauncherActivityIntent

Spécifie une intention qui démarre l'activité principale du lanceur.

StartActivityIntent

Une intention de départ spécifiée par une action, un uri et des catégories.

Représentation JSON
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
Des champs
action

string

Nom de l'action. Obligatoire pour START_ACTIVITY.

uri

string

URI de l'action.

categories[]

string

Catégories d'intention à définir sur l'intention.

AndroidTestBoucle

Un test d'une application Android avec une boucle de test. L'intention <intent-name> sera implicitement ajoutée, puisque Games est pour le moment le seul utilisateur de cette API.

Représentation 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.
}
Des champs
appPackageId

string

Le package Java pour l'application testée. La valeur par défaut est déterminée en examinant le manifeste de l'application.

scenarios[]

integer

La liste des scénarios qui doivent être exécutés pendant le test. La valeur par défaut correspond à toutes les boucles de test, dérivées du manifeste de l'application.

scenarioLabels[]

string

Liste des étiquettes de scénario qui doivent être exécutées pendant le test. Les étiquettes du scénario doivent correspondre aux étiquettes définies dans le manifeste de l'application. Par exemple, player_experience et com.google.test.loops.player_experience ajoutent toutes les boucles étiquetées dans le manifeste avec le nom com.google.test.loops.player_experience à l'exécution. Des scénarios peuvent également être spécifiés dans le champ Scénarios.

Champ syndical app_under_test . Requis. Le package Android à tester. app_under_test ne peut être qu'un des éléments suivants :
appApk

object ( FileReference )

L'APK de l'application testée.

appBundle

object ( AppBundle )

Un ensemble d'applications multi-apk pour l'application testée.

IosXcTest

Un test d'une application iOS qui utilise le framework XCTest. Xcode prend en charge l'option « construire pour les tests », qui génère un fichier .xctestrun contenant une spécification de test (arguments, méthodes de test, etc.). Ce type de test accepte un fichier zip contenant le fichier .xctestrun et le contenu correspondant du répertoire Build/Products qui contient tous les binaires nécessaires à l'exécution des tests.

Représentation JSON
{
  "testsZip": {
    object (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
Des champs
testsZip

object ( FileReference )

Requis. Le .zip contenant le fichier .xctestrun et le contenu du répertoire DerivedData/Build/Products. Le fichier .xctestrun dans ce zip est ignoré si le champ xctestrun est spécifié.

xctestrun

object ( FileReference )

Un fichier .xctestrun qui remplacera le fichier .xctestrun dans le zip des tests. Étant donné que le fichier .xctestrun contient des variables d'environnement ainsi que des méthodes de test à exécuter et/ou à ignorer, cela peut être utile pour les tests de partitionnement. La valeur par défaut est extraite du zip des tests.

xcodeVersion

string

La version Xcode qui doit être utilisée pour le test. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge. La valeur par défaut est la dernière version de Xcode prise en charge par Firebase Test Lab.

appBundleId

string

Sortie uniquement. L’ID du bundle pour l’application testée.

testSpecialEntitlements

boolean

La possibilité de tester les droits spéciaux des applications. Définir cela re-signerait l'application ayant des droits spéciaux avec un identifiant d'application explicite. Prend actuellement en charge les tests des droits d'environnement aps.

IosTestBoucle

Un test d'une application iOS qui implémente un ou plusieurs scénarios de boucle de jeu. Ce type de test accepte une application archivée (fichier .ipa) et une liste de scénarios entiers qui seront exécutés séquentiellement sur l'application.

Représentation JSON
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
Des champs
appIpa

object ( FileReference )

Requis. Le .ipa de l’application à tester.

scenarios[]

integer

La liste des scénarios qui doivent être exécutés pendant le test. La valeur par défaut est le scénario unique 0 si non spécifié.

appBundleId

string

Sortie uniquement. L’ID du bundle pour l’application testée.

EnvironnementMatrice

La matrice des environnements dans lesquels le test doit être exécuté.

Représentation 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.
}
Des champs
Champ Union environment_matrix . Requis. La matrice de l'environnement. environment_matrix ne peut être que l'un des éléments suivants :
androidMatrix

object ( AndroidMatrix )

Une matrice d'appareils Android.

androidDeviceList

object ( AndroidDeviceList )

Une liste d'appareils Android ; le test sera exécuté uniquement sur les appareils spécifiés.

iosDeviceList

object ( IosDeviceList )

Une liste d'appareils iOS.

AndroidMatrice

Un ensemble de permutations de configuration d'appareil Android est défini par le produit vectoriel des axes donnés. En interne, l'AndroidMatrix donné sera étendu à un ensemble d'AndroidDevices.

Seules les permutations prises en charge seront instanciées. Les permutations invalides (par exemple, modèles/versions incompatibles) sont ignorées.

Représentation JSON
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
Des champs
androidModelIds[]

string

Requis. Les identifiants de l’ensemble d’appareils Android à utiliser. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

androidVersionIds[]

string

Requis. Les identifiants de l’ensemble de versions du système d’exploitation Android à utiliser. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

locales[]

string

Requis. L'ensemble des paramètres régionaux que le périphérique de test activera pour les tests. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

orientations[]

string

Requis. L’ensemble des orientations avec lesquelles tester. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

Liste des appareils Android

Une liste des configurations d'appareils Android dans lesquelles le test doit être exécuté.

Représentation JSON
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
Des champs
androidDevices[]

object ( AndroidDevice )

Requis. Une liste d'appareils Android.

Appareil Android

Un seul appareil Android.

Représentation JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
Des champs
androidModelId

string

Requis. L'identifiant de l'appareil Android à utiliser. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

androidVersionId

string

Requis. L'identifiant de la version du système d'exploitation Android à utiliser. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

locale

string

Requis. Paramètres régionaux utilisés par le périphérique de test pour les tests. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

orientation

string

Requis. Comment l'appareil est orienté pendant le test. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

Liste des appareils Ios

Une liste des configurations d'appareils iOS dans lesquelles le test doit être exécuté.

Représentation JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
Des champs
iosDevices[]

object ( IosDevice )

Requis. Une liste d'appareils iOS.

Appareil Ios

Un seul appareil iOS.

Représentation JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
Des champs
iosModelId

string

Requis. L'identifiant de l'appareil iOS à utiliser. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

iosVersionId

string

Requis. L’identifiant de la version majeure du logiciel iOS à utiliser. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

locale

string

Requis. Paramètres régionaux utilisés par le périphérique de test pour les tests. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

orientation

string

Requis. Comment l'appareil est orienté pendant le test. Utilisez TestEnvironmentDiscoveryService pour obtenir les options prises en charge.

TestExécution

Un seul test exécuté dans un seul environnement.

Représentation 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)
  }
}
Des champs
id

string

Sortie uniquement. Identifiant unique défini par le service.

matrixId

string

Sortie uniquement. ID du TestMatrix contenant.

projectId

string

Sortie uniquement. Le projet cloud propriétaire de l'exécution du test.

testSpecification

object ( TestSpecification )

Sortie uniquement. Comment exécuter le test.

shard

object ( Shard )

Sortie uniquement. Détails sur le fragment.

environment

object ( Environment )

Sortie uniquement. Comment la ou les machines hôtes sont configurées.

state

enum ( TestState )

Sortie uniquement. Indique la progression actuelle de l'exécution du test (par exemple, FINISHED).

toolResultsStep

object ( ToolResultsStep )

Sortie uniquement. Où sont écrits les résultats de cette exécution.

timestamp

string ( Timestamp format)

Sortie uniquement. Heure à laquelle cette exécution de test a été initialement créée.

Un horodatage au format RFC3339 UTC "Zulu", avec une résolution en nanosecondes et jusqu'à neuf chiffres fractionnaires. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z" .

testDetails

object ( TestDetails )

Sortie uniquement. Détails supplémentaires sur le test en cours.

Tesson

Sortie uniquement. Détails sur le fragment.

Représentation JSON
{
  "shardIndex": integer,
  "numShards": integer,
  "testTargetsForShard": {
    object (TestTargetsForShard)
  },
  "estimatedShardDuration": string
}
Des champs
shardIndex

integer

Sortie uniquement. L'index du fragment parmi tous les fragments.

numShards

integer

Sortie uniquement. Le nombre total de fragments.

testTargetsForShard

object ( TestTargetsForShard )

Sortie uniquement. Testez les cibles pour chaque fragment. Uniquement défini pour le partitionnement manuel.

estimatedShardDuration

string ( Duration format)

Sortie uniquement. Durée estimée de la partition basée sur les enregistrements de synchronisation des scénarios de test précédents, si disponibles.

Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, se terminant par « s ». Exemple : "3.5s" .

Environnement

L'environnement dans lequel le test est exécuté.

Représentation 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.
}
Des champs
environment de terrain syndical. Requis. L'environnement. environment ne peut être que l'un des éléments suivants :
androidDevice

object ( AndroidDevice )

Un appareil Android qui doit être utilisé avec un test Android.

iosDevice

object ( IosDevice )

Un appareil iOS qui doit être utilisé avec un test iOS.

État de test

L'état (c'est-à-dire la progression) d'une exécution ou d'une matrice de test.

Énumérations
TEST_STATE_UNSPECIFIED Ne pas utiliser. Pour le versionnage de proto uniquement.
VALIDATING L'exécution ou la matrice est en cours de validation.
PENDING L'exécution ou la matrice attend que les ressources soient disponibles.
RUNNING

L'exécution est actuellement en cours.

Ne peut être défini que sur une exécution.

FINISHED

L'exécution ou la matrice s'est terminée normalement.

Sur une matrice, cela signifie que le traitement au niveau de la matrice s'est terminé normalement, mais que les exécutions individuelles peuvent être dans un état ERREUR.

ERROR L'exécution ou la matrice s'est arrêtée car elle a rencontré une panne d'infrastructure.
UNSUPPORTED_ENVIRONMENT

L'exécution n'a pas été exécutée car elle correspond à un environnement non supporté.

Ne peut être défini que sur une exécution.

INCOMPATIBLE_ENVIRONMENT

L'exécution n'a pas été exécutée car les entrées fournies sont incompatibles avec l'environnement demandé.

Exemple : la version Android demandée est inférieure à la version minSdk de l'APK

Ne peut être défini que sur une exécution.

INCOMPATIBLE_ARCHITECTURE

L'exécution n'a pas été exécutée car les entrées fournies sont incompatibles avec l'architecture demandée.

Exemple : l'appareil demandé ne prend pas en charge l'exécution du code natif dans l'APK fourni

Ne peut être défini que sur une exécution.

CANCELLED

L'utilisateur a annulé l'exécution.

Ne peut être défini que sur une exécution.

INVALID

L'exécution ou la matrice n'a pas été exécutée car les entrées fournies ne sont pas valides.

Exemples : le fichier d'entrée n'est pas du type attendu, est mal formé/corrompu ou a été signalé comme malware

OutilRésultatsÉtape

Représente une ressource d’étape de résultats d’outil.

Cela a les résultats d’un TestExecution.

Représentation JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
Des champs
projectId

string

Sortie uniquement. Le projet cloud qui possède l'étape de résultats de l'outil.

historyId

string

Sortie uniquement. Un identifiant d’historique des résultats d’outil.

executionId

string

Sortie uniquement. Un ID d’exécution des résultats de l’outil.

stepId

string

Sortie uniquement. Un ID d’étape de résultat d’outil.

Détails du test

Détails supplémentaires sur la progression du test en cours.

Représentation JSON
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
Des champs
progressMessages[]

string

Sortie uniquement. Descriptions détaillées et lisibles par l'homme de la progression du test. Par exemple : "Provisionnement d'un appareil", "Démarrage du test".

Au cours de l'exécution, de nouvelles données peuvent être ajoutées à la fin des progressMessages.

errorMessage

string

Sortie uniquement. Si TestState est ERROR, cette chaîne contiendra des détails lisibles par l'homme sur l'erreur.

Stockage des résultats

Emplacements où les résultats de l’exécution du test sont stockés.

Représentation JSON
{
  "googleCloudStorage": {
    object (GoogleCloudStorage)
  },
  "toolResultsHistory": {
    object (ToolResultsHistory)
  },
  "toolResultsExecution": {
    object (ToolResultsExecution)
  },
  "resultsUrl": string
}
Des champs
googleCloudStorage

object ( GoogleCloudStorage )

Requis.

toolResultsHistory

object ( ToolResultsHistory )

L'historique des résultats de l'outil qui contient l'exécution des résultats de l'outil dans laquelle les résultats sont écrits.

S’il n’est pas fourni, le service choisira une valeur appropriée.

toolResultsExecution

object ( ToolResultsExecution )

Sortie uniquement. Exécution des résultats de l’outil dans lequel les résultats sont écrits.

resultsUrl

string

Sortie uniquement. URL vers les résultats dans la console Web Firebase.

GoogleCloudStorage

Un emplacement de stockage dans le stockage cloud Google (GCS).

Représentation JSON
{
  "gcsPath": string
}
Des champs
gcsPath

string

Requis. Le chemin d'accès à un répertoire dans GCS qui contiendra éventuellement les résultats de ce test. L'utilisateur demandeur doit disposer d'un accès en écriture sur le compartiment dans le chemin fourni.

OutilRésultatsHistorique

Représente une ressource d’historique des résultats d’outil.

Représentation JSON
{
  "projectId": string,
  "historyId": string
}
Des champs
projectId

string

Requis. Le projet cloud qui possède l'historique des résultats de l'outil.

historyId

string

Requis. Un identifiant d’historique des résultats d’outil.

OutilRésultatsExécution

Représente une ressource d’exécution des résultats d’outil.

Cela a les résultats d’un TestMatrix.

Représentation JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
Des champs
projectId

string

Sortie uniquement. Le projet cloud qui possède l'exécution des résultats de l'outil.

historyId

string

Sortie uniquement. Un identifiant d’historique des résultats d’outil.

executionId

string

Sortie uniquement. Un ID d’exécution des résultats de l’outil.

InvalidMatrixDetails

La raison détaillée pour laquelle une matrice a été jugée INVALIDE.

Énumérations
INVALID_MATRIX_DETAILS_UNSPECIFIED Ne pas utiliser. Pour le versionnage de proto uniquement.
DETAILS_UNAVAILABLE La matrice est INVALIDE, mais aucun autre détail n’est disponible.
MALFORMED_APK L’APK de l’application d’entrée n’a pas pu être analysé.
MALFORMED_TEST_APK L’APK de test d’entrée n’a pas pu être analysé.
NO_MANIFEST Le fichier AndroidManifest.xml est introuvable.
NO_PACKAGE_NAME Le manifeste APK ne déclare pas de nom de package.
INVALID_PACKAGE_NAME L'ID de l'application APK (c'est-à-dire le nom du package) n'est pas valide. Voir également https://developer.android.com/build/configure-app-module#set-application-id
TEST_SAME_AS_APP Le package de test et le package d’application sont les mêmes.
NO_INSTRUMENTATION L’apk de test ne déclare pas d’instrumentation.
NO_SIGNATURE L’apk de l’application d’entrée n’a pas de signature.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE La classe d'exécuteur de test spécifiée par l'utilisateur ou dans le fichier manifeste de l'APK de test n'est pas compatible avec Android Test Orchestrator. Orchestrator est uniquement compatible avec AndroidJUnitRunner version 1.1 ou supérieure. Orchestrator peut être désactivé à l’aide de DO_NOT_USE_ORCHESTRATOR OrchestratorOption.
NO_TEST_RUNNER_CLASS

L'APK de test ne contient pas la classe d'exécuteur de test spécifiée par l'utilisateur ou dans le fichier manifeste. Cela peut être dû à l'une des raisons suivantes :

  • l'utilisateur a fourni un nom de classe d'exécution incorrect, ou
  • le lanceur de test n'est pas intégré à l'APK de test (peut-être à la place dans l'APK de l'application).
NO_LAUNCHER_ACTIVITY Une activité principale du lanceur n'a pas pu être trouvée.
FORBIDDEN_PERMISSIONS L'application déclare une ou plusieurs autorisations qui ne sont pas autorisées.
INVALID_ROBO_DIRECTIVES Il y a un conflit dans les roboDirectives fournies.
INVALID_RESOURCE_NAME Il y a au moins un nom de ressource non valide dans les directives robot fournies
INVALID_DIRECTIVE_ACTION Définition d'action invalide dans les directives robot (par exemple, une action cliquer ou ignorer inclut un champ de texte de saisie)
TEST_LOOP_INTENT_FILTER_NOT_FOUND Il n'y a pas de filtre d'intention de boucle de test, ou celui fourni n'est pas formaté correctement.
SCENARIO_LABEL_NOT_DECLARED La demande contient une étiquette de scénario qui n'a pas été déclarée dans le manifeste.
SCENARIO_LABEL_MALFORMED Une erreur s'est produite lors de l'analyse de la valeur d'une étiquette.
SCENARIO_NOT_DECLARED La requête contient un numéro de scénario qui n'a pas été déclaré dans le manifeste.
DEVICE_ADMIN_RECEIVER Les applications d'administrateur de périphérique ne sont pas autorisées.
MALFORMED_XC_TEST_ZIP Le XCTest compressé était mal formé. Le zip ne contenait pas un seul fichier .xctestrun ni le contenu du répertoire DerivedData/Build/Products.
BUILT_FOR_IOS_SIMULATOR Le XCTest zippé a été conçu pour le simulateur iOS plutôt que pour un appareil physique.
NO_TESTS_IN_XC_TEST_ZIP Le fichier .xctestrun n'a spécifié aucune cible de test.
USE_DESTINATION_ARTIFACTS Une ou plusieurs des cibles de test définies dans le fichier .xctestrun spécifient « UseDestinationArtifacts », ce qui n'est pas autorisé.
TEST_NOT_APP_HOSTED Les tests XC exécutés sur des appareils physiques doivent avoir "IsAppHostedTestBundle" == "true" dans le fichier xctestrun.
PLIST_CANNOT_BE_PARSED Un fichier Info.plist dans le zip XCTest n'a pas pu être analysé.
TEST_ONLY_APK

L'APK est marqué comme "testOnly". Obsolète et non utilisé actuellement.

MALFORMED_IPA L'IPA d'entrée n'a pas pu être analysée.
MISSING_URL_SCHEME L'application n'enregistre pas le schéma d'URL de la boucle de jeu.
MALFORMED_APP_BUNDLE Le bundle d'applications iOS (.app) n'a pas pu être traité.
NO_CODE_APK L'APK ne contient aucun code. Voir également https://developer.android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK Soit le chemin APK d’entrée fourni était mal formé, soit le fichier APK n’existe pas, soit l’utilisateur n’est pas autorisé à accéder au fichier APK.
INVALID_APK_PREVIEW_SDK L'APK est conçu pour un SDK de prévisualisation qui n'est pas pris en charge
MATRIX_TOO_LARGE La matrice s'est élargie pour contenir trop d'exécutions.
TEST_QUOTA_EXCEEDED Pas assez de quota de tests pour exécuter les exécutions dans cette matrice.
SERVICE_NOT_ACTIVATED Une API de service cloud requise n’est pas activée. Voir : https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR Un problème d'autorisation inconnu est survenu lors de l'exécution de ce test.

Résumé des résultats

Résumé des résultats pour une matrice de test terminée.

Énumérations
OUTCOME_SUMMARY_UNSPECIFIED Ne pas utiliser. Pour le versionnage de proto uniquement.
SUCCESS

L'exécution de la matrice de test a réussi, par exemple :

  • Tous les cas de test ont réussi.
  • Robo n'a pas détecté de crash de l'application testée.
FAILURE

Une exécution a échoué, par exemple :

  • Un ou plusieurs scénarios de test ont échoué.
  • Un test a expiré.
  • L'application testée est tombée en panne.
INCONCLUSIVE Quelque chose d’inattendu s’est produit. L'exécution doit toujours être considérée comme un échec, mais il s'agit probablement d'un problème passager et une nouvelle exécution du test pourrait réussir.
SKIPPED

Tous les tests ont été ignorés, par exemple :

  • Toutes les configurations d'appareils étaient incompatibles.

Méthodes

cancel

Annule les exécutions de test inachevées dans une matrice de test.

create

Crée et exécute une matrice de tests en fonction des spécifications données.

get

Vérifie l'état d'une matrice de test et les exécutions une fois qu'ils sont créés.