REST Resource: projects.testMatrices

Zasób: TestMatrix

TestMatrix przechwytuje wszystkie szczegóły dotyczące testu. Zawiera konfigurację środowiska, specyfikację testu, wykonanie testów oraz ogólny stan i wynik.

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

string

Tylko wyjście. Unikalny identyfikator ustawiony przez usługę.

projectId

string

Projekt w chmurze będący właścicielem macierzy testowej.

clientInfo

object ( ClientInfo )

Informacje o kliencie, który wywołał test.

testSpecification

object ( TestSpecification )

Wymagany. Jak uruchomić test.

environmentMatrix

object ( EnvironmentMatrix )

Wymagany. Urządzenia, na których przeprowadzane są testy.

testExecutions[]

object ( TestExecution )

Tylko wyjście. Lista wykonań testów tworzonych przez usługę dla tej macierzy.

resultStorage

object ( ResultStorage )

Wymagany. Gdzie zapisywane są wyniki dla macierzy.

state

enum ( TestState )

Tylko wyjście. Wskazuje bieżący postęp matrycy testowej.

timestamp

string ( Timestamp format)

Tylko wyjście. Czas początkowego utworzenia tej macierzy testowej.

Znacznik czasu w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundową i maksymalnie dziewięcioma cyframi ułamkowymi. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z" .

invalidMatrixDetails

enum ( InvalidMatrixDetails )

Tylko wyjście. Opisuje, dlaczego macierz jest uważana za nieprawidłową. Przydatne tylko dla macierzy w stanie INVALID.

flakyTestAttempts

integer

Liczba prób wykonania TestExecution, jeśli z jakiegokolwiek powodu jeden lub więcej przypadków testowych zakończy się niepowodzeniem. Maksymalna dozwolona liczba powtórek to 10.

Wartość domyślna to 0, co oznacza brak powtórek.

outcomeSummary

enum ( OutcomeSummary )

Tylko wyjście. Ogólny wynik testu. Ustawiane tylko wtedy, gdy stan matrycy testowej jest ZAKOŃCZONY.

failFast

boolean

Jeśli ma wartość true, zostanie podjęta co najwyżej jedna próba uruchomienia każdego wykonania/fragmentu w macierzy. Nie ma to wpływu na niestabilne próby testowe.

Zwykle w przypadku wykrycia potencjalnego problemu z infrastrukturą podejmowane są 2 lub więcej prób.

Ta funkcja jest przeznaczona dla obciążeń wrażliwych na opóźnienia. Częstotliwość błędów wykonania może być znacznie większa w przypadku macierzy odpornych na awarie, a wsparcie jest bardziej ograniczone z powodu tych oczekiwań.

Informacje o kliencie

Informacje o kliencie, który wywołał test.

Reprezentacja JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
Pola
name

string

Wymagany. Nazwa klienta, np. gcloud.

clientInfoDetails[]

object ( ClientInfoDetail )

Lista szczegółowych informacji o kliencie.

Informacje o kliencieSzczegóły

Para klucz-wartość zawierająca szczegółowe informacje o kliencie, który wywołał test. Przykłady: {'Wersja', '1.0'}, {'Utwór wydania', 'BETA'}.

Reprezentacja JSON
{
  "key": string,
  "value": string
}
Pola
key

string

Wymagany. Klucz szczegółowych informacji o kliencie.

value

string

Wymagany. Wartość szczegółowych informacji o kliencie.

Specyfikacja testu

Opis sposobu uruchomienia testu.

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

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

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

string ( Duration format)

Maksymalny czas, przez który wykonanie testu może zostać uruchomione, zanim zostanie automatycznie anulowane. Wartość domyślna to 5 minut.

Czas trwania w sekundach, zawierający maksymalnie dziewięć cyfr ułamkowych, kończący się na „ s ”. Przykład: "3.5s" .

disableVideoRecording

boolean

Wyłącza nagrywanie wideo. Może zmniejszyć opóźnienie testu.

disablePerformanceMetrics

boolean

Wyłącza rejestrowanie metryk wydajności. Może zmniejszyć opóźnienie testu.

setup pola Unii. Wymagania dotyczące konfiguracji testu. setup może być tylko jedną z następujących czynności:
testSetup

object ( TestSetup )

Testuj wymagania konfiguracyjne dla Androida, np. pliki do zainstalowania, skrypty ładujące.

iosTestSetup

object ( IosTestSetup )

Wymagania dotyczące konfiguracji testowej dla systemu iOS.

test terenowa Unii. Wymagany. Typ testu do uruchomienia. test może mieć tylko jedną z następujących cech:
androidInstrumentationTest

object ( AndroidInstrumentationTest )

Test oprzyrządowania Androida.

androidRoboTest

object ( AndroidRoboTest )

Test robota na Androida.

androidTestLoop

object ( AndroidTestLoop )

Aplikacja na Androida z pętlą testową.

iosXcTest

object ( IosXcTest )

Test XCTest dla systemu iOS za pośrednictwem pliku .xctestrun.

iosTestLoop

object ( IosTestLoop )

Aplikacja iOS z pętlą testową.

Konfiguracja testowa

Opis konfiguracji urządzenia z systemem Android przed uruchomieniem testu.

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

object ( DeviceFile )

Lista plików do przesłania na urządzenie przed rozpoczęciem testu.

directoriesToPull[]

string

Lista katalogów na urządzeniu do przesłania do GCS na koniec testu; muszą to być ścieżki bezwzględne w /sdcard, /storage lub /data/local/tmp. Nazwy ścieżek są ograniczone do znaków az AZ 0-9 _ - . + i /

Uwaga: Ścieżki /sdcard i /data zostaną udostępnione i traktowane jako niejawne podstawienia ścieżek. Np. jeśli /sdcard na konkretnym urządzeniu nie jest mapowany na pamięć zewnętrzną, system zastąpi go prefiksem ścieżki pamięci zewnętrznej dla tego urządzenia.

additionalApks[]

object ( Apk )

Pliki APK do zainstalowania oprócz tych bezpośrednio testowanych. Obecnie ograniczona do 100.

account

object ( Account )

Urządzenie będzie zalogowane na tym koncie przez czas trwania testu.

networkProfile

string

Profil ruchu sieciowego użyty do uruchomienia testu. Zapytania o dostępne profile sieciowe można wykonać przy użyciu typu środowiska NETWORK_CONFIGURATION podczas wywoływania TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

