REST Resource: projects.testMatrices

Ressource: TestMatrix

TestMatrix erfasst alle Details zu einem Test. Es enthält die Umgebungskonfiguration, Testspezifikation, Testausführungen sowie den Gesamtzustand und das Ergebnis.

JSON-Darstellung
{
  "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
}
Felder
testMatrixId

string

Nur Ausgabe. Vom Dienst festgelegte eindeutige ID.

projectId

string

Das Cloud-Projekt, das die Testmatrix besitzt.

clientInfo

object ( ClientInfo )

Informationen über den Client, der den Test aufgerufen hat.

testSpecification

object ( TestSpecification )

Erforderlich. So führen Sie den Test durch.

environmentMatrix

object ( EnvironmentMatrix )

Erforderlich. Die Geräte, auf denen die Tests ausgeführt werden.

testExecutions[]

object ( TestExecution )

Nur Ausgabe. Die Liste der Testausführungen, die der Dienst für diese Matrix erstellt.

resultStorage

object ( ResultStorage )

Erforderlich. Wo die Ergebnisse für die Matrix geschrieben werden.

state

enum ( TestState )

Nur Ausgabe. Zeigt den aktuellen Fortschritt der Testmatrix an.

timestamp

string ( Timestamp format)

Nur Ausgabe. Der Zeitpunkt, zu dem diese Testmatrix ursprünglich erstellt wurde.

Ein Zeitstempel im RFC3339 UTC „Zulu“-Format mit Nanosekundenauflösung und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z" .

invalidMatrixDetails

enum ( InvalidMatrixDetails )

Nur Ausgabe. Beschreibt, warum die Matrix als ungültig gilt. Nur sinnvoll für Matrizen im INVALID-Zustand.

flakyTestAttempts

integer

Die Häufigkeit, mit der eine TestExecution erneut versucht werden sollte, wenn einer oder mehrere ihrer Testfälle aus irgendeinem Grund fehlschlagen. Die maximale Anzahl zulässiger Wiederholungen beträgt 10.

Der Standardwert ist 0, was bedeutet, dass keine Wiederholungen erfolgen.

outcomeSummary

enum ( OutcomeSummary )

Nur Ausgabe. Das Gesamtergebnis des Tests. Wird nur gesetzt, wenn der Testmatrixstatus FERTIG ist.

failFast

boolean

Wenn „true“, wird höchstens ein einziger Versuch unternommen, jede Ausführung/jeden Shard in der Matrix auszuführen. Flockige Testversuche sind nicht betroffen.

Normalerweise werden zwei oder mehr Versuche unternommen, wenn ein potenzielles Infrastrukturproblem erkannt wird.

Diese Funktion ist für latenzempfindliche Arbeitslasten vorgesehen. Die Häufigkeit von Ausführungsfehlern kann bei Fail-Fast-Matrizen deutlich höher sein und die Unterstützung ist aufgrund dieser Erwartung eingeschränkter.

ClientInfo

Informationen über den Client, der den Test aufgerufen hat.

JSON-Darstellung
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
Felder
name

string

Erforderlich. Clientname, z. B. gcloud.

clientInfoDetails[]

object ( ClientInfoDetail )

Die Liste detaillierter Informationen zum Kunden.

ClientInfoDetail

Schlüssel-Wert-Paar mit detaillierten Informationen über den Client, der den Test aufgerufen hat. Beispiele: {'Version', '1.0'}, {'Release Track', 'BETA'}.

JSON-Darstellung
{
  "key": string,
  "value": string
}
Felder
key

string

Erforderlich. Der Schlüssel zu detaillierten Kundeninformationen.

value

string

Erforderlich. Der Wert detaillierter Kundeninformationen.

Testspezifikation

Eine Beschreibung, wie der Test ausgeführt wird.

JSON-Darstellung
{
  "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.
}
Felder
testTimeout

string ( Duration format)

Maximale Zeit, die eine Testausführung laufen darf, bevor sie automatisch abgebrochen wird. Der Standardwert beträgt 5 Minuten.

Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, endend mit „ s “. Beispiel: "3.5s" .

disableVideoRecording

boolean

Deaktiviert die Videoaufzeichnung. Kann die Testlatenz reduzieren.

disablePerformanceMetrics

boolean

Deaktiviert die Aufzeichnung von Leistungsmetriken. Kann die Testlatenz reduzieren.

Union-Feld setup . Anforderungen an den Testaufbau. setup kann nur eines der folgenden sein:
testSetup

object ( TestSetup )

Test-Setup-Anforderungen für Android, z. B. zu installierende Dateien, Bootstrap-Skripte.

iosTestSetup

object ( IosTestSetup )

Test-Setup-Anforderungen für iOS.

Union- test . Erforderlich. Der Typ des auszuführenden Tests. test kann nur einer der folgenden sein:
androidInstrumentationTest

object ( AndroidInstrumentationTest )

Ein Android-Instrumentierungstest.

androidRoboTest

object ( AndroidRoboTest )

Ein Android-Robo-Test.

androidTestLoop

object ( AndroidTestLoop )

Eine Android-Anwendung mit einer Testschleife.

iosXcTest

object ( IosXcTest )

Ein iOS XCTest über eine .xctestrun-Datei.

iosTestLoop

object ( IosTestLoop )

Eine iOS-Anwendung mit einer Testschleife.

Versuchsaufbau

Eine Beschreibung, wie das Android-Gerät vor der Durchführung des Tests eingerichtet wird.

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

object ( DeviceFile )

Liste der Dateien, die vor Beginn des Tests auf das Gerät übertragen werden sollen.

directoriesToPull[]

string

Liste der Verzeichnisse auf dem Gerät, die am Ende des Tests auf GCS hochgeladen werden sollen; Es müssen absolute Pfade unter /sdcard, /storage oder /data/local/tmp sein. Pfadnamen sind auf die Zeichen AZ 0-9 _ - beschränkt. + und /

Hinweis: Die Pfade /sdcard und /data werden verfügbar gemacht und als implizite Pfadersetzungen behandelt. Wenn beispielsweise /sdcard auf einem bestimmten Gerät keinem externen Speicher zugeordnet ist, ersetzt das System es durch das externe Speicherpfadpräfix für dieses Gerät.

additionalApks[]

object ( Apk )

APKs, die zusätzlich zu den direkt getesteten APKs installiert werden müssen. Derzeit auf 100 begrenzt.

account

object ( Account )

Das Gerät wird für die Dauer des Tests mit diesem Konto angemeldet sein.

networkProfile

string

