- Ressource: TestMatrix
- ClientInfo
- ClientInfoDetail
- Testspezifikation
- Versuchsaufbau
- Gerätedatei
- ObbFile
- Aktenzeichen
- RegularFile
- Apk
- Konto
- GoogleAuto
- Umgebungsvariable
- SystraceSetup
- IosTestSetup
- IosDeviceFile
- AndroidInstrumentationTest
- AppBundle
- OrchestratorOption
- ShardingOption
- UniformSharding
- ManualSharding
- TestTargetsForShard
- SmartSharding
- AndroidRoboTest
- RoboDirective
- RoboActionType
- RoboMode
- RoboStartingIntent
- LauncherActivityIntent
- StartActivityIntent
- AndroidTestLoop
- IosXcTest
- IosTestLoop
- UmweltMatrix
- AndroidMatrix
- AndroidDeviceList
- Android-Gerät
- IosDeviceList
- IosGerät
- Test Ausführung
- Scherbe
- Umfeld
- TestState
- ToolResultsStep
- Testdetails
- Ergebnisspeicher
- GoogleCloudStorage
- ToolResultsHistory
- ToolResultsExecution
- UngültigeMatrixDetails
- ErgebnisZusammenfassung
- Methoden
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 ( |
Felder | |
---|---|
testMatrixId | Nur Ausgabe. Vom Dienst festgelegte eindeutige ID. |
projectId | Das Cloud-Projekt, das die Testmatrix besitzt. |
clientInfo | Informationen über den Client, der den Test aufgerufen hat. |
testSpecification | Erforderlich. So führen Sie den Test durch. |
environmentMatrix | Erforderlich. Die Geräte, auf denen die Tests ausgeführt werden. |
testExecutions[] | Nur Ausgabe. Die Liste der Testausführungen, die der Dienst für diese Matrix erstellt. |
resultStorage | Erforderlich. Wo die Ergebnisse für die Matrix geschrieben werden. |
state | Nur Ausgabe. Zeigt den aktuellen Fortschritt der Testmatrix an. |
timestamp | 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: |
invalidMatrixDetails | Nur Ausgabe. Beschreibt, warum die Matrix als ungültig gilt. Nur sinnvoll für Matrizen im INVALID-Zustand. |
flakyTestAttempts | 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 | Nur Ausgabe. Das Gesamtergebnis des Tests. Wird nur gesetzt, wenn der Testmatrixstatus FERTIG ist. |
failFast | 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 ( |
Felder | |
---|---|
name | Erforderlich. Clientname, z. B. gcloud. |
clientInfoDetails[] | 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 | Erforderlich. Der Schlüssel zu detaillierten Kundeninformationen. |
value | Erforderlich. Der Wert detaillierter Kundeninformationen. |
Testspezifikation
Eine Beschreibung, wie der Test ausgeführt wird.
JSON-Darstellung |
---|
{ "testTimeout": string, "disableVideoRecording": boolean, "disablePerformanceMetrics": boolean, // Union field |
Felder | |
---|---|
testTimeout | 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 „ |
disableVideoRecording | Deaktiviert die Videoaufzeichnung. Kann die Testlatenz reduzieren. |
disablePerformanceMetrics | Deaktiviert die Aufzeichnung von Leistungsmetriken. Kann die Testlatenz reduzieren. |
Union-Feld setup . Anforderungen an den Testaufbau. setup kann nur eines der folgenden sein: | |
testSetup | Test-Setup-Anforderungen für Android, z. B. zu installierende Dateien, Bootstrap-Skripte. |
iosTestSetup | Test-Setup-Anforderungen für iOS. |
Union- test . Erforderlich. Der Typ des auszuführenden Tests. test kann nur einer der folgenden sein: | |
androidInstrumentationTest | Ein Android-Instrumentierungstest. |
androidRoboTest | Ein Android-Robo-Test. |
androidTestLoop | Eine Android-Anwendung mit einer Testschleife. |
iosXcTest | Ein iOS XCTest über eine .xctestrun-Datei. |
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 ( |
Felder | |
---|---|
filesToPush[] | Liste der Dateien, die vor Beginn des Tests auf das Gerät übertragen werden sollen. |
directoriesToPull[] | 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[] | APKs, die zusätzlich zu den direkt getesteten APKs installiert werden müssen. Derzeit auf 100 begrenzt. |
account | Das Gerät wird für die Dauer des Tests mit diesem Konto angemeldet sein. |
networkProfile | 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[] | Umgebungsvariablen, die für den Test festgelegt werden sollen (gilt nur für Instrumentierungstests). |
systrace | 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 | Ob verhindert werden soll, dass bei der App-Installation alle Laufzeitberechtigungen gewährt werden |
Gerätedatei
Eine einzelne Gerätedateibeschreibung.
JSON-Darstellung |
---|
{ // Union field |
Felder | |
---|---|
Union-Feld device_file . Erforderlich. device_file kann nur einer der folgenden sein: | |
obbFile | Ein Verweis auf eine undurchsichtige binäre Blobdatei. |
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 ( |
Felder | |
---|---|
obbFileName | 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 | 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 |
Felder | |
---|---|
Union- file . Erforderlich. Der Dateiverweis. file kann nur eine der folgenden sein: | |
gcsPath | 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 ( |
Felder | |
---|---|
content | Erforderlich. Die Quelldatei. |
devicePath | 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 ( |
Felder | |
---|---|
location | Der Pfad zu einem APK, das vor Beginn des Tests auf dem Gerät installiert werden soll. |
packageName | 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 |
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 | 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 | Schlüssel für die Umgebungsvariable. |
value | Wert für die Umgebungsvariable. |
SystraceSetup
JSON-Darstellung |
---|
{ "durationSeconds": integer } |
Felder | |
---|---|
durationSeconds | 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 ( |
Felder | |
---|---|
networkProfile | 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[] | iOS-Apps, die zusätzlich zu den direkt getesteten Apps installiert werden können. |
pushFiles[] | Liste der Dateien, die vor Beginn des Tests auf das Gerät übertragen werden sollen. |
pullDirectories[] | 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 ( |
Felder | |
---|---|
content | Die Quelldatei |
bundleId | 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 | 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 ( |
Felder | |
---|---|
testApk | Erforderlich. Das APK, das den auszuführenden Testcode enthält. |
appPackageId | Das Java-Paket für die zu testende Anwendung. Der Standardwert wird durch Untersuchung des Manifests der Anwendung ermittelt. |
testPackageId | Das Java-Paket für den auszuführenden Test. Der Standardwert wird durch Untersuchung des Manifests der Anwendung ermittelt. |
testRunnerClass | Die InstrumentationTestRunner-Klasse. Der Standardwert wird durch Untersuchung des Manifests der Anwendung ermittelt. |
testTargets[] | Jedes Ziel muss vollständig mit dem Paketnamen oder Klassennamen in einem dieser Formate qualifiziert sein:
Wenn leer, werden alle Ziele im Modul ausgeführt. |
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:
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 | 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 | Das APK für die zu testende Anwendung. |
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 |
Felder | |
---|---|
Union- bundle . Erforderlich. Standortinformationen bündeln. bundle kann nur eines der folgenden sein: | |
bundleLocation | .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 |
Felder | |
---|---|
Union- | |
uniformSharding | Einheitliche Shards von Testfällen bei gegebener Gesamtzahl von Shards. |
manualSharding | Zerlegt Testfälle in die angegebenen Gruppen von Paketen, Klassen und/oder Methoden. |
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 | 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 ( |
Felder | |
---|---|
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[] | 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 | 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:
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:
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 „ |
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 ( |
Felder | |
---|---|
appPackageId | Das Java-Paket für die zu testende Anwendung. Der Standardwert wird durch Untersuchung des Manifests der Anwendung ermittelt. |
appInitialActivity | Die anfängliche Aktivität, die zum Starten der App verwendet werden soll. |
maxDepth | 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 | Die maximale Anzahl an Schritten, die Robo ausführen kann. Der Standardwert ist unbegrenzt. |
roboDirectives[] | 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 | Der Modus, in dem Robo ausgeführt werden soll. Die meisten Clients sollten dem Server erlauben, dieses Feld automatisch auszufüllen. |
roboScript | Eine JSON-Datei mit einer Abfolge von Aktionen, die Robo als Prolog für den Crawl ausführen soll. |
startingIntents[] | 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 | Das APK für die zu testende Anwendung. |
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 ( |
Felder | |
---|---|
resourceName | 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 | Der Text, den Robo vertonen soll. Wenn sie leer bleibt, wird die Anweisung als KLICK auf das Element behandelt, das dem Ressourcennamen entspricht. |
actionType | 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 |
Felder | |
---|---|
timeout | Timeout in Sekunden für jeden Intent. Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, endend mit „ |
Union-Feld starting_intent . Erforderlich. Absichtsdetails zum Starten einer Aktivität. starting_intent kann nur einer der folgenden Werte sein: | |
launcherActivity | Eine Absicht, die die Hauptaktivität des Launchers startet. |
startActivity | 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 | Aktionsname. Erforderlich für START_ACTIVITY. |
uri | URI für die Aktion. |
categories[] | 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 |
Felder | |
---|---|
appPackageId | Das Java-Paket für die zu testende Anwendung. Der Standardwert wird durch Untersuchung des Manifests der Anwendung ermittelt. |
scenarios[] | Die Liste der Szenarios, die während des Tests ausgeführt werden sollen. Der Standardwert sind alle Testschleifen, abgeleitet vom Manifest der Anwendung. |
scenarioLabels[] | 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 | Das APK für die zu testende Anwendung. |
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 ( |
Felder | |
---|---|
testsZip | 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 | 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 | 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 | Nur Ausgabe. Die Bundle-ID für die getestete Anwendung. |
testSpecialEntitlements | 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 ( |
Felder | |
---|---|
appIpa | Erforderlich. Die IPA-Datei der zu testenden Anwendung. |
scenarios[] | Die Liste der Szenarios, die während des Tests ausgeführt werden sollen. Wenn nicht angegeben, wird standardmäßig das Einzelszenario 0 verwendet. |
appBundleId | 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 |
Felder | |
---|---|
Union-Feld environment_matrix . Erforderlich. Die Umgebungsmatrix. environment_matrix kann nur einer der folgenden Werte sein: | |
androidMatrix | Eine Matrix von Android-Geräten. |
androidDeviceList | Eine Liste von Android-Geräten; Der Test wird nur auf den angegebenen Geräten ausgeführt. |
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[] | Erforderlich. Die IDs der zu verwendenden Android-Gerätegruppe. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen. |
androidVersionIds[] | Erforderlich. Die IDs der zu verwendenden Android-Betriebssystemversionen. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen. |
locales[] | Erforderlich. Der Satz von Gebietsschemas, die das Testgerät zum Testen aktiviert. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen. |
orientations[] | 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 ( |
Felder | |
---|---|
androidDevices[] | 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 | Erforderlich. Die ID des zu verwendenden Android-Geräts. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen. |
androidVersionId | Erforderlich. Die ID der zu verwendenden Android-Betriebssystemversion. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen. |
locale | Erforderlich. Das Gebietsschema, das das Testgerät zum Testen verwendet. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen. |
orientation | 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 ( |
Felder | |
---|---|
iosDevices[] | 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 | Erforderlich. Die ID des zu verwendenden iOS-Geräts. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen. |
iosVersionId | Erforderlich. Die ID der zu verwendenden iOS-Hauptsoftwareversion. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen. |
locale | Erforderlich. Das Gebietsschema, das das Testgerät zum Testen verwendet. Verwenden Sie den TestEnvironmentDiscoveryService, um unterstützte Optionen abzurufen. |
orientation | 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 ( |
Felder | |
---|---|
id | Nur Ausgabe. Vom Dienst festgelegte eindeutige ID. |
matrixId | Nur Ausgabe. ID der enthaltenden TestMatrix. |
projectId | Nur Ausgabe. Das Cloud-Projekt, das für die Testausführung verantwortlich ist. |
testSpecification | Nur Ausgabe. So führen Sie den Test durch. |
shard | Nur Ausgabe. Details zum Shard. |
environment | Nur Ausgabe. Wie die Host-Maschine(n) konfiguriert sind. |
state | Nur Ausgabe. Zeigt den aktuellen Fortschritt der Testausführung an (z. B. FERTIG). |
toolResultsStep | Nur Ausgabe. Wo die Ergebnisse für diese Ausführung geschrieben werden. |
timestamp | 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: |
testDetails | Nur Ausgabe. Weitere Details zum laufenden Test. |
Scherbe
Nur Ausgabe. Details zum Shard.
JSON-Darstellung |
---|
{
"shardIndex": integer,
"numShards": integer,
"testTargetsForShard": {
object ( |
Felder | |
---|---|
shardIndex | Nur Ausgabe. Der Index des Shards unter allen Shards. |
numShards | Nur Ausgabe. Die Gesamtzahl der Shards. |
testTargetsForShard | Nur Ausgabe. Testziele für jeden Shard. Nur für manuelles Sharding eingestellt. |
estimatedShardDuration | 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 „ |
Umfeld
Die Umgebung, in der der Test ausgeführt wird.
JSON-Darstellung |
---|
{ // Union field |
Felder | |
---|---|
Union- environment . Erforderlich. Die Umgebung. environment kann nur eine der folgenden sein: | |
androidDevice | Ein Android-Gerät, das mit einem Android-Test verwendet werden muss. |
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 | Nur Ausgabe. Das Cloud-Projekt, das den Tool-Ergebnisschritt besitzt. |
historyId | Nur Ausgabe. Eine Tool-Ergebnisverlaufs-ID. |
executionId | Nur Ausgabe. Eine Tool-Ergebnis-Ausführungs-ID. |
stepId | Nur Ausgabe. Eine Tool-Ergebnisschritt-ID. |
Testdetails
Zusätzliche Details zum Fortschritt des laufenden Tests.
JSON-Darstellung |
---|
{ "progressMessages": [ string ], "errorMessage": string } |
Felder | |
---|---|
progressMessages[] | 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 | 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 ( |
Felder | |
---|---|
googleCloudStorage | Erforderlich. |
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 | Nur Ausgabe. Die Tool-Ergebnisausführung, in die die Ergebnisse geschrieben werden. |
resultsUrl | 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 | 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 | Erforderlich. Das Cloud-Projekt, das den Tool-Ergebnisverlauf besitzt. |
historyId | 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 | Nur Ausgabe. Das Cloud-Projekt, das die Ausführung der Tool-Ergebnisse besitzt. |
historyId | Nur Ausgabe. Eine Tool-Ergebnisverlaufs-ID. |
executionId | 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:
|
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:
|
FAILURE | Ein Lauf ist fehlgeschlagen, zum Beispiel:
|
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:
|
Methoden | |
---|---|
| Bricht nicht abgeschlossene Testausführungen in einer Testmatrix ab. |
| Erstellt und führt eine Testmatrix gemäß den angegebenen Spezifikationen aus. |
| Überprüft den Status einer Testmatrix und der Ausführungen, sobald diese erstellt wurden. |