environmentVariables[]

object ( EnvironmentVariable )

Zmienne środowiskowe do ustawienia na potrzeby testu (dotyczy tylko testów oprzyrządowania).

systrace
(deprecated)

object ( SystraceSetup )

Konfiguracja Systrace dla uruchomienia. Przestarzałe: Systrace używał języka Python 2, który został wycofany 1.01.2020 r. Systrace nie jest już obsługiwany w Cloud Testing API i w wynikach nie zostanie wyświetlony żaden plik Systrace.

dontAutograntPermissions

boolean

Określa, czy zapobiec udzielaniu wszystkich uprawnień wykonawczych podczas instalacji aplikacji

Plik urządzenia

Opis pojedynczego pliku urządzenia.

Reprezentacja JSON
{

  // Union field device_file can be only one of the following:
  "obbFile": {
    object (ObbFile)
  },
  "regularFile": {
    object (RegularFile)
  }
  // End of list of possible types for union field device_file.
}
Pola
Pole Unii device_file . Wymagany. device_file może mieć tylko jedną z następujących wartości:
obbFile

object ( ObbFile )

Odwołanie do nieprzezroczystego pliku binarnego obiektu BLOB.

regularFile

object ( RegularFile )

Odniesienie do zwykłego pliku.

Plik Obb

Nieprzezroczysty binarny plik BLOB do zainstalowania na urządzeniu przed rozpoczęciem testu.

Reprezentacja JSON
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
Pola
obbFileName

string

Wymagany. Nazwa pliku OBB, która musi być zgodna z formatem określonym przez Androida, np. [main|patch].0300110.com.example.android.obb, który zostanie zainstalowany w <shared-storage>/Android/obb/<nazwa-pakietu>/ na urządzeniu.

obb

object ( FileReference )

Wymagany. Nieprzezroczyste pliki Binary Blob (OBB) do zainstalowania na urządzeniu.

Odniesienie do pliku

Odniesienie do pliku używanego do wprowadzania danych przez użytkownika.