Das Netzwerkverkehrsprofil, das zum Ausführen des Tests verwendet wird. Verfügbare Netzwerkprofile können mithilfe des Umgebungstyps NETWORK_CONFIGURATION beim Aufruf von TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog abgefragt werden.

environmentVariables[]

object ( EnvironmentVariable )

Umgebungsvariablen, die für den Test festgelegt werden sollen (gilt nur für Instrumentierungstests).

systrace
(deprecated)

object ( SystraceSetup )

Systrace-Konfiguration für den Lauf. Veraltet: Systrace verwendete Python 2, das am 01.01.2020 eingestellt wurde. Systrace wird in der Cloud Testing API nicht mehr unterstützt und in den Ergebnissen wird keine Systrace-Datei bereitgestellt.

dontAutograntPermissions

boolean

Ob verhindert werden soll, dass bei der App-Installation alle Laufzeitberechtigungen gewährt werden

Gerätedatei

Eine einzelne Gerätedateibeschreibung.

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld device_file . Erforderlich. device_file kann nur einer der folgenden sein:
obbFile

object ( ObbFile )

Ein Verweis auf eine undurchsichtige binäre Blobdatei.

regularFile

object ( RegularFile )

Ein Verweis auf eine reguläre Datei.

ObbFile

Eine undurchsichtige binäre Blob-Datei, die vor Beginn des Tests auf dem Gerät installiert werden muss.

JSON-Darstellung
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
Felder
obbFileName

string

Erforderlich. OBB-Dateiname, der dem von Android angegebenen Format entsprechen muss, z. B. [main|patch].0300110.com.example.android.obb, das in <shared-storage>/Android/obb/<package-name>/ installiert wird. auf dem Gerät.

obb

object ( FileReference )

Erforderlich. Undurchsichtige Binär-Blob-Dateien (OBB) zur Installation auf dem Gerät.

Aktenzeichen

Ein Verweis auf eine Datei, der für Benutzereingaben verwendet wird.

JSON-Darstellung
{

  // Union field file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
Felder
Union- file . Erforderlich. Der Dateiverweis. file kann nur eine der folgenden sein:
gcsPath

string

Ein Pfad zu einer Datei in Google Cloud Storage. Beispiel: gs://build-app-1414623860166/app%40debug-unaligned.apk Diese Pfade werden voraussichtlich URL-codiert sein (prozentuale Codierung).

RegularFile

Eine Datei oder ein Verzeichnis, die vor Beginn des Tests auf dem Gerät installiert werden soll.

JSON-Darstellung
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
Felder
content

object ( FileReference )

Erforderlich. Die Quelldatei.

devicePath

string

Erforderlich. Wo soll der Inhalt auf dem Gerät abgelegt werden? Muss ein absoluter Pfad auf der Zulassungsliste sein. Wenn die Datei vorhanden ist, wird sie ersetzt. Die folgenden geräteseitigen Verzeichnisse und alle ihre Unterverzeichnisse stehen auf der Zulassungsliste:

${EXTERNAL_STORAGE}, /sdcard oder /storage

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

Die Angabe eines Pfads außerhalb dieser Verzeichnisbäume ist ungültig.

Die Pfade /sdcard und /data werden zur Verfügung gestellt und als implizite Pfadersetzungen behandelt. Wenn beispielsweise /sdcard auf einem bestimmten Gerät keinem externen Speicher zugeordnet ist, ersetzt das System es durch das externe Speicherpfadpräfix für dieses Gerät und kopiert die Datei dorthin.

Es wird dringend empfohlen, die Umgebungs-API im App- und Testcode zu verwenden, um portabel auf Dateien auf dem Gerät zuzugreifen.

Apk

Eine zu installierende Android-Paketdatei.

JSON-Darstellung
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
Felder
location

object ( FileReference )

Der Pfad zu einem APK, das vor Beginn des Tests auf dem Gerät installiert werden soll.

packageName

string

Das Java-Paket für die zu installierende APK. Der Wert wird durch Untersuchung des Manifests der Anwendung ermittelt.

Konto

Identifiziert ein Konto und wie man sich dort anmeldet.

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld account_type . Erforderlich. Die Art des Kontos, basierend auf dem Zweck (z. B. Google) und dem Anmeldemechanismus (z. B. Benutzername und Passwort). account_type kann nur einer der folgenden sein:
googleAuto

object ( GoogleAuto )

Ein automatisches Google-Login-Konto.

GoogleAuto

Aktiviert die automatische Anmeldung bei einem Google-Konto. Wenn festgelegt, generiert der Dienst automatisch ein Google-Testkonto und fügt es dem Gerät hinzu, bevor der Test ausgeführt wird. Beachten Sie, dass Testkonten möglicherweise wiederverwendet werden. Viele Anwendungen zeigen ihren vollen Funktionsumfang, wenn ein Konto auf dem Gerät vorhanden ist. Wenn Sie sich mit diesen generierten Konten am Gerät anmelden, können Sie weitere Funktionen testen.

Umgebungsvariable

Ein Schlüssel-Wert-Paar, das als Umgebungsvariable an den Test übergeben wurde.

JSON-Darstellung
{
  "key": string,
  "value": string
}
Felder
key

string

Schlüssel für die Umgebungsvariable.

value

string

Wert für die Umgebungsvariable.

SystraceSetup

JSON-Darstellung
{
  "durationSeconds": integer
}
Felder
durationSeconds
(deprecated)

integer

Systrace-Dauer in Sekunden. Sollte zwischen 1 und 30 Sekunden liegen. 0 deaktiviert Systrace.

IosTestSetup

Eine Beschreibung zum Einrichten eines iOS-Geräts vor der Durchführung des Tests.

JSON-Darstellung
{
  "networkProfile": string,
  "additionalIpas": [
    {
      object (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
Felder
networkProfile

string

Das Netzwerkverkehrsprofil, das zum Ausführen des Tests verwendet wird. Verfügbare Netzwerkprofile können mithilfe des Umgebungstyps NETWORK_CONFIGURATION beim Aufruf von TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog abgefragt werden.

additionalIpas[]

object ( FileReference )

iOS-Apps, die zusätzlich zu den direkt getesteten Apps installiert werden können.

pushFiles[]

object ( IosDeviceFile )

Liste der Dateien, die vor Beginn des Tests auf das Gerät übertragen werden sollen.

pullDirectories[]

object ( IosDeviceFile )

Liste der Verzeichnisse auf dem Gerät, die am Ende des Tests in den Cloud-Speicher hochgeladen werden sollen.

Verzeichnisse sollten sich entweder in einem freigegebenen Verzeichnis (z. B. /private/var/mobile/Media) oder in einem zugänglichen Verzeichnis im Dateisystem der App (z. B. /Documents) befinden, indem Sie die Bundle-ID angeben.

IosDeviceFile

Eine Datei oder ein Verzeichnis, die vor Beginn des Tests auf dem Gerät installiert werden soll.

JSON-Darstellung
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
Felder
content

object ( FileReference )

Die Quelldatei

bundleId

string

Die Bundle-ID der App, in der sich diese Datei befindet.

iOS-Apps verfügen über ein eigenes Dateisystem, daher müssen App-Dateien angeben, welche App auf dem Gerät installiert ist.

devicePath

string

Speicherort der Datei auf dem Gerät im Sandbox-Dateisystem der App

AndroidInstrumentationTest

Ein Test einer Android-Anwendung, die eine Android-Komponente unabhängig von ihrem normalen Lebenszyklus steuern kann. Android-Instrumentierungstests führen ein Anwendungs-APK aus und testen APK im selben Prozess auf einem virtuellen oder physischen Android-Gerät. Sie geben außerdem eine Test-Runner-Klasse wie com.google.GoogleTestRunner an, die je nach gewähltem Instrumentierungs-Framework variieren kann.

Weitere Informationen zu den Arten von Android-Tests finden Sie unter https://developer.android.com/training/testing/fundamentals .

JSON-Darstellung
{
  "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.
}
Felder
testApk

object ( FileReference )

Erforderlich. Das APK, das den auszuführenden Testcode enthält.

appPackageId

string

Das Java-Paket für die zu testende Anwendung. Der Standardwert wird durch Untersuchung des Manifests der Anwendung ermittelt.

testPackageId

string

Das Java-Paket für den auszuführenden Test. Der Standardwert wird durch Untersuchung des Manifests der Anwendung ermittelt.

testRunnerClass

string

Die InstrumentationTestRunner-Klasse. Der Standardwert wird durch Untersuchung des Manifests der Anwendung ermittelt.

testTargets[]

string

Jedes Ziel muss vollständig mit dem Paketnamen oder Klassennamen in einem dieser Formate qualifiziert sein:

  • „Paket Paketname“
  • „Klassenpaketname.Klassenname“
  • „Klassenpaketname.Klassenname#Methodenname“

Wenn leer, werden alle Ziele im Modul ausgeführt.

orchestratorOption

enum ( OrchestratorOption )

Die Option, ob jeder Test innerhalb seines eigenen Instrumentierungsaufrufs mit Android Test Orchestrator ausgeführt werden soll oder nicht. ** Orchestrator ist nur mit AndroidJUnitRunner Version 1.1 oder höher kompatibel! ** Orchestrator bietet die folgenden Vorteile:

  • Kein gemeinsamer Status
  • Abstürze sind vereinzelt
  • Protokolle werden pro Test festgelegt

Weitere Informationen zu Android Test Orchestrator finden Sie unter https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator .

Wenn nicht festgelegt, wird der Test ohne den Orchestrator ausgeführt.

shardingOption

object ( ShardingOption )

Die Option, Tests in mehreren Shards parallel auszuführen.

Union-Feld app_under_test . Erforderlich. app_under_test kann nur einer der folgenden sein:
appApk

object ( FileReference )

Das APK für die zu testende Anwendung.

appBundle

object ( AppBundle )

Ein Multi-Apk-App-Bundle für die zu testende Anwendung.

AppBundle

Ein Android App Bundle-Dateiformat, das eine BundleConfig.pb-Datei, ein Basismodulverzeichnis, null oder mehr dynamische Funktionsmodulverzeichnisse enthält.

Anleitungen zum Erstellen von App-Bundles finden Sie unter https://developer.android.com/guide/app-bundle/build .

JSON-Darstellung
{

  // Union field bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
Felder
Union- bundle . Erforderlich. Standortinformationen bündeln. bundle kann nur eines der folgenden sein:
bundleLocation

object ( FileReference )

.aab-Datei, die das zu testende App-Bundle darstellt.

OrchestratorOption

Gibt an, wie der Test ausgeführt wird.

Aufzählungen
ORCHESTRATOR_OPTION_UNSPECIFIED Standardwert: Der Server wählt den Modus. Impliziert derzeit, dass der Test ohne den Orchestrator ausgeführt wird. Zukünftig werden alle Instrumentierungstests mit dem Orchestrator durchgeführt. Die Verwendung des Orchestrators wird aufgrund aller Vorteile, die er bietet, dringend empfohlen.
USE_ORCHESTRATOR Führen Sie den Test mit dem Orchestrator durch. ** Nur kompatibel mit AndroidJUnitRunner Version 1.1 oder höher! ** Empfohlen.
DO_NOT_USE_ORCHESTRATOR Führen Sie den Test aus, ohne den Orchestrator zu verwenden.

ShardingOption

Optionen zum Aktivieren von Sharding.

JSON-Darstellung
{

  // 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.
}
Felder

Union- option .

option kann nur eine der folgenden sein:

uniformSharding

object ( UniformSharding )

Einheitliche Shards von Testfällen bei gegebener Gesamtzahl von Shards.

manualSharding

object ( ManualSharding )

Zerlegt Testfälle in die angegebenen Gruppen von Paketen, Klassen und/oder Methoden.

smartSharding

object ( SmartSharding )

Shards-Test basierend auf früheren Testfall-Timing-Aufzeichnungen.

UniformSharding

Einheitliche Shards von Testfällen bei gegebener Gesamtzahl von Shards.

Für Instrumentierungstests wird es in die AndroidJUnitRunner-Argumente „-e numShard“ und „-e shardIndex“ übersetzt. Wenn einheitliches Sharding aktiviert ist, ist die Angabe eines dieser Sharding-Argumente über environmentVariables ungültig.

Basierend auf dem von AndroidJUnitRunner verwendeten Sharding-Mechanismus gibt es keine Garantie dafür, dass Testfälle gleichmäßig auf alle Shards verteilt werden.

JSON-Darstellung
{
  "numShards": integer
}
Felder
numShards

integer

Erforderlich. Die Gesamtzahl der zu erstellenden Shards. Dies muss immer eine positive Zahl sein, die nicht größer als die Gesamtzahl der Testfälle ist. Wenn Sie ein oder mehrere physische Geräte auswählen, muss die Anzahl der Shards <= 50 sein. Wenn Sie ein oder mehrere virtuelle ARM-Geräte auswählen, muss sie <= 200 sein. Wenn Sie nur virtuelle x86-Geräte auswählen, muss sie <= 500 sein .

ManualSharding

Zerlegt Testfälle in die angegebenen Gruppen von Paketen, Klassen und/oder Methoden.

Wenn manuelles Sharding aktiviert ist, ist die Angabe von Testzielen über „environmentVariables“ oder in „InstrumentationTest“ ungültig.

JSON-Darstellung
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
Felder
testTargetsForShard[]

object ( TestTargetsForShard )

Erforderlich. Gruppe von Paketen, Klassen und/oder Testmethoden, die für jeden manuell erstellten Shard ausgeführt werden sollen. Wenn dieses Feld vorhanden ist, müssen Sie mindestens einen Shard angeben. Wenn Sie ein oder mehrere physische Geräte auswählen, muss die Anzahl der wiederholten testTargetsForShard <= 50 sein. Wenn Sie ein oder mehrere virtuelle ARM-Geräte auswählen, muss sie <= 200 sein. Wenn Sie nur virtuelle x86-Geräte auswählen, muss sie <= sein 500.

TestTargetsForShard

Testziele für einen Splitter.

JSON-Darstellung
{
  "testTargets": [
    string
  ]
}
Felder
testTargets[]

string

Gruppe von Paketen, Klassen und/oder Testmethoden, die für jeden Shard ausgeführt werden sollen. Die Ziele müssen im AndroidJUnitRunner-Argumentformat angegeben werden. Beispiel: „Paket com.my.packages“ „Klasse com.my.package.MyClass“.

Die Anzahl der testTargets muss größer als 0 sein.

SmartSharding

Shards-Test basierend auf früheren Testfall-Timing-Aufzeichnungen.

JSON-Darstellung
{
  "targetedShardDuration": string
}
Felder
targetedShardDuration

string ( Duration format)

Die Zeit, die Tests innerhalb eines Shards dauern sollten.

Standard: 300 Sekunden (5 Minuten). Zulässiges Minimum: 120 Sekunden (2 Minuten).

Die Shard-Anzahl wird dynamisch basierend auf der Zeit festgelegt, bis zum maximalen Shard-Limit (unten beschrieben). Um sicherzustellen, dass für jeden Shard mindestens ein Testfall vorhanden ist, darf die Anzahl der Shards die Anzahl der Testfälle nicht überschreiten. Die Splitterdauer wird überschritten, wenn:

  • Das maximale Shard-Limit ist erreicht und es verbleibt mehr berechnete Testzeit, die den Shards zugewiesen werden kann.
  • Es wird geschätzt, dass jeder einzelne Test länger ist als die angestrebte Shard-Dauer.

Die Shard-Dauer kann nicht garantiert werden, da Smart Sharding den Testfallverlauf und Standarddauern verwendet, die möglicherweise nicht genau sind. Die Regeln zum Auffinden der Testfall-Timing-Datensätze lauten:

  • Wenn der Dienst in den letzten 30 Tagen einen Testfall verarbeitet hat, wird der Datensatz des letzten erfolgreichen Testfalls verwendet.
  • Für neue Testfälle wird die durchschnittliche Dauer anderer bekannter Testfälle verwendet.
  • Wenn keine früheren Zeitdatensätze für Testfälle verfügbar sind, beträgt die Standarddauer des Testfalls 15 Sekunden.

Da die tatsächliche Shard-Dauer die angestrebte Shard-Dauer überschreiten kann, empfehlen wir, dass Sie den Zielwert mindestens 5 Minuten unter dem maximal zulässigen Test-Timeout (45 Minuten für physische Geräte und 60 Minuten für virtuelle Geräte) festlegen oder den benutzerdefinierten Wert verwenden Test-Timeout-Wert, den Sie festlegen. Durch diesen Ansatz wird vermieden, dass der Shard abgebrochen wird, bevor alle Tests abgeschlossen werden können.

Beachten Sie, dass die maximale Anzahl von Shards begrenzt ist. Wenn Sie ein oder mehrere physische Geräte auswählen, muss die Anzahl der Shards <= 50 sein. Wenn Sie ein oder mehrere virtuelle ARM-Geräte auswählen, muss sie <= 200 sein. Wenn Sie nur virtuelle x86-Geräte auswählen, muss sie <= 500 sein . Um mindestens einen Testfall pro Shard zu gewährleisten, darf die Anzahl der Shards die Anzahl der Testfälle nicht überschreiten. Jeder erstellte Shard wird auf das tägliche Testkontingent angerechnet.

Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, endend mit „ s “. Beispiel: "3.5s" .

AndroidRoboTest

Ein Test einer Android-Anwendung, der die Anwendung auf einem virtuellen oder physischen Android-Gerät untersucht und dabei Fehler und Abstürze findet.

JSON-Darstellung
{
  "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.
}
Felder
appPackageId

string

Das Java-Paket für die zu testende Anwendung. Der Standardwert wird durch Untersuchung des Manifests der Anwendung ermittelt.

appInitialActivity

string

Die anfängliche Aktivität, die zum Starten der App verwendet werden soll.

maxDepth
(deprecated)

integer

Die maximale Tiefe des Traversal-Stapels, die Robo erkunden kann. Muss mindestens 2 sein, damit Robo die App über die erste Aktivität hinaus erkunden kann. Der Standardwert ist 50.

maxSteps
(deprecated)

integer

Die maximale Anzahl an Schritten, die Robo ausführen kann. Der Standardwert ist unbegrenzt.

roboDirectives[]

object ( RoboDirective )

Eine Reihe von Anweisungen, die Robo während des Crawls anwenden sollte. Dadurch können Benutzer den Crawl anpassen. Beispielsweise können der Benutzername und das Passwort für ein Testkonto bereitgestellt werden.

roboMode

enum ( RoboMode )

Der Modus, in dem Robo ausgeführt werden soll. Die meisten Clients sollten dem Server erlauben, dieses Feld automatisch auszufüllen.

roboScript

object ( FileReference )

Eine JSON-Datei mit einer Abfolge von Aktionen, die Robo als Prolog für den Crawl ausführen soll.

startingIntents[]

object ( RoboStartingIntent )

Die Absichten, die zum Starten der App für den Crawl verwendet wurden. Wenn keine angegeben sind, wird die Hauptstartaktivität gestartet. Wenn einige bereitgestellt werden, werden nur die bereitgestellten gestartet (die Haupt-Launcher-Aktivität muss explizit angegeben werden).

Union-Feld app_under_test . Erforderlich. app_under_test kann nur einer der folgenden sein:
appApk

object ( FileReference )

Das APK für die zu testende Anwendung.

appBundle

object ( AppBundle )

Ein Multi-Apk-App-Bundle für die zu testende Anwendung.

RoboDirective

Weist Robo an, mit einem bestimmten UI-Element zu interagieren, wenn es während des Crawls angetroffen wird. Derzeit kann Robo Texteingaben oder Elementklicks durchführen.

JSON-Darstellung
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
Felder
resourceName

string

Erforderlich. Der Android-Ressourcenname des Ziel-UI-Elements. Zum Beispiel in Java: R.string.foo in xml: @string/foo Nur der Teil „foo“ wird benötigt. Referenzdokument: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

Der Text, den Robo vertonen soll. Wenn sie leer bleibt, wird die Anweisung als KLICK auf das Element behandelt, das dem Ressourcennamen entspricht.

actionType

enum ( RoboActionType )

Erforderlich. Die Art der Aktion, die Robo für das angegebene Element ausführen soll.

RoboActionType

Aktionen, die Robo an UI-Elementen ausführen kann.

Aufzählungen
ACTION_TYPE_UNSPECIFIED VERWENDE NICHT. Nur für die Proto-Versionierung.
SINGLE_CLICK Weisen Sie Robo an, auf das angegebene Element zu klicken. No-op, wenn das angegebene Element nicht anklickbar ist.
ENTER_TEXT Weisen Sie Robo an, Text für das angegebene Element einzugeben. No-op, wenn das angegebene Element nicht aktiviert ist oder keine Texteingabe zulässt.
IGNORE Weisen Sie Robo an, Interaktionen mit einem bestimmten Element zu ignorieren.

RoboMode

Der Modus, in dem Robo ausgeführt werden soll.

Aufzählungen
ROBO_MODE_UNSPECIFIED Das bedeutet, dass der Server den Modus wählen sollte. Empfohlen.
ROBO_VERSION_1 Führt Robo im reinen UIAutomator-Modus aus, ohne dass die App zurücktritt
ROBO_VERSION_2 Führt Robo in Standard-Espresso mit UIAutomator-Fallback aus

RoboStartingIntent

Nachricht zum Angeben der zu crawlenden Startaktivitäten.

JSON-Darstellung
{
  "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.
}
Felder
timeout

string ( Duration format)

Timeout in Sekunden für jeden Intent.

Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, endend mit „ s “. Beispiel: "3.5s" .

Union-Feld starting_intent . Erforderlich. Absichtsdetails zum Starten einer Aktivität. starting_intent kann nur einer der folgenden Werte sein:
launcherActivity

object ( LauncherActivityIntent )

Eine Absicht, die die Hauptaktivität des Launchers startet.

startActivity

object ( StartActivityIntent )

Eine Absicht, die eine Aktivität mit bestimmten Details startet.

LauncherActivityIntent

Gibt eine Absicht an, die die Hauptaktivität des Launchers startet.

StartActivityIntent

Eine Startabsicht, die durch eine Aktion, einen URI und Kategorien angegeben wird.

JSON-Darstellung
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
Felder
action

string

Aktionsname. Erforderlich für START_ACTIVITY.

uri

string

URI für die Aktion.

categories[]

string

Absichtskategorien, die für die Absicht festgelegt werden sollen.

AndroidTestLoop

Ein Test einer Android-Anwendung mit einer Testschleife. Die Absicht <intent-name> wird implizit hinzugefügt, da Games vorerst der einzige Benutzer dieser API ist.

JSON-Darstellung
{
  "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.
}
Felder
appPackageId

string

Das Java-Paket für die zu testende Anwendung. Der Standardwert wird durch Untersuchung des Manifests der Anwendung ermittelt.

scenarios[]

integer

Die Liste der Szenarios, die während des Tests ausgeführt werden sollen. Der Standardwert sind alle Testschleifen, abgeleitet vom Manifest der Anwendung.

scenarioLabels[]

string

Die Liste der Szenariobezeichnungen, die während des Tests ausgeführt werden sollen. Die Szenariobezeichnungen sollten den im Manifest der Anwendung definierten Bezeichnungen zugeordnet sein. Beispielsweise fügen „player_experience“ und „com.google.test.loops.player_experience“ alle Schleifen, die im Manifest mit dem Namen „com.google.test.loops.player_experience“ gekennzeichnet sind, zur Ausführung hinzu. Im Szenariofeld können auch Szenarien angegeben werden.

Union-Feld app_under_test . Erforderlich. Das Android-Paket zum Testen. app_under_test kann nur einer der folgenden sein:
appApk

object ( FileReference )

Das APK für die zu testende Anwendung.

appBundle

object ( AppBundle )

Ein Multi-Apk-App-Bundle für die zu testende Anwendung.

IosXcTest

Ein Test einer iOS-Anwendung, die das XCTest-Framework verwendet. Xcode unterstützt die Option „Zum Testen erstellen“, wodurch eine .xctestrun-Datei generiert wird, die eine Testspezifikation (Argumente, Testmethoden usw.) enthält. Dieser Testtyp akzeptiert eine ZIP-Datei mit der .xctestrun-Datei und den entsprechenden Inhalten des Build/Products-Verzeichnisses, das alle zum Ausführen der Tests erforderlichen Binärdateien enthält.

JSON-Darstellung
{
  "testsZip": {
    object (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
Felder
testsZip

object ( FileReference )

Erforderlich. Die ZIP-Datei mit der .xctestrun-Datei und dem Inhalt des DerivedData/Build/Products-Verzeichnisses. Die .xctestrun-Datei in dieser ZIP-Datei wird ignoriert, wenn das xctestrun-Feld angegeben ist.

xctestrun

object ( FileReference )

Eine .xctestrun-Datei, die die .xctestrun-Datei in der Test-ZIP-Datei überschreibt. Da die .xctestrun-Datei Umgebungsvariablen sowie Testmethoden zum Ausführen und/oder Ignorieren enthält, kann dies für Sharding-Tests nützlich sein. Der Standardwert wird der Test-ZIP-Datei entnommen.

xcodeVersion

string

Die Xcode-Version, die für den Test verwendet werden soll. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen. Standardmäßig wird die neueste Xcode-Version verwendet, die Firebase Test Lab unterstützt.

appBundleId

string

Nur Ausgabe. Die Bundle-ID für die getestete Anwendung.

testSpecialEntitlements

boolean

Die Möglichkeit, spezielle App-Berechtigungen zu testen. Wenn Sie dies festlegen, wird die App mit besonderen Berechtigungen mit einer expliziten Anwendungskennung neu signiert. Unterstützt derzeit das Testen der APS-Umgebungsberechtigung.

IosTestLoop

Ein Test einer iOS-Anwendung, die ein oder mehrere Spielschleifenszenarien implementiert. Dieser Testtyp akzeptiert eine archivierte Anwendung (.ipa-Datei) und eine Liste ganzzahliger Szenarien, die nacheinander in der App ausgeführt werden.

JSON-Darstellung
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
Felder
appIpa

object ( FileReference )

Erforderlich. Die IPA-Datei der zu testenden Anwendung.

scenarios[]

integer

Die Liste der Szenarios, die während des Tests ausgeführt werden sollen. Wenn nicht angegeben, wird standardmäßig das Einzelszenario 0 verwendet.

appBundleId

string

Nur Ausgabe. Die Bundle-ID für die getestete Anwendung.

UmweltMatrix

Die Matrix der Umgebungen, in denen der Test ausgeführt werden soll.

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld environment_matrix . Erforderlich. Die Umgebungsmatrix. environment_matrix kann nur einer der folgenden Werte sein:
androidMatrix

object ( AndroidMatrix )

Eine Matrix von Android-Geräten.

androidDeviceList

object ( AndroidDeviceList )

Eine Liste von Android-Geräten; Der Test wird nur auf den angegebenen Geräten ausgeführt.

iosDeviceList

object ( IosDeviceList )

Eine Liste von iOS-Geräten.

AndroidMatrix

Eine Reihe von Konfigurationspermutationen für Android-Geräte wird durch das Kreuzprodukt der angegebenen Achsen definiert. Intern wird die gegebene AndroidMatrix in eine Reihe von AndroidDevices erweitert.

Es werden nur unterstützte Permutationen instanziiert. Ungültige Permutationen (z. B. inkompatible Modelle/Versionen) werden ignoriert.

JSON-Darstellung
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
Felder
androidModelIds[]

string

Erforderlich. Die IDs der zu verwendenden Android-Gerätegruppe. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

androidVersionIds[]

string

Erforderlich. Die IDs der zu verwendenden Android-Betriebssystemversionen. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

locales[]

string

Erforderlich. Der Satz von Gebietsschemas, die das Testgerät zum Testen aktiviert. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

orientations[]

string

Erforderlich. Der Satz von Ausrichtungen, mit denen getestet werden soll. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

AndroidDeviceList

Eine Liste der Android-Gerätekonfigurationen, in denen der Test ausgeführt werden soll.

JSON-Darstellung
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
Felder
androidDevices[]

object ( AndroidDevice )

Erforderlich. Eine Liste von Android-Geräten.

Android-Gerät

Ein einzelnes Android-Gerät.

JSON-Darstellung
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
Felder
androidModelId

string

Erforderlich. Die ID des zu verwendenden Android-Geräts. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

androidVersionId

string

Erforderlich. Die ID der zu verwendenden Android-Betriebssystemversion. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

locale

string

Erforderlich. Das Gebietsschema, das das Testgerät zum Testen verwendet. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

orientation

string

Erforderlich. Wie das Gerät während des Tests ausgerichtet ist. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

IosDeviceList

Eine Liste der iOS-Gerätekonfigurationen, in denen der Test ausgeführt werden soll.

JSON-Darstellung
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
Felder
iosDevices[]

object ( IosDevice )

Erforderlich. Eine Liste von iOS-Geräten.

IosGerät

Ein einzelnes iOS-Gerät.

JSON-Darstellung
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
Felder
iosModelId

string

Erforderlich. Die ID des zu verwendenden iOS-Geräts. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

iosVersionId

string

Erforderlich. Die ID der zu verwendenden iOS-Hauptsoftwareversion. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

locale

string

Erforderlich. Das Gebietsschema, das das Testgerät zum Testen verwendet. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

orientation

string

Erforderlich. Wie das Gerät während des Tests ausgerichtet ist. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen.

Test Ausführung

Ein einzelner Test, der in einer einzigen Umgebung ausgeführt wird.

JSON-Darstellung
{
  "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)
  }
}
Felder
id

string

Nur Ausgabe. Vom Dienst festgelegte eindeutige ID.

matrixId

string

Nur Ausgabe. ID der enthaltenden TestMatrix.

projectId

string

Nur Ausgabe. Das Cloud-Projekt, das für die Testausführung verantwortlich ist.

testSpecification

object ( TestSpecification )

Nur Ausgabe. So führen Sie den Test durch.

shard

object ( Shard )

Nur Ausgabe. Details zum Shard.

environment

object ( Environment )

Nur Ausgabe. Wie die Host-Maschine(n) konfiguriert sind.

state

enum ( TestState )

Nur Ausgabe. Zeigt den aktuellen Fortschritt der Testausführung an (z. B. FERTIG).

toolResultsStep

object ( ToolResultsStep )

Nur Ausgabe. Wo die Ergebnisse für diese Ausführung geschrieben werden.

timestamp

string ( Timestamp format)

Nur Ausgabe. Der Zeitpunkt, zu dem diese Testausführung ursprünglich erstellt wurde.

Ein Zeitstempel im RFC3339 UTC „Zulu“-Format mit Nanosekundenauflösung und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z" .

testDetails

object ( TestDetails )

Nur Ausgabe. Weitere Details zum laufenden Test.

Scherbe

Nur Ausgabe. Details zum Shard.

JSON-Darstellung
{
  "shardIndex": integer,
  "numShards": integer,
  "testTargetsForShard": {
    object (TestTargetsForShard)
  },
  "estimatedShardDuration": string
}
Felder
shardIndex

integer

Nur Ausgabe. Der Index des Shards unter allen Shards.

numShards

integer

Nur Ausgabe. Die Gesamtzahl der Shards.

testTargetsForShard

object ( TestTargetsForShard )

Nur Ausgabe. Testziele für jeden Shard. Nur für manuelles Sharding eingestellt.

estimatedShardDuration

string ( Duration format)

Nur Ausgabe. Die geschätzte Shard-Dauer basierend auf früheren Testfall-Timing-Datensätzen, sofern verfügbar.

Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, endend mit „ s “. Beispiel: "3.5s" .

Umfeld

Die Umgebung, in der der Test ausgeführt wird.

JSON-Darstellung
{

  // 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.
}
Felder
Union- environment . Erforderlich. Die Umgebung. environment kann nur eine der folgenden sein:
androidDevice

object ( AndroidDevice )

Ein Android-Gerät, das mit einem Android-Test verwendet werden muss.

iosDevice

object ( IosDevice )

Ein iOS-Gerät, das mit einem iOS-Test verwendet werden muss.

TestState

Der Status (dh der Fortschritt) einer Testausführung oder -matrix.

Aufzählungen
TEST_STATE_UNSPECIFIED Verwende nicht. Nur für die Proto-Versionierung.
VALIDATING Die Ausführung oder Matrix wird validiert.
PENDING Die Ausführung oder Matrix wartet darauf, dass Ressourcen verfügbar werden.
RUNNING

Die Ausführung wird derzeit bearbeitet.

Kann nur bei einer Ausführung festgelegt werden.

FINISHED

Die Ausführung oder Matrix wurde normal beendet.

Auf einer Matrix bedeutet dies, dass die Verarbeitung auf Matrixebene normal abgeschlossen wurde, einzelne Ausführungen sich jedoch möglicherweise im Status FEHLER befinden.

ERROR Die Ausführung oder Matrix wurde gestoppt, weil ein Infrastrukturfehler aufgetreten ist.
UNSUPPORTED_ENVIRONMENT

Die Ausführung wurde nicht ausgeführt, da sie einer nicht unterstützten Umgebung entspricht.

Kann nur bei einer Ausführung festgelegt werden.

INCOMPATIBLE_ENVIRONMENT

Die Ausführung wurde nicht ausgeführt, da die bereitgestellten Eingaben nicht mit der angeforderten Umgebung kompatibel sind.

Beispiel: Die angeforderte AndroidVersion ist niedriger als die minSdkVersion des APK

Kann nur bei einer Ausführung festgelegt werden.

INCOMPATIBLE_ARCHITECTURE

Die Ausführung wurde nicht ausgeführt, da die bereitgestellten Eingaben nicht mit der angeforderten Architektur kompatibel sind.

Beispiel: Das angeforderte Gerät unterstützt die Ausführung des nativen Codes im bereitgestellten APK nicht

Kann nur bei einer Ausführung festgelegt werden.

CANCELLED

Der Benutzer hat die Ausführung abgebrochen.

Kann nur bei einer Ausführung festgelegt werden.

INVALID

Die Ausführung oder Matrix wurde nicht ausgeführt, da die bereitgestellten Eingaben ungültig sind.

Beispiele: Die Eingabedatei hat nicht den erwarteten Typ, ist fehlerhaft/beschädigt oder wurde als Malware gekennzeichnet

ToolResultsStep

Stellt eine Tool-Ergebnisschrittressource dar.

Dies sind die Ergebnisse einer TestExecution.

JSON-Darstellung
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
Felder
projectId

string

Nur Ausgabe. Das Cloud-Projekt, das den Tool-Ergebnisschritt besitzt.

historyId

string

Nur Ausgabe. Eine Tool-Ergebnisverlaufs-ID.

executionId

string

Nur Ausgabe. Eine Tool-Ergebnis-Ausführungs-ID.

stepId

string

Nur Ausgabe. Eine Tool-Ergebnisschritt-ID.

Testdetails

Zusätzliche Details zum Fortschritt des laufenden Tests.

JSON-Darstellung
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
Felder
progressMessages[]

string

Nur Ausgabe. Für Menschen lesbare, detaillierte Beschreibungen des Testfortschritts. Zum Beispiel: „Ein Gerät bereitstellen“, „Test starten“.

Im Laufe der Ausführung können neue Daten an das Ende von progressMessages angehängt werden.

errorMessage

string

Nur Ausgabe. Wenn der TestState ERROR ist, enthält diese Zeichenfolge für Menschen lesbare Details zum Fehler.

Ergebnisspeicher

Speicherorte, an denen die Ergebnisse der Testausführung gespeichert werden.

JSON-Darstellung
{
  "googleCloudStorage": {
    object (GoogleCloudStorage)
  },
  "toolResultsHistory": {
    object (ToolResultsHistory)
  },
  "toolResultsExecution": {
    object (ToolResultsExecution)
  },
  "resultsUrl": string
}
Felder
googleCloudStorage

object ( GoogleCloudStorage )

Erforderlich.

toolResultsHistory

object ( ToolResultsHistory )

Der Tool-Ergebnisverlauf, der die Tool-Ergebnisausführung enthält, in die die Ergebnisse geschrieben werden.

Wenn nicht angegeben, wählt der Dienst einen geeigneten Wert.

toolResultsExecution

object ( ToolResultsExecution )

Nur Ausgabe. Die Tool-Ergebnisausführung, in die die Ergebnisse geschrieben werden.

resultsUrl

string

Nur Ausgabe. URL zu den Ergebnissen in der Firebase-Webkonsole.

GoogleCloudStorage

Ein Speicherort innerhalb des Google Cloud Storage (GCS).

JSON-Darstellung
{
  "gcsPath": string
}
Felder
gcsPath

string

Erforderlich. Der Pfad zu einem Verzeichnis in GCS, das letztendlich die Ergebnisse dieses Tests enthalten wird. Der anfordernde Benutzer muss Schreibzugriff auf den Bucket im angegebenen Pfad haben.

ToolResultsHistory

Stellt eine Tool-Ergebnisverlaufsressource dar.

JSON-Darstellung
{
  "projectId": string,
  "historyId": string
}
Felder
projectId

string

Erforderlich. Das Cloud-Projekt, das den Tool-Ergebnisverlauf besitzt.

historyId

string

Erforderlich. Eine Tool-Ergebnisverlaufs-ID.

ToolResultsExecution

Stellt eine Ressource zur Ausführung von Werkzeugergebnissen dar.

Dies sind die Ergebnisse einer TestMatrix.

JSON-Darstellung
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
Felder
projectId

string

Nur Ausgabe. Das Cloud-Projekt, das die Ausführung der Tool-Ergebnisse besitzt.

historyId

string

Nur Ausgabe. Eine Tool-Ergebnisverlaufs-ID.

executionId

string

Nur Ausgabe. Eine Tool-Ergebnis-Ausführungs-ID.

UngültigeMatrixDetails

Der detaillierte Grund, warum eine Matrix als UNGÜLTIG erachtet wurde.

Aufzählungen
INVALID_MATRIX_DETAILS_UNSPECIFIED Verwende nicht. Nur für die Proto-Versionierung.
DETAILS_UNAVAILABLE Die Matrix ist UNGÜLTIG, es sind jedoch keine weiteren Details verfügbar.
MALFORMED_APK Die Eingabe-App-APK konnte nicht analysiert werden.
MALFORMED_TEST_APK Das Eingabetest-APK konnte nicht geparst werden.
NO_MANIFEST Die AndroidManifest.xml konnte nicht gefunden werden.
NO_PACKAGE_NAME Das APK-Manifest deklariert keinen Paketnamen.
INVALID_PACKAGE_NAME Die APK-Anwendungs-ID (auch Paketname genannt) ist ungültig. Siehe auch https://developer.android.com/build/configure-app-module#set-application-id
TEST_SAME_AS_APP Das Testpaket und das App-Paket sind identisch.
NO_INSTRUMENTATION Die Test-Apk deklariert keine Instrumentierung.
NO_SIGNATURE Die Eingabe-App-Apk hat keine Signatur.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE Die vom Benutzer oder in der Manifestdatei des Test-APK angegebene Test-Runner-Klasse ist nicht mit Android Test Orchestrator kompatibel. Orchestrator ist nur mit AndroidJUnitRunner Version 1.1 oder höher kompatibel. Orchestrator kann mithilfe der OrchestratorOption DO_NOT_USE_ORCHESTRATOR deaktiviert werden.
NO_TEST_RUNNER_CLASS

Das Test-APK enthält nicht die vom Benutzer oder in der Manifestdatei angegebene Testläuferklasse. Dies kann einen der folgenden Gründe haben:

  • Der Benutzer hat einen falschen Runner-Klassennamen angegeben, oder
  • Der Testläufer ist nicht in die Test-APK integriert (möglicherweise stattdessen in der App-APK).
NO_LAUNCHER_ACTIVITY Es konnte keine Haupt-Launcher-Aktivität gefunden werden.
FORBIDDEN_PERMISSIONS Die App deklariert eine oder mehrere Berechtigungen, die nicht zulässig sind.
INVALID_ROBO_DIRECTIVES Es liegt ein Konflikt in den bereitgestellten RoboDirectives vor.
INVALID_RESOURCE_NAME Die bereitgestellten Robo-Anweisungen enthalten mindestens einen ungültigen Ressourcennamen
INVALID_DIRECTIVE_ACTION Ungültige Definition der Aktion in den Robo-Anweisungen (z. B. eine Klick- oder Ignorieraktion enthält ein Eingabetextfeld)
TEST_LOOP_INTENT_FILTER_NOT_FOUND Es gibt keinen Testschleifen-Absichtsfilter oder der angegebene ist nicht richtig formatiert.
SCENARIO_LABEL_NOT_DECLARED Die Anfrage enthält eine Szenariobezeichnung, die nicht im Manifest deklariert wurde.
SCENARIO_LABEL_MALFORMED Beim Parsen des Werts eines Labels ist ein Fehler aufgetreten.
SCENARIO_NOT_DECLARED Die Anfrage enthält eine Szenarionummer, die nicht im Manifest deklariert wurde.
DEVICE_ADMIN_RECEIVER Geräteadministratoranwendungen sind nicht zulässig.
MALFORMED_XC_TEST_ZIP Der komprimierte XCTest war fehlerhaft. Die ZIP-Datei enthielt keine einzige .xctestrun-Datei und den Inhalt des Verzeichnisses DerivedData/Build/Products.
BUILT_FOR_IOS_SIMULATOR Der komprimierte XCTest wurde für den iOS-Simulator und nicht für ein physisches Gerät entwickelt.
NO_TESTS_IN_XC_TEST_ZIP In der .xctestrun-Datei wurden keine Testziele angegeben.
USE_DESTINATION_ARTIFACTS Eines oder mehrere der in der .xctestrun-Datei definierten Testziele geben „UseDestinationArtifacts“ an, was nicht zulässig ist.
TEST_NOT_APP_HOSTED XC-Tests, die auf physischen Geräten ausgeführt werden, müssen „IsAppHostedTestBundle“ == „true“ in der xctestrun-Datei haben.
PLIST_CANNOT_BE_PARSED Eine Info.plist-Datei in der XCTest-ZIP-Datei konnte nicht analysiert werden.
TEST_ONLY_APK

Die APK ist als „testOnly“ gekennzeichnet. Veraltet und wird derzeit nicht verwendet.

MALFORMED_IPA Die Eingabe-IPA konnte nicht analysiert werden.
MISSING_URL_SCHEME Die Anwendung registriert das Game-Loop-URL-Schema nicht.
MALFORMED_APP_BUNDLE Das iOS-Anwendungspaket (.app) konnte nicht verarbeitet werden.
NO_CODE_APK APK enthält keinen Code. Siehe auch https://developer.android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK Entweder war der angegebene Eingabe-APK-Pfad fehlerhaft, die APK-Datei existiert nicht oder der Benutzer hat keine Berechtigung zum Zugriff auf die APK-Datei.
INVALID_APK_PREVIEW_SDK APK wurde für ein Vorschau-SDK erstellt, das nicht unterstützt wird
MATRIX_TOO_LARGE Die Matrix wurde erweitert und enthält zu viele Hinrichtungen.
TEST_QUOTA_EXCEEDED Nicht genügend Testkontingent, um die Ausführungen in dieser Matrix auszuführen.
SERVICE_NOT_ACTIVATED Eine erforderliche Cloud-Service-API ist nicht aktiviert. Siehe: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR Beim Ausführen dieses Tests ist ein unbekanntes Berechtigungsproblem aufgetreten.

ErgebnisZusammenfassung

Ergebniszusammenfassung für eine fertige Testmatrix.

Aufzählungen
OUTCOME_SUMMARY_UNSPECIFIED Verwende nicht. Nur für die Proto-Versionierung.
SUCCESS

Der Testmatrixdurchlauf war erfolgreich, zum Beispiel:

  • Alle Testfälle wurden bestanden.
  • Robo hat keinen Absturz der getesteten Anwendung festgestellt.
FAILURE

Ein Lauf ist fehlgeschlagen, zum Beispiel:

  • Ein oder mehrere Testfälle sind fehlgeschlagen.
  • Ein Test ist abgelaufen.
  • Die getestete Anwendung ist abgestürzt.
INCONCLUSIVE Etwas Unerwartetes ist passiert. Der Lauf sollte immer noch als erfolglos betrachtet werden, es handelt sich jedoch wahrscheinlich um ein vorübergehendes Problem und eine erneute Ausführung des Tests könnte erfolgreich sein.
SKIPPED

Alle Tests wurden übersprungen, zum Beispiel:

  • Alle Gerätekonfigurationen waren inkompatibel.

Methoden

cancel

Bricht nicht abgeschlossene Testausführungen in einer Testmatrix ab.

create

Erstellt und führt eine Testmatrix gemäß den angegebenen Spezifikationen aus.

get

Überprüft den Status einer Testmatrix und der Ausführungen, sobald diese erstellt wurden.