Reprezentacja JSON
{

  // Union field file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
Pola
file pola Unii. Wymagany. Odniesienie do pliku. file może być tylko jednym z następujących:
gcsPath

string

Ścieżka do pliku w Google Cloud Storage. Przykład: gs://build-app-1414623860166/app%40debug-unaligned.apk Oczekuje się, że te ścieżki będą zakodowane w adresie URL (kodowanie procentowe)

Zwykły plik

Plik lub katalog do zainstalowania na urządzeniu przed rozpoczęciem testu.

Reprezentacja JSON
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
Pola
content

object ( FileReference )

Wymagany. Plik źródłowy.

devicePath

string

Wymagany. Gdzie umieścić zawartość na urządzeniu. Musi to być ścieżka bezwzględna, znajdująca się na liście dozwolonych. Jeśli plik istnieje, zostanie zastąpiony. Następujące katalogi po stronie urządzenia i wszystkie ich podkatalogi znajdują się na liście dozwolonych:

${EXTERNAL_STORAGE}, /sdcard lub /storage

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

Określenie ścieżki poza tymi drzewami katalogów jest nieprawidłowe.

Ścieżki /sdcard i /data zostaną udostępnione i potraktowane jako niejawne podstawienia ścieżek. Np. jeśli /sdcard na konkretnym urządzeniu nie jest mapowany na pamięć zewnętrzną, system zastąpi go prefiksem ścieżki pamięci zewnętrznej dla tego urządzenia i skopiuje tam plik.

Zdecydowanie zaleca się korzystanie z interfejsu API środowiska w aplikacji i testowanie kodu, aby uzyskać dostęp do plików na urządzeniu w sposób przenośny.

Apk

Plik pakietu Androida do zainstalowania.

Reprezentacja JSON
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
Pola
location

object ( FileReference )

Ścieżka do pliku APK, który ma zostać zainstalowany na urządzeniu przed rozpoczęciem testu.

packageName

string

Pakiet Java dla pakietu APK, który ma zostać zainstalowany. Wartość jest określana poprzez sprawdzenie manifestu aplikacji.

Konto

Identyfikuje konto i sposób logowania się na nie.

Reprezentacja JSON
{

  // Union field account_type can be only one of the following:
  "googleAuto": {
    object (GoogleAuto)
  }
  // End of list of possible types for union field account_type.
}
Pola
Pole związku account_type . Wymagany. Rodzaj konta, w oparciu o jego przeznaczenie (np. Google) i mechanizm logowania (np. nazwa użytkownika i hasło). account_type może mieć tylko jedną z następujących wartości:
googleAuto

object ( GoogleAuto )

Automatyczne konto logowania Google.

GoogleAuto

Umożliwia automatyczne logowanie do konta Google. Jeśli jest ustawione, usługa automatycznie generuje konto testowe Google i dodaje je do urządzenia przed wykonaniem testu. Pamiętaj, że konta testowe mogą zostać ponownie wykorzystane. Wiele aplikacji pokazuje swój pełny zestaw funkcjonalności, gdy na urządzeniu znajduje się konto. Zalogowanie się do urządzenia za pomocą wygenerowanych kont umożliwia przetestowanie większej liczby funkcjonalności.

Zmienna środowiskowa

Para klucz-wartość przekazana do testu jako zmienna środowiskowa.

Reprezentacja JSON
{
  "key": string,
  "value": string
}
Pola
key

string

Klucz zmiennej środowiskowej.

value

string

Wartość zmiennej środowiskowej.

Konfiguracja Systrace

Reprezentacja JSON
{
  "durationSeconds": integer
}
Pola
durationSeconds
(deprecated)

integer

Czas trwania systracji w sekundach. Powinien wynosić od 1 do 30 sekund. 0 wyłącza systrace.

Konfiguracja testu Ios

Opis konfiguracji urządzenia iOS przed uruchomieniem testu.

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

string

Profil ruchu sieciowego użyty do uruchomienia testu. Zapytania o dostępne profile sieciowe można wykonać przy użyciu typu środowiska NETWORK_CONFIGURATION podczas wywoływania TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

additionalIpas[]

object ( FileReference )

Aplikacje na iOS do zainstalowania oprócz tych, które są bezpośrednio testowane.

pushFiles[]

object ( IosDeviceFile )

Lista plików do przesłania na urządzenie przed rozpoczęciem testu.

pullDirectories[]

object ( IosDeviceFile )

Lista katalogów na urządzeniu, które mają zostać przesłane do Cloud Storage na koniec testu.

Katalogi powinny znajdować się we współdzielonym katalogu (takim jak /private/var/mobile/Media) lub w dostępnym katalogu w systemie plików aplikacji (takim jak /Documents) po podaniu identyfikatora pakietu.

Plik urządzenia iOS

Plik lub katalog do zainstalowania na urządzeniu przed rozpoczęciem testu.

Reprezentacja JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
Pola
content

object ( FileReference )

Plik źródłowy

bundleId

string

Identyfikator pakietu aplikacji, w której znajduje się ten plik.

Aplikacje na iOS mają własny system plików w piaskownicy, więc pliki aplikacji muszą określać, która aplikacja jest zainstalowana na urządzeniu.

devicePath

string

Lokalizacja pliku na urządzeniu, w systemie plików w trybie piaskownicy aplikacji

Test oprzyrządowania Androida

Test aplikacji na Androida, która może kontrolować komponent Androida niezależnie od jego normalnego cyklu życia. Testy oprzyrządowania systemu Android uruchamiają plik APK aplikacji i testują plik APK w ramach tego samego procesu na wirtualnym lub fizycznym urządzeniu z systemem Android. Określają także klasę modułu uruchamiającego testy, taką jak com.google.GoogleTestRunner, która może się różnić w zależności od wybranej struktury instrumentacji.

Więcej informacji na temat typów testów Androida można znaleźć na stronie https://developer.android.com/training/testing/fundamentals .

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

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

object ( FileReference )

Wymagany. Plik APK zawierający kod testowy do wykonania.

appPackageId

string

Pakiet Java dla testowanej aplikacji. Wartość domyślna jest określana poprzez sprawdzenie manifestu aplikacji.

testPackageId

string

Pakiet Java dla testu, który ma zostać wykonany. Wartość domyślna jest określana poprzez sprawdzenie manifestu aplikacji.

testRunnerClass

string

Klasa InstrumentationTestRunner. Wartość domyślna jest określana poprzez sprawdzenie manifestu aplikacji.

testTargets[]

string

Każdy cel musi być w pełni kwalifikowany, zawierać nazwę pakietu lub nazwę klasy w jednym z następujących formatów:

  • „nazwa pakietu pakietu”
  • "nazwa pakietu klas. nazwa_klasy"
  • „Nazwa pakietu klas. nazwa_klasy#nazwa_metody”

Jeśli jest pusty, zostaną uruchomione wszystkie cele w module.

orchestratorOption

enum ( OrchestratorOption )

Możliwość uruchomienia każdego testu w ramach własnego wywołania instrumentacji za pomocą narzędzia Android Test Orchestrator, czy nie. ** Orchestrator jest kompatybilny tylko z AndroidJUnitRunner w wersji 1.1 lub nowszej! ** Orchestrator oferuje następujące korzyści:

  • Brak stanu wspólnego
  • Awarie są izolowane
  • Dzienniki są ograniczone do każdego testu

Więcej informacji na temat narzędzia Android Test Orchestrator można znaleźć na stronie https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator .

Jeśli nie zostanie ustawiony, test zostanie uruchomiony bez koordynatora.

shardingOption

object ( ShardingOption )

Możliwość równoległego uruchamiania testów w wielu fragmentach.

Pole Unii app_under_test . Wymagany. app_under_test może mieć tylko jedną z następujących wartości:
appApk

object ( FileReference )

Plik APK dla testowanej aplikacji.

appBundle

object ( AppBundle )

Pakiet aplikacji zawierający wiele apków dla testowanej aplikacji.

Pakiet aplikacji

Format pliku pakietu aplikacji na Androida zawierający plik BundleConfig.pb, katalog modułu podstawowego, zero lub więcej katalogów modułów funkcji dynamicznych.

Zobacz https://developer.android.com/guide/app-bundle/build , aby uzyskać wskazówki dotyczące tworzenia pakietów aplikacji.

Reprezentacja JSON
{

  // Union field bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
Pola
bundle pól Unii. Wymagany. Informacje o lokalizacji pakietu. bundle może być tylko jednym z następujących:
bundleLocation

object ( FileReference )

plik .aab reprezentujący testowany pakiet aplikacji.

Opcja orkiestratora

Określa sposób wykonania testu.

Wyliczenia
ORCHESTRATOR_OPTION_UNSPECIFIED Wartość domyślna: serwer wybierze tryb. Obecnie oznacza, że ​​test zostanie uruchomiony bez koordynatora. W przyszłości wszystkie testy oprzyrządowania będą przeprowadzane z udziałem orkiestratora. Zdecydowanie zaleca się korzystanie z programu Orchestrator ze względu na wszystkie oferowane przez niego korzyści.
USE_ORCHESTRATOR Uruchom test za pomocą programu Orchestrator. ** Kompatybilny tylko z AndroidJUnitRunner w wersji 1.1 lub wyższej! ** Zalecana.
DO_NOT_USE_ORCHESTRATOR Uruchom test bez użycia programu Orchestrator.

Opcja fragmentowania

Opcje włączania fragmentowania.

Reprezentacja JSON
{

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

option pola Unii.

option może mieć tylko jedną z następujących opcji:

uniformSharding

object ( UniformSharding )

Jednolicie dzieli przypadki testowe na podstawie całkowitej liczby fragmentów.

manualSharding

object ( ManualSharding )

Dzieli przypadki testowe na określone grupy pakietów, klas i/lub metod.

smartSharding

object ( SmartSharding )

Test fragmentów na podstawie poprzednich zapisów czasu przypadku testowego.

Jednolite odłamki

Jednolicie dzieli przypadki testowe na podstawie całkowitej liczby fragmentów.

W przypadku testów oprzyrządowania zostanie on przetłumaczony na argumenty „-e numShard” i „-e shardIndex” AndroidJUnitRunner. Po włączeniu jednolitego fragmentowania określenie któregokolwiek z tych argumentów fragmentowania za pomocą environmentVariables jest nieprawidłowe.

W oparciu o mechanizm fragmentowania używany przez AndroidJUnitRunner nie ma gwarancji, że przypadki testowe zostaną równomiernie rozłożone we wszystkich fragmentach.

Reprezentacja JSON
{
  "numShards": integer
}
Pola
numShards

integer

Wymagany. Całkowita liczba fragmentów do utworzenia. Musi to być zawsze liczba dodatnia, która nie jest większa niż całkowita liczba przypadków testowych. Jeśli wybierzesz jedno lub więcej urządzeń fizycznych, liczba fragmentów musi wynosić <= 50. Jeśli wybierzesz jedno lub więcej urządzeń wirtualnych ARM, liczba ta musi wynosić <= 200. Jeśli wybierzesz tylko urządzenia wirtualne x86, liczba ta musi wynosić <= 500 .

Ręczne fragmentowanie

Dzieli przypadki testowe na określone grupy pakietów, klas i/lub metod.

Po włączeniu ręcznego fragmentowania określanie celów testowych za pomocą zmiennych środowiskowych lub w narzędziu InstrumentationTest jest nieprawidłowe.

Reprezentacja JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
Pola
testTargetsForShard[]

object ( TestTargetsForShard )

Wymagany. Grupa pakietów, klas i/lub metod testowych do uruchomienia dla każdego ręcznie utworzonego fragmentu. Jeśli to pole jest obecne, musisz określić co najmniej jeden fragment. Jeśli wybierzesz jedno lub więcej urządzeń fizycznych, liczba powtórzonych testówTargetsForShard musi wynosić <= 50. Jeśli wybierzesz jedno lub więcej urządzeń wirtualnych ARM, liczba ta musi wynosić <= 200. Jeśli wybierzesz tylko urządzenia wirtualne x86, liczba ta musi wynosić <= 500.

TestTargetsForShard

Przetestuj cele pod kątem odłamka.

Reprezentacja JSON
{
  "testTargets": [
    string
  ]
}
Pola
testTargets[]

string

Grupa pakietów, klas i/lub metod testowych do uruchomienia dla każdego fragmentu. Elementy docelowe należy określić w formacie argumentu AndroidJUnitRunner. Na przykład „pakiet com.my.packages” „klasa com.my.package.MyClass”.

Liczba obiektów testTargets musi być większa niż 0.

SmartSharding

Test fragmentów na podstawie poprzednich zapisów czasu przypadku testowego.

Reprezentacja JSON
{
  "targetedShardDuration": string
}
Pola
targetedShardDuration

string ( Duration format)

Ilość czasu, jaką powinny zająć testy w obrębie fragmentu.

Domyślnie: 300 sekund (5 minut). Minimalne dozwolone: ​​120 sekund (2 minuty).

Liczba fragmentów jest ustawiana dynamicznie na podstawie czasu, aż do maksymalnego limitu fragmentów (opisanego poniżej). Aby zagwarantować co najmniej jeden przypadek testowy dla każdego fragmentu, liczba fragmentów nie będzie przekraczać liczby przypadków testowych. Czas trwania fragmentu zostanie przekroczony, jeśli:

  • Osiągnięto maksymalny limit fragmentów i pozostało więcej obliczonego czasu testu do przydzielenia na fragmenty.
  • Szacuje się, że każdy pojedynczy test będzie dłuższy niż docelowy czas trwania fragmentu.

Czas trwania fragmentu nie jest gwarantowany, ponieważ inteligentne fragmentowanie wykorzystuje historię przypadków testowych i domyślne czasy trwania, które mogą nie być dokładne. Zasady wyszukiwania rekordów czasu przypadku testowego są następujące:

  • Jeśli usługa przetworzyła przypadek testowy w ciągu ostatnich 30 dni, zostanie użyty zapis ostatniego zakończonego sukcesem przypadku testowego.
  • W przypadku nowych przypadków testowych zostanie użyty średni czas trwania innych znanych przypadków testowych.
  • Jeśli nie są dostępne żadne wcześniejsze rekordy czasu trwania przypadku testowego, domyślny czas trwania przypadku testowego wynosi 15 sekund.

Ponieważ rzeczywisty czas trwania fragmentu może przekraczać docelowy czas trwania fragmentu, zalecamy ustawienie wartości docelowej na co najmniej 5 minut mniej niż maksymalny dozwolony limit czasu testu (45 minut dla urządzeń fizycznych i 60 minut dla urządzeń wirtualnych) lub użycie niestandardowego ustawioną wartość limitu czasu testu. Takie podejście pozwala uniknąć anulowania fragmentu przed zakończeniem wszystkich testów.

Należy pamiętać, że istnieje limit maksymalnej liczby fragmentów. Jeśli wybierzesz jedno lub więcej urządzeń fizycznych, liczba fragmentów musi wynosić <= 50. Jeśli wybierzesz jedno lub więcej urządzeń wirtualnych ARM, liczba ta musi wynosić <= 200. Jeśli wybierzesz tylko urządzenia wirtualne x86, liczba ta musi wynosić <= 500 Aby zagwarantować co najmniej jeden przypadek testowy na każdy fragment, liczba fragmentów nie będzie przekraczać liczby przypadków testowych. Każdy utworzony fragment wlicza się do dziennego limitu testów.

Czas trwania w sekundach, zawierający maksymalnie dziewięć cyfr ułamkowych, kończący się na „ s ”. Przykład: "3.5s" .

AndroidRoboTest

Test aplikacji na Androida, który eksploruje aplikację na wirtualnym lub fizycznym urządzeniu z Androidem, znajdując winowajców i awarie.

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

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

string

Pakiet Java dla testowanej aplikacji. Wartość domyślna jest określana poprzez sprawdzenie manifestu aplikacji.

appInitialActivity

string

Początkowe działanie, które powinno zostać użyte do uruchomienia aplikacji.

maxDepth
(deprecated)

integer

Maksymalna głębokość stosu przechodzenia, który Robo może eksplorować. Musi być ich co najmniej 2, aby Robo mógł eksplorować aplikację poza pierwszą czynnością. Wartość domyślna to 50.

maxSteps
(deprecated)

integer

Maksymalna liczba kroków, które Robo może wykonać. Domyślnie nie ma limitu.

roboDirectives[]

object ( RoboDirective )

Zestaw dyrektyw, które Robo powinien zastosować podczas indeksowania. Dzięki temu użytkownicy mogą dostosować indeksowanie. Można na przykład podać nazwę użytkownika i hasło do konta testowego.

roboMode

enum ( RoboMode )

Tryb, w którym Robo powinien działać. Większość klientów powinna pozwolić serwerowi na automatyczne wypełnienie tego pola.

roboScript

object ( FileReference )

Plik JSON z sekwencją działań, które Robo powinien wykonać jako prolog przeszukiwania.

startingIntents[]

object ( RoboStartingIntent )

Intencje użyte do uruchomienia aplikacji na potrzeby indeksowania. Jeśli nie podano żadnego, uruchamiane jest główne działanie programu uruchamiającego. Jeśli niektóre są podane, uruchamiane są tylko te, które zostały podane (główna aktywność programu uruchamiającego musi zostać wyraźnie podana).

Pole Unii app_under_test . Wymagany. app_under_test może mieć tylko jedną z następujących wartości:
appApk

object ( FileReference )

Plik APK dla testowanej aplikacji.

appBundle

object ( AppBundle )

Pakiet aplikacji zawierający wiele apków dla testowanej aplikacji.

Dyrektywa Robo

Kieruje Robo do interakcji z określonym elementem interfejsu użytkownika, jeśli zostanie napotkany podczas przeszukiwania. Obecnie Robo może wykonywać wprowadzanie tekstu lub klikanie elementów.

Reprezentacja JSON
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
Pola
resourceName

string

Wymagany. Nazwa zasobu Androida docelowego elementu interfejsu użytkownika. Na przykład w Javie: R.string.foo w xml: @string/foo Potrzebna jest tylko część „foo”. Dokument referencyjny: https://developer.Android.com/guide/topics/resources/accessing-resources.html

inputText

string

Tekst, do którego ustawienia skierowany jest Robo. Jeśli pozostanie pusta, dyrektywa będzie traktowana jako KLIKNIĘCIE elementu pasującego do nazwy zasobu.

actionType

enum ( RoboActionType )

Wymagany. Typ akcji, którą Robo powinien wykonać na określonym elemencie.

Typ RoboAction

Akcje, które Robo może wykonać na elementach interfejsu użytkownika.

Wyliczenia
ACTION_TYPE_UNSPECIFIED NIE UŻYWAJ. Tylko dla wersji proto.
SINGLE_CLICK Skieruj Robo, aby kliknął określony element. Nie ma opcji, jeśli określonego elementu nie można kliknąć.
ENTER_TEXT Poleć Robo, aby wprowadził tekst na określonym elemencie. Brak operacji, jeśli określony element nie jest włączony lub nie pozwala na wprowadzanie tekstu.
IGNORE Nakaż Robo ignorować interakcje z konkretnym elementem.

Tryb Robo

Tryb, w którym Robo powinien działać.

Wyliczenia
ROBO_MODE_UNSPECIFIED Oznacza to, że serwer powinien wybrać tryb. Zalecana.
ROBO_VERSION_1 Uruchamia Robo w trybie tylko UIAutomator bez rezygnacji z aplikacji
ROBO_VERSION_2 Uruchamia Robo w standardowym Espresso z rezerwowym UIAutomatorem

RoboStartingIntent

Komunikat określający działania początkowe do przeszukiwania.

Reprezentacja JSON
{
  "timeout": string,

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

string ( Duration format)

Limit czasu w sekundach dla każdej intencji.

Czas trwania w sekundach, zawierający maksymalnie dziewięć cyfr ułamkowych, kończący się na „ s ”. Przykład: "3.5s" .

Pole Unii starting_intent . Wymagany. Szczegóły zamiaru rozpoczęcia działania. starting_intent może mieć tylko jedną z następujących wartości:
launcherActivity

object ( LauncherActivityIntent )

Intencja, która rozpoczyna główną aktywność programu uruchamiającego.

startActivity

object ( StartActivityIntent )

Intencja, która rozpoczyna działanie od określonych szczegółów.

LauncherActivityIntent

Określa intencję, która rozpoczyna główne działanie programu uruchamiającego.

Rozpocznij działanieIntencja

Początkowy zamiar określony przez akcję, uri i kategorie.

Reprezentacja JSON
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
Pola
action

string

Nazwa akcji. Wymagane dla START_ACTIVITY.

uri

string

URI akcji.

categories[]

string

Kategorie intencji, które można ustawić na podstawie intencji.

Pętla testowa Androida

Test aplikacji na Androida z pętlą testową. Intencja <intent-name> zostanie domyślnie dodana, ponieważ firma Games jest na razie jedynym użytkownikiem tego interfejsu API.

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

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

string

Pakiet Java dla testowanej aplikacji. Wartość domyślna jest określana poprzez sprawdzenie manifestu aplikacji.

scenarios[]

integer

Lista scenariuszy, które powinny zostać uruchomione podczas testu. Wartość domyślna to wszystkie pętle testowe pochodzące z manifestu aplikacji.

scenarioLabels[]

string

Lista etykiet scenariuszy, które powinny zostać uruchomione podczas testu. Etykiety scenariusza powinny być mapowane na etykiety zdefiniowane w manifeście aplikacji. Na przykład player_experience i com.google.test.loops.player_experience dodają do wykonania wszystkie pętle oznaczone w manifeście nazwą com.google.test.loops.player_experience. Scenariusze można także określić w polu scenariuszy.

Pole Unii app_under_test . Wymagany. Pakiet Androida do przetestowania. app_under_test może mieć tylko jedną z następujących wartości:
appApk

object ( FileReference )

Plik APK dla testowanej aplikacji.

appBundle

object ( AppBundle )

Pakiet aplikacji zawierający wiele apków dla testowanej aplikacji.

Test IosXc

Test aplikacji iOS wykorzystującej framework XCTest. Xcode obsługuje opcję „kompilacji do testów”, która generuje plik .xctestrun zawierający specyfikację testu (argumenty, metody testowe itp.). Ten typ testu akceptuje plik zip zawierający plik .xctestrun i odpowiednią zawartość katalogu Build/Products, który zawiera wszystkie pliki binarne potrzebne do uruchomienia testów.

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

object ( FileReference )

Wymagany. Plik .zip zawierający plik .xctestrun i zawartość katalogu DerivedData/Build/Products. Plik .xctestrun w tym zipie jest ignorowany, jeśli określono pole xctestrun.

xctestrun

object ( FileReference )

Plik .xctestrun, który zastąpi plik .xctestrun w zipie testowym. Ponieważ plik .xctestrun zawiera zmienne środowiskowe wraz z metodami testowymi do uruchomienia i/lub zignorowania, może to być przydatne w przypadku testów fragmentowania. Wartość domyślna jest pobierana z testowego zip.

xcodeVersion

string

Wersja Xcode, która powinna być używana w teście. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje. Domyślnie jest to najnowsza wersja Xcode obsługiwana przez Firebase Test Lab.

appBundleId

string

Tylko wyjście. Identyfikator pakietu dla testowanej aplikacji.

testSpecialEntitlements

boolean

Możliwość testowania specjalnych uprawnień aplikacji. Ustawienie tej opcji spowoduje ponowne podpisanie aplikacji ze specjalnymi uprawnieniami za pomocą jawnego identyfikatora aplikacji. Obecnie obsługuje testowanie uprawnień do środowiska aps.

IosTestLoop

Test aplikacji na iOS, która implementuje jeden lub więcej scenariuszy pętli gry. Ten typ testu akceptuje zarchiwizowaną aplikację (plik .ipa) i listę scenariuszy w postaci liczb całkowitych, które będą sekwencyjnie wykonywane w aplikacji.

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

object ( FileReference )

Wymagany. Plik .ipa aplikacji do testowania.

scenarios[]

integer

Lista scenariuszy, które powinny zostać uruchomione podczas testu. Domyślnie ustawiony jest pojedynczy scenariusz 0, jeśli nie został określony.

appBundleId

string

Tylko wyjście. Identyfikator pakietu dla testowanej aplikacji.

ŚrodowiskoMatrix

Macierz środowisk, w których ma zostać wykonany test.

Reprezentacja JSON
{

  // Union field environment_matrix can be only one of the following:
  "androidMatrix": {
    object (AndroidMatrix)
  },
  "androidDeviceList": {
    object (AndroidDeviceList)
  },
  "iosDeviceList": {
    object (IosDeviceList)
  }
  // End of list of possible types for union field environment_matrix.
}
Pola
Pole Unii environment_matrix . Wymagany. Matryca środowiska. environment_matrix może mieć tylko jedną z następujących wartości:
androidMatrix

object ( AndroidMatrix )

Matryca urządzeń z Androidem.

androidDeviceList

object ( AndroidDeviceList )

Lista urządzeń z Androidem; test zostanie uruchomiony tylko na określonych urządzeniach.

iosDeviceList

object ( IosDeviceList )

Lista urządzeń iOS.

AndroidMatrix

Zbiór permutacji konfiguracyjnych urządzeń z systemem Android jest definiowany przez iloczyn danych osi. Wewnętrznie dany AndroidMatrix zostanie rozszerzony na zestaw AndroidDevices.

Utworzone zostaną tylko obsługiwane permutacje. Nieprawidłowe permutacje (np. niezgodne modele/wersje) są ignorowane.

Reprezentacja JSON
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
Pola
androidModelIds[]

string

Wymagany. Identyfikator zestawu urządzeń z systemem Android, który ma być używany. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

androidVersionIds[]

string

Wymagany. Identyfikator zestawu wersji systemu operacyjnego Android, który ma być używany. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

locales[]

string

Wymagany. Zestaw ustawień regionalnych, które urządzenie testowe umożliwi do testowania. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

orientations[]

string

Wymagany. Zestaw orientacji do przetestowania. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

Lista urządzeń z Androidem

Lista konfiguracji urządzeń z systemem Android, w których ma zostać wykonany test.

Reprezentacja JSON
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
Pola
androidDevices[]

object ( AndroidDevice )

Wymagany. Lista urządzeń z Androidem.

Urządzenie z Androidem

Pojedyncze urządzenie z Androidem.

Reprezentacja JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
Pola
androidModelId

string

Wymagany. Identyfikator urządzenia z Androidem, którego chcesz użyć. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

androidVersionId

string

Wymagany. Identyfikator wersji systemu operacyjnego Android, która ma być używana. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

locale

string

Wymagany. Ustawienia regionalne urządzenia testowego używanego do testowania. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

orientation

string

Wymagany. Jak urządzenie jest zorientowane podczas testu. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

Lista urządzeń iOS

Lista konfiguracji urządzeń iOS, w których ma zostać wykonany test.

Reprezentacja JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
Pola
iosDevices[]

object ( IosDevice )

Wymagany. Lista urządzeń iOS.

Urządzenie iOS

Pojedyncze urządzenie z systemem iOS.

Reprezentacja JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
Pola
iosModelId

string

Wymagany. Identyfikator urządzenia iOS, którego chcesz użyć. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

iosVersionId

string

Wymagany. Identyfikator głównej wersji oprogramowania iOS, która ma być używana. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

locale

string

Wymagany. Ustawienia regionalne urządzenia testowego używanego do testowania. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

orientation

string

Wymagany. Jak urządzenie jest zorientowane podczas testu. Użyj TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje.

Wykonanie testu

Pojedynczy test wykonywany w jednym środowisku.

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

string

Tylko wyjście. Unikalny identyfikator ustawiony przez usługę.

matrixId

string

Tylko wyjście. Identyfikator zawierającego TestMatrix.

projectId

string

Tylko wyjście. Projekt w chmurze, który jest właścicielem wykonania testu.

testSpecification

object ( TestSpecification )

Tylko wyjście. Jak uruchomić test.

shard

object ( Shard )

Tylko wyjście. Szczegóły dotyczące odłamka.

environment

object ( Environment )

Tylko wyjście. Jak skonfigurowane są komputery-hosty.

state

enum ( TestState )

Tylko wyjście. Wskazuje bieżący postęp wykonywania testu (np. ZAKOŃCZONO).

toolResultsStep

object ( ToolResultsStep )

Tylko wyjście. Gdzie zapisywane są wyniki tego wykonania.

timestamp

string ( Timestamp format)

Tylko wyjście. Godzina początkowego utworzenia wykonania testu.

Znacznik czasu w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundową i maksymalnie dziewięcioma cyframi ułamkowymi. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z" .

testDetails

object ( TestDetails )

Tylko wyjście. Dodatkowe szczegóły dotyczące testu działania.

Czerep

Tylko wyjście. Szczegóły dotyczące odłamka.

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

integer

Tylko wyjście. Indeks fragmentu wśród wszystkich fragmentów.

numShards

integer

Tylko wyjście. Całkowita liczba fragmentów.

testTargetsForShard

object ( TestTargetsForShard )

Tylko wyjście. Przetestuj cele dla każdego fragmentu. Ustawiony tylko do ręcznego fragmentowania.

estimatedShardDuration

string ( Duration format)

Tylko wyjście. Szacowany czas trwania fragmentu na podstawie zapisów czasu z poprzednich przypadków testowych, jeśli są dostępne.

Czas trwania w sekundach, zawierający maksymalnie dziewięć cyfr ułamkowych, kończący się na „ s ”. Przykład: "3.5s" .

Środowisko

Środowisko, w którym uruchamiany jest test.

Reprezentacja JSON
{

  // Union field environment can be only one of the following:
  "androidDevice": {
    object (AndroidDevice)
  },
  "iosDevice": {
    object (IosDevice)
  }
  // End of list of possible types for union field environment.
}
Pola
environment terenowe Unii. Wymagany. Środowisko. environment może być tylko jednym z następujących:
androidDevice

object ( AndroidDevice )

Urządzenie z Androidem, którego należy używać z testem Androida.

iosDevice

object ( IosDevice )

Urządzenie z systemem iOS, którego należy używać podczas testu systemu iOS.

Stan testu

Stan (tj. postęp) wykonania testu lub macierzy.

Wyliczenia
TEST_STATE_UNSPECIFIED Nie używaj. Tylko dla wersji proto.
VALIDATING Trwa sprawdzanie wykonania lub macierzy.
PENDING Wykonanie lub macierz oczekuje na udostępnienie zasobów.
RUNNING

Egzekucja jest aktualnie przetwarzana.

Można ustawić tylko w wykonaniu.

FINISHED

Wykonanie lub macierz zakończyło się normalnie.

Na macierzy oznacza to, że przetwarzanie na poziomie macierzy zakończyło się normalnie, ale poszczególne wykonania mogą znajdować się w stanie BŁĄD.

ERROR Wykonywanie lub macierz została zatrzymana, ponieważ napotkała awarię infrastruktury.
UNSUPPORTED_ENVIRONMENT

Wykonanie nie zostało wykonane, ponieważ odpowiada nieobsługiwanemu środowisku.

Można ustawić tylko w wykonaniu.

INCOMPATIBLE_ENVIRONMENT

Wykonanie nie zostało wykonane, ponieważ podane dane wejściowe są niezgodne z żądanym środowiskiem.

Przykład: żądana wersja Androida jest niższa niż minSdkVersion pliku APK

Można ustawić tylko w wykonaniu.

INCOMPATIBLE_ARCHITECTURE

Wykonanie nie zostało wykonane, ponieważ podane dane wejściowe są niezgodne z żądaną architekturą.

Przykład: żądane urządzenie nie obsługuje uruchamiania kodu natywnego w dostarczonym pliku APK

Można ustawić tylko w wykonaniu.

CANCELLED

Użytkownik anulował wykonanie.

Można ustawić tylko w wykonaniu.

INVALID

Wykonanie lub macierz nie zostały uruchomione, ponieważ podane dane wejściowe są nieprawidłowe.

Przykłady: plik wejściowy nie jest oczekiwanego typu, jest zniekształcony/uszkodzony lub został oznaczony jako złośliwe oprogramowanie

NarzędzieWynikiKrok

Reprezentuje zasób kroku wyników narzędzia.

Ma to wyniki TestExecution.

Reprezentacja JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
Pola
projectId

string

Tylko wyjście. Projekt w chmurze, który jest właścicielem kroku wyników narzędzia.

historyId

string

Tylko wyjście. Identyfikator historii wyników narzędzia.

executionId

string

Tylko wyjście. Identyfikator wykonania wyniku narzędzia.

stepId

string

Tylko wyjście. Identyfikator kroku wyników narzędzia.

Szczegóły testu

Dodatkowe szczegóły dotyczące postępu testu biegowego.

Reprezentacja JSON
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
Pola
progressMessages[]

string

Tylko wyjście. Czytelne dla człowieka, szczegółowe opisy postępu testu. Na przykład: „Udostępnianie urządzenia”, „Rozpoczęcie testu”.

W trakcie realizacji nowe dane mogą zostać dodane na końcu komunikatów o postępie.

errorMessage

string

Tylko wyjście. Jeśli TestState ma wartość ERROR, wówczas ten ciąg będzie zawierał czytelne dla człowieka szczegóły dotyczące błędu.

Przechowywanie wyników

Lokalizacje, w których przechowywane są wyniki uruchomienia testu.

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

object ( GoogleCloudStorage )

Wymagany.

toolResultsHistory

object ( ToolResultsHistory )

Historia wyników narzędzia zawierająca wykonanie wyników narzędzia, do którego zapisywane są wyniki.

Jeżeli nie zostanie podany, serwis wybierze odpowiednią wartość.

toolResultsExecution

object ( ToolResultsExecution )

Tylko wyjście. Wykonanie wyników narzędzia, do którego zapisywane są wyniki.

resultsUrl

string

Tylko wyjście. Adres URL wyników w konsoli internetowej Firebase.

Magazyn GoogleCloud

Lokalizacja przechowywania w chmurze Google (GCS).

Reprezentacja JSON
{
  "gcsPath": string
}
Pola
gcsPath

string

Wymagany. Ścieżka do katalogu w GCS, który ostatecznie będzie zawierał wyniki tego testu. Użytkownik żądający musi mieć uprawnienia do zapisu w zasobniku w podanej ścieżce.

Historia narzędziWyniki

Reprezentuje zasób historii wyników narzędzia.

Reprezentacja JSON
{
  "projectId": string,
  "historyId": string
}
Pola
projectId

string

Wymagany. Projekt w chmurze będący właścicielem historii wyników narzędzia.

historyId

string

Wymagany. Identyfikator historii wyników narzędzia.

Wykonanie ToolResults

Reprezentuje zasób wykonania wyników narzędzia.

Ma to wyniki TestMatrix.

Reprezentacja JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
Pola
projectId

string

Tylko wyjście. Projekt w chmurze będący właścicielem narzędzia powoduje wykonanie.

historyId

string

Tylko wyjście. Identyfikator historii wyników narzędzia.

executionId

string

Tylko wyjście. Identyfikator wykonania wyniku narzędzia.

Nieprawidłowe szczegóły macierzy

Szczegółowy powód uznania macierzy za NIEWAŻNĄ.

Wyliczenia
INVALID_MATRIX_DETAILS_UNSPECIFIED Nie używaj. Tylko dla wersji proto.
DETAILS_UNAVAILABLE Macierz jest NIEPRAWIDŁOWA, ale nie są dostępne żadne dalsze szczegóły.
MALFORMED_APK Nie można przeanalizować pliku APK aplikacji wejściowej.
MALFORMED_TEST_APK Nie można przeanalizować wejściowego pliku APK testu.
NO_MANIFEST Nie można znaleźć pliku AndroidManifest.xml.
NO_PACKAGE_NAME Manifest APK nie deklaruje nazwy pakietu.
INVALID_PACKAGE_NAME Identyfikator aplikacji APK (inaczej nazwa pakietu) jest nieprawidłowy. Zobacz także https://developer.Android.com/build/configure-app-module#set-application-id
TEST_SAME_AS_APP Pakiet testowy i pakiet aplikacji są takie same.
NO_INSTRUMENTATION Aplikacja testowa nie deklaruje oprzyrządowania.
NO_SIGNATURE Aplikacja wejściowa aplikacji nie ma podpisu.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE Klasa modułu uruchamiającego test określona przez użytkownika lub w pliku manifestu testowego pliku APK nie jest kompatybilna z Android Test Orchestrator. Orchestrator jest kompatybilny tylko z AndroidJUnitRunner w wersji 1.1 lub nowszej. Program Orchestrator można wyłączyć za pomocą opcji DO_NOT_USE_ORCHESTRATOR OrchestratorOption.
NO_TEST_RUNNER_CLASS

Testowy plik APK nie zawiera klasy modułu uruchamiającego test określonej przez użytkownika ani w pliku manifestu. Może to być spowodowane jedną z następujących przyczyn:

  • użytkownik podał niepoprawną nazwę klasy biegacza, lub
  • moduł uruchamiający test nie jest wbudowany w testowy plik APK (zamiast tego może znajdować się w pliku APK aplikacji).
NO_LAUNCHER_ACTIVITY Nie można znaleźć głównej aktywności programu uruchamiającego.
FORBIDDEN_PERMISSIONS Aplikacja deklaruje jedno lub więcej uprawnień, które są niedozwolone.
INVALID_ROBO_DIRECTIVES Wystąpił konflikt w dostarczonych dyrektywach roboDirective.
INVALID_RESOURCE_NAME W podanych dyrektywach robo znajduje się co najmniej jedna nieprawidłowa nazwa zasobu
INVALID_DIRECTIVE_ACTION Nieprawidłowa definicja akcji w dyrektywach robo (np. akcja kliknięcia lub zignorowania zawiera pole tekstu wejściowego)
TEST_LOOP_INTENT_FILTER_NOT_FOUND Nie ma filtra intencji pętli testowej lub podany jest niepoprawnie sformatowany.
SCENARIO_LABEL_NOT_DECLARED Żądanie zawiera etykietę scenariusza, która nie została zadeklarowana w manifeście.
SCENARIO_LABEL_MALFORMED Wystąpił błąd podczas analizowania wartości etykiety.
SCENARIO_NOT_DECLARED Żądanie zawiera numer scenariusza, który nie został zadeklarowany w manifeście.
DEVICE_ADMIN_RECEIVER Aplikacje administratora urządzenia są niedozwolone.
MALFORMED_XC_TEST_ZIP Spakowany plik XCTest był zniekształcony. Zip nie zawierał ani jednego pliku .xctestrun ani zawartości katalogu DerivedData/Build/Products.
BUILT_FOR_IOS_SIMULATOR Spakowany XCTest został zbudowany dla symulatora iOS, a nie dla urządzenia fizycznego.
NO_TESTS_IN_XC_TEST_ZIP Plik .xctestrun nie określił żadnych celów testowych.
USE_DESTINATION_ARTIFACTS Co najmniej jeden z celów testowych zdefiniowanych w pliku .xctestrun określa „UseDestinationArtifacts”, co jest niedozwolone.
TEST_NOT_APP_HOSTED Testy XC uruchamiane na urządzeniach fizycznych muszą mieć wartość „IsAppHostedTestBundle” == „true” w pliku xctestrun.
PLIST_CANNOT_BE_PARSED Nie można przeanalizować pliku Info.plist w pliku zip XCTest.
TEST_ONLY_APK

Plik APK jest oznaczony jako „testOnly”. Przestarzałe i obecnie nie używane.

MALFORMED_IPA Nie można przeanalizować wejściowego IPA.
MISSING_URL_SCHEME Aplikacja nie rejestruje schematu adresu URL pętli gry.
MALFORMED_APP_BUNDLE Nie można przetworzyć pakietu aplikacji na iOS (.app).
NO_CODE_APK APK nie zawiera kodu. Zobacz także https://developer.Android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK Albo podana ścieżka wejściowa pliku APK była zniekształcona, plik APK nie istnieje lub użytkownik nie ma uprawnień dostępu do pliku APK.
INVALID_APK_PREVIEW_SDK Plik APK jest przeznaczony dla wersji zapoznawczej SDK, która nie jest obsługiwana
MATRIX_TOO_LARGE Macierz rozwinęła się i zawierała zbyt wiele wykonań.
TEST_QUOTA_EXCEEDED Za mało przydziału testów, aby uruchomić wykonania w tej macierzy.
SERVICE_NOT_ACTIVATED Wymagany interfejs API usługi w chmurze nie jest aktywowany. Zobacz: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR Podczas wykonywania tego testu wystąpił nieznany problem z uprawnieniami.

Podsumowanie wyników

Podsumowanie wyników gotowej matrycy testowej.

Wyliczenia
OUTCOME_SUMMARY_UNSPECIFIED Nie używaj. Tylko dla wersji proto.
SUCCESS

Uruchomienie macierzy testowej zakończyło się sukcesem, na przykład:

  • Wszystkie przypadki testowe przeszły pomyślnie.
  • Robo nie wykrył awarii testowanej aplikacji.
FAILURE

Uruchomienie nie powiodło się, na przykład:

  • Jeden lub więcej przypadków testowych nie powiodło się.
  • Upłynął limit czasu testu.
  • Testowana aplikacja uległa awarii.
INCONCLUSIVE Stało się coś nieoczekiwanego. Przebieg nadal należy uznać za zakończony niepowodzeniem, jednak jest to prawdopodobnie problem przejściowy i ponowne uruchomienie testu może zakończyć się pomyślnie.
SKIPPED

Pominięto wszystkie testy, na przykład:

  • Wszystkie konfiguracje urządzeń były niezgodne.

Metody

cancel

Anuluje niedokończone wykonania testów w macierzy testów.

create

Tworzy i uruchamia macierz testów zgodnie z zadaną specyfikacją.

get

Sprawdza status macierzy testowej i wykonań po ich utworzeniu.