- Zasób: TestMatrix
- Informacje o kliencie
- ClientInfoDetails
- TestSpecification
- Konfiguracja testu
- Plik DeviceFile
- Plik obbFile
- Odniesienie do pliku
- Plik zwykły
- Pakiet APK
- Konto
- GoogleAuto
- Zmienna środowiskowa
- Konfiguracja Systrace
- Konfiguracja iOSTest
- iOSDeviceFile
- Test narzędzi Androida
- Pakiet aplikacji
- OrchestratorOption
- Opcja fragmentacji
- Jednolite fragmentowanie
- Ręczne fragmentowanie
- Cele testowe dla fragmentu
- SmartSharding,
- AndroidRoboTest
- RoboDirective
- RoboActionType
- RoboMode
- RoboStartingIntent
- LauncherActivityIntent
- StartActivityIntent
- NoActivityIntent
- AndroidTestLoop
- iOSXcTest
- IosTestLoop
- iOSRoboTest
- EnvironmentMatrix,
- AndroidMatrix,
- AndroidDeviceList
- iOSDeviceList
- Urządzenie z iOS
- TestExecution
- Fragment
- Środowisko
- TestState
- ToolResultsStep
- Szczegóły Testu
- ResultStorage (pamięć wynikowa)
- Google CloudStorage,
- ToolResultsHistory
- ToolResultsExecution
- InvalidMatrixDetails
- MatrixErrorDetails
- Podsumowanie wyniku
- Metody
Zasób: TestMatrix
TestMatrix rejestruje wszystkie szczegóły testu. Zawiera on konfigurację środowiska, specyfikację testu, wykonania testów oraz ogólny stan i wynik.
Zapis JSON |
---|
{ "testMatrixId": string, "projectId": string, "clientInfo": { object ( |
Pola | |
---|---|
testMatrixId |
Tylko dane wyjściowe. Unikalny identyfikator ustawiony przez usługę. |
projectId |
Projekt w chmurze, do którego należy macierz testów. |
clientInfo |
Informacje o kliencie, który wywołał test. |
testSpecification |
Wymagane. Jak przeprowadzić test. |
environmentMatrix |
Wymagane. Urządzenia, na których są przeprowadzane testy. |
testExecutions[] |
Tylko dane wyjściowe. Lista wykonań testów tworzonych przez usługę dla tej macierzy. |
resultStorage |
Wymagane. Miejsce, w którym zapisywane są wyniki macierzy. |
state |
Tylko dane wyjściowe. Wskazuje bieżący postęp macierzy testów. |
timestamp |
Tylko dane wyjściowe. Czas pierwszego utworzenia tej macierzy testów. Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: |
invalidMatrixDetails |
Tylko dane wyjściowe. Wyjaśnia, dlaczego tablica jest uznawana za nieprawidłową. Przydatny tylko w przypadku macierzy w stanie NIEPRAWIDŁOWYM. |
extendedInvalidMatrixDetails[] |
Tylko dane wyjściowe. Szczegółowe informacje o tym, dlaczego tablica została uznana za nieprawidłową. Jeśli można bezpiecznie przeprowadzić wiele testów, zostaną one uwzględnione w raporcie, ale nie należy przyjmować żadnych założeń dotyczących długości tej listy. |
flakyTestAttempts |
Liczba ponownych prób wykonania TestExecution, jeśli co najmniej 1 przypadek testowy z jakiegoś powodu zakończy się niepowodzeniem. Maksymalna dozwolona liczba powtórzeń to 10. Wartość domyślna to 0, co oznacza brak powtórek. |
outcomeSummary |
Tylko dane wyjściowe. Ogólny wynik testu. Ustawiany tylko wtedy, gdy stan macierzy testów to ZAKOŃCZONO. |
failFast |
Jeśli wartość to prawda, zostanie podjęta maksymalnie jedna próba uruchomienia każdego wykonania/fragmentu w macierzy. Nie ma to wpływu na niepewne testy. Normalnie w przypadku wykrycia potencjalnego problemu z infrastrukturą podejmowane są co najmniej 2 próby. Ta funkcja jest przeznaczona do zadań wrażliwych na czas oczekiwania. W przypadku macierzy z błyskawiczną liczbą błędów podczas wykonywania może być znacznie więcej, a obsługa jest ograniczona z tego powodu. |
ClientInfo
Informacje o kliencie, który wywołał test.
Zapis JSON |
---|
{
"name": string,
"clientInfoDetails": [
{
object ( |
Pola | |
---|---|
name |
Wymagane. Nazwa klienta, na przykład gcloud. |
clientInfoDetails[] |
Lista szczegółowych informacji o kliencie. |
Szczegóły Informacje o kliencie
Para klucz-wartość zawierająca szczegółowe informacje o kliencie, który wywołał test. Przykłady: {'Version', '1.0'}, {'Wersja wersji', „BETA'}.
Zapis JSON |
---|
{ "key": string, "value": string } |
Pola | |
---|---|
key |
Wymagane. Klucz zawierający szczegółowe informacje o kliencie. |
value |
Wymagane. Wartość szczegółowych informacji o kliencie. |
Specyfikacja testu
Opis sposobu przeprowadzenia testu.
Zapis JSON |
---|
{ "testTimeout": string, "disableVideoRecording": boolean, "disablePerformanceMetrics": boolean, // Union field |
Pola | |
---|---|
testTimeout |
Maksymalny czas trwania wykonania testu, po którym zostanie automatycznie anulowane. Wartość domyślna to 5 minut. Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „ |
disableVideoRecording |
Wyłącza nagrywanie wideo. Może to spowodować skrócenie czasu oczekiwania na odpowiedź. |
disablePerformanceMetrics |
Wyłącza rejestrowanie danych dotyczących wydajności. Może to spowodować skrócenie czasu oczekiwania na odpowiedź. |
Pole sumy setup . Wymagania konfiguracji testu. setup może mieć tylko jedną z tych wartości: |
|
testSetup |
Wymagania konfiguracji testów na Androida, np. pliki do zainstalowania, skrypty wczytywania. |
iosTestSetup |
Przetestuj wymagania konfiguracyjne w przypadku iOS. |
Pole sumy test . Wymagane. Typ testu do przeprowadzenia. test może mieć tylko jedną z tych wartości: |
|
androidInstrumentationTest |
Test z instrumentacją na Androida. |
androidRoboTest |
Test Robo na Androidzie. |
androidTestLoop |
Aplikacja na Androida z pętlą testową. |
iosXcTest |
XCTest na iOS przy użyciu pliku .xctestrun. |
iosTestLoop |
Aplikacja na iOS z pętlą testową. |
iosRoboTest |
Test Robo na iOS. |
Konfiguracja testu
Opis konfiguracji urządzenia z Androidem przed uruchomieniem testu.
Zapis JSON |
---|
{ "filesToPush": [ { object ( |
Pola | |
---|---|
filesToPush[] |
Lista plików do przekazania na urządzenie przed rozpoczęciem testu. |
directoriesToPull[] |
lista katalogów na urządzeniu, które mają zostać przesłane do GCS po zakończeniu testu; muszą to być ścieżki bezwzględne w katalogu /sdcard, /storage lub /data/local/tmp. Nazwy ścieżek są ograniczone do znaków a–z A–Z 0–9 _ - . + i / Uwaga: ścieżki /sdcard i /data zostaną udostępnione i będą traktowane jako niejawne zastąpienia ścieżek. Na przykład: Jeśli karta /sdcard na danym urządzeniu nie jest zmapowana na pamięć zewnętrzną, system zastąpi ją prefiksem ścieżki pamięci zewnętrznej tego urządzenia. |
initialSetupApks[] |
Opcjonalnie. Pliki APK konfiguracji początkowej do zainstalowania przed zainstalowaniem testowanej aplikacji. Obecnie limit wynosi 100. |
additionalApks[] |
Pliki APK do zainstalowania oprócz plików testowanych bezpośrednio. Zostaną one zainstalowane po przetestowaniu aplikacji. Obecnie limit wynosi 100. |
account |
Urządzenie będzie zalogowane na tym koncie na czas trwania testu. |
networkProfile |
Profil ruchu w sieci używany do przeprowadzenia testu. Zapytania dotyczące dostępnych profili sieci można wykonywać przy użyciu typu środowiska NETWORK_CONFIGURATION podczas wywoływania usługi TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. |
environmentVariables[] |
Zmienne środowiskowe do ustawienia na potrzeby testu (dotyczy tylko testów narzędzi). |
systrace |
Konfiguracja Systrace na potrzeby uruchomienia. Wycofane: Systrace używał języka Python 2, który został wycofany 1 stycznia 2020 r. Usługa Systrace nie jest już obsługiwana w Cloud Testing API, a w wynikach nie będzie dostępny żaden plik Systrace. |
dontAutograntPermissions |
Określa, czy podczas instalowania aplikacji mają być przyznawane wszystkie uprawnienia w czasie działania |
Plik urządzenia
Pojedynczy opis pliku na urządzeniu.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy device_file . Wymagane. device_file może mieć tylko jedną z tych wartości: |
|
obbFile |
Odwołanie do nieprzejrzystego binarnego pliku blob. |
regularFile |
Odwołanie do zwykłego pliku. |
Plik OBB
Nieprzezroczysty binarny plik blob do zainstalowania na urządzeniu przed rozpoczęciem testu.
Zapis JSON |
---|
{
"obbFileName": string,
"obb": {
object ( |
Pola | |
---|---|
obbFileName |
Wymagane. 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 folderze <shared-storage>/Android/obb/<nazwa-pakietu>/ na urządzeniu. |
obb |
Wymagane. Pliki OBB (Opaque Binary Blob) do zainstalowania na urządzeniu. |
Odniesienie do pliku
Odwołanie do pliku używane do wprowadzania danych przez użytkownika.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy file . Wymagane. Odwołanie do pliku. file może mieć tylko jedną z tych wartości: |
|
gcsPath |
Ścieżka do pliku w Google Cloud Storage. Przykład: gs://build-app-1414623860166/app%40debug-unaligned.apk Te ścieżki powinny być zakodowane w adresie URL (kodowanie procentowe) |
Zwykły plik
Plik lub katalog do zainstalowania na urządzeniu przed rozpoczęciem testu.
Zapis JSON |
---|
{
"content": {
object ( |
Pola | |
---|---|
content |
Wymagane. Plik źródłowy. |
devicePath |
Wymagane. Gdzie umieścić treści na urządzeniu. Musi to być ścieżka bezwzględna, dozwolona na liście dozwolonych. Jeśli plik istnieje, zostanie zastąpiony. Dozwolone są te katalogi po stronie urządzenia i wszystkie ich podkatalogi: ${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 będą traktowane jako niejawne zamienniki ścieżek. Na przykład: Jeśli katalog /sdcard na danym urządzeniu nie jest zmapowany na pamięć zewnętrzną, system zastąpi go prefiksem ścieżki pamięci zewnętrznej odpowiedniego urządzenia i skopiuje do niego plik. Zdecydowanie zalecamy korzystanie w aplikacji z interfejsu Environment API i testowanie kodu, aby uzyskać przenośny dostęp do plików na urządzeniu. |
Pakiet APK
Plik pakietu na Androida do zainstalowania.
Zapis JSON |
---|
{
"location": {
object ( |
Pola | |
---|---|
location |
Ścieżka do pliku APK do zainstalowania na urządzeniu przed rozpoczęciem testu. |
packageName |
Pakiet Javy, który ma zostać zainstalowany. Wartość jest określana przez sprawdzenie pliku manifestu aplikacji. |
Konto
Identyfikuje konto i sposób logowania się na nie.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy account_type . Wymagane. Typ konta określony na podstawie przeznaczenia (np. Google) i mechanizmu logowania się (np. nazwy użytkownika i hasła). account_type może mieć tylko jedną z tych wartości: |
|
googleAuto |
Automatyczne konto logowania w Google. |
GoogleAuto
Ten typ nie zawiera pól.
Umożliwia automatyczne logowanie się na konto Google. Jeśli jest skonfigurowane, usługa automatycznie generuje konto testowe Google i dodaje je do urządzenia przed wykonaniem testu. Pamiętaj, że konta testowe mogą być używane wielokrotnie. Wiele aplikacji wyświetla pełny zestaw funkcji, jeśli na urządzeniu jest dodane konto. Gdy zalogujesz się na urządzeniu za pomocą tych wygenerowanych kont, możesz przetestować więcej funkcji.
Zmienna środowiskowa
Para klucz-wartość przekazywana do testu jako zmienna środowiskowa.
Zapis JSON |
---|
{ "key": string, "value": string } |
Pola | |
---|---|
key |
Klucz zmiennej środowiskowej. |
value |
Wartość zmiennej środowiskowej. |
Konfiguracja usługi Systrace
Zapis JSON |
---|
{ "durationSeconds": integer } |
Pola | |
---|---|
durationSeconds |
Czas trwania Systrace w sekundach. Wartość powinna wynosić od 1 do 30 sekund. Wartość 0 wyłącza funkcję systrace. |
Konfiguracja testów iOS
Opis konfiguracji urządzenia z iOS przed rozpoczęciem testu.
Zapis JSON |
---|
{ "networkProfile": string, "additionalIpas": [ { object ( |
Pola | |
---|---|
networkProfile |
Profil ruchu w sieci używany do przeprowadzenia testu. Zapytania dotyczące dostępnych profili sieci można wykonywać przy użyciu typu środowiska NETWORK_CONFIGURATION podczas wywoływania usługi TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. |
additionalIpas[] |
Aplikacje na iOS, które warto zainstalować jako dodatek do bezpośrednio testowanych. |
pushFiles[] |
Lista plików do przekazania na urządzenie przed rozpoczęciem testu. |
pullDirectories[] |
Lista katalogów na urządzeniu, które mają zostać przesłane do Cloud Storage po zakończeniu testu. Katalogi powinny znajdować się w katalogu współdzielonym (np. /private/var/mobile/Media) lub w dostępnym katalogu w systemie plików aplikacji (np. /Documents) przez podanie identyfikatora pakietu. |
Plik urządzenia iOS
Plik lub katalog do zainstalowania na urządzeniu przed rozpoczęciem testu.
Zapis JSON |
---|
{
"content": {
object ( |
Pola | |
---|---|
content |
Plik źródłowy |
bundleId |
Identyfikator pakietu aplikacji, w której znajduje się ten plik. Aplikacje na iOS umieszczają w piaskownicy własny system plików, dlatego pliki aplikacji muszą określać, która aplikacja jest zainstalowana na urządzeniu. |
devicePath |
Lokalizacja pliku na urządzeniu w systemie plików aplikacji w piaskownicy |
Test instrumentacji w Androidzie
Testowanie aplikacji na Androida, która może sterować komponentem Androida niezależnie od normalnego cyklu życia. Testy narzędzi na Androida uruchamiają plik APK aplikacji i sprawdzają go w ramach tego samego procesu na wirtualnym lub fizycznym urządzeniu z Androidem. Określają też klasę uruchamiania testów, np. com.google.GoogleTestRunner, która może się różnić w zależności od wybranej platformy instrumentacji.
Więcej informacji o typach testów na Androida znajdziesz na stronie https://developer.android.com/training/testing/fundamentals.
Zapis JSON |
---|
{ "testApk": { object ( |
Pola | |
---|---|
testApk |
Wymagane. Plik APK zawierający kod testu do wykonania. |
appPackageId |
Pakiet Javy dla testowanej aplikacji. Wartość domyślna jest określana przez sprawdzenie pliku manifestu aplikacji. |
testPackageId |
Pakiet języka Java do wykonania testu. Wartość domyślna jest określana przez sprawdzenie pliku manifestu aplikacji. |
testRunnerClass |
Klasa InstrumentationTestRunner. Wartość domyślna jest określana przez sprawdzenie pliku manifestu aplikacji. |
testTargets[] |
Każdy cel musi być w pełni kwalifikowany nazwą pakietu lub klasy w jednym z tych formatów:
Jeśli pole będzie puste, uruchomione będą wszystkie elementy docelowe w module. |
orchestratorOption |
Opcja określająca, czy każdy test ma być uruchamiany w ramach własnego wywołania instrumentacji za pomocą narzędzia Android Test Agency. ** Narzędzie Apigee jest zgodne tylko z AndroidemJUnitRunner w wersji 1.1 lub nowszej. ** Narzędzie Apigee zapewnia następujące korzyści:
Więcej informacji o Android Test Assistant znajdziesz na stronie https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator. Jeśli zasada nie jest skonfigurowana, test będzie uruchamiany bez akredytatora. |
shardingOption |
Opcja uruchamiania testów równolegle w wielu fragmentach. |
Pole sumy app_under_test . Wymagane. app_under_test może mieć tylko jedną z tych wartości: |
|
appApk |
Pakiet APK testowanej aplikacji. |
appBundle |
Pakiet aplikacji z wieloma plikami APK dla testowanej aplikacji. |
Pakiet aplikacji
Format pliku pakietu Android App Bundle, który zawiera plik BundleConfig.pb, katalog modułu podstawowego, zero lub więcej katalogów modułów funkcji dynamicznych.
Wskazówki dotyczące tworzenia pakietów aplikacji znajdziesz na stronie https://developer.android.com/guide/app-bundle/build.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy bundle . Wymagane. Dołącz informacje o lokalizacji. bundle może mieć tylko jedną z tych wartości: |
|
bundleLocation |
plik .aab reprezentujący testowany pakiet aplikacji; |
Opcja orkiestrowa
Określa sposób przeprowadzania testu.
Wartości w polu enum | |
---|---|
ORCHESTRATOR_OPTION_UNSPECIFIED |
Wartość domyślna: serwer wybiera tryb. Obecnie oznacza, że test będzie uruchomiony bez administracyjnego. W przyszłości wszystkie testy instrumentacji będą uruchamiane w administracji. Ze względu na wszystkie zalety tego narzędzia zdecydowanie zalecamy korzystanie z tego narzędzia. |
USE_ORCHESTRATOR |
Przeprowadź test za pomocą narzędzia administracyjnego. ** Zgodność tylko z AndroidJUnitRunner w wersji 1.1 lub nowszej. ** Zalecane. |
DO_NOT_USE_ORCHESTRATOR |
Przeprowadź test bez korzystania z narzędzia administracyjnego. |
Opcja fragmentacji
Opcje włączania fragmentacji.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy
|
|
uniformSharding |
Równomiernie dzieli przypadki testowe na podstawie łącznej liczby fragmentów. |
manualSharding |
Dzieli przypadki testowe na określone grupy pakietów, klas lub metod. |
smartSharding |
Testy fragmentów na podstawie wcześniejszych zapisów czasu przypadku testowego. |
Jednolita fragmentacja
Równomiernie dzieli przypadki testowe na podstawie łącznej liczby fragmentów.
W przypadku testów z instrumentacją wartość zostanie przetłumaczona na „-e numShard”. i „-e shardIndex” Argumenty AndroidJUnitRunner. Przy włączonym jednolitym fragmentacji określenie jednego z tych argumentów do fragmentacji za pomocą funkcji environmentVariables
jest nieprawidłowe.
Ze względu na mechanizm fragmentacji używany przez AndroidaJUnitRunner nie ma gwarancji, że przypadki testowe będą równomiernie rozłożone we wszystkich fragmentach.
Zapis JSON |
---|
{ "numShards": integer } |
Pola | |
---|---|
numShards |
Wymagane. Łączna liczba fragmentów do utworzenia. Musi to być zawsze liczba dodatnia, która nie jest większa niż łączna liczba przypadków testowych. Jeśli wybierzesz co najmniej 1 urządzenie fizyczne, liczba fragmentów musi być mniejsza niż 50. Jeśli wybierzesz co najmniej 1 urządzenie wirtualne ARM, wartość musi być mniejsza niż 200. Jeśli wybierzesz tylko urządzenia wirtualne x86, wartość nie będzie mniejsza niż 500. |
Ręczne fragmentowanie
Dzieli przypadki testowe na określone grupy pakietów, klas lub metod.
Przy włączonym fragmentowaniu ręcznym określenie celów testowych za pomocą zmiennych środowiskowych lub w narzędziu InstrumentationTest jest nieprawidłowe.
Zapis JSON |
---|
{
"testTargetsForShard": [
{
object ( |
Pola | |
---|---|
testTargetsForShard[] |
Wymagane. Grupa pakietów, klas lub metod testowych do uruchomienia w przypadku każdego utworzonego ręcznie fragmentu. Jeśli to pole występuje, musisz określić co najmniej 1 fragment. Jeśli wybierzesz co najmniej 1 urządzenie fizyczne, liczba powtórzonych celów testowania na potrzeby fragmentu musi być mniejsza niż 50. Jeśli wybierzesz co najmniej 1 urządzenie wirtualne ARM, wartość musi być mniejsza niż 200. Jeśli wybierzesz tylko urządzenia wirtualne x86, wartość nie będzie mniejsza niż 500. |
Cele testowe dla fragmentu
Przetestuj cele dla fragmentu.
Zapis JSON |
---|
{ "testTargets": [ string ] } |
Pola | |
---|---|
testTargets[] |
Grupa pakietów, klas lub metod testowych do uruchomienia w przypadku każdego fragmentu. Cele muszą być określone w formacie argumentu AndroidJUnitRunner. Na przykład „pakiet com.moje.pakiety”. „klasa com.mój.pakiet.MojaKlasa”. Liczba wartości testTarget musi być większa niż 0. |
Inteligentne fragmentowanie
Testy fragmentów na podstawie wcześniejszych zapisów czasu przypadku testowego.
Zapis JSON |
---|
{ "targetedShardDuration": string } |
Pola | |
---|---|
targetedShardDuration |
Czas trwania testów w obrębie fragmentu. Wartość domyślna: 300 sekund (5 minut). Minimalna dozwolona wartość: 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 1 przypadek testowy dla każdego fragmentu, liczba fragmentów nie przekroczy liczby przypadków testowych. Czas trwania fragmentu zostanie przekroczony, jeśli:
Czas trwania fragmentu nie jest gwarantowany, ponieważ inteligentne fragmentowanie korzysta z historii przypadków testowych i domyślnych czasów trwania, które mogą być niedokładne. Zasady znajdowania rekordów czasu trwania przypadków testowych są następujące:
Ponieważ rzeczywisty czas trwania fragmentu może przekroczyć docelowy czas trwania fragmentu, zalecamy ustawienie docelowej wartości o co najmniej 5 minut krócej niż maksymalny dozwolony czas oczekiwania testu (45 minut w przypadku urządzeń fizycznych i 60 minut w przypadku urządzeń wirtualnych) lub użycie ustawionej wartości niestandardowego limitu czasu testu. Ta metoda pozwala uniknąć anulowania fragmentu przed zakończeniem wszystkich testów. Pamiętaj, że obowiązuje limit maksymalnej liczby fragmentów. Jeśli wybierzesz co najmniej 1 urządzenie fizyczne, liczba fragmentów musi być mniejsza niż 50. Jeśli wybierzesz co najmniej 1 urządzenie wirtualne ARM, wartość musi być mniejsza niż 200. Jeśli wybierzesz tylko urządzenia wirtualne x86, wartość nie będzie mniejsza niż 500. Aby zagwarantować co najmniej 1 przypadek testowy na fragment, liczba fragmentów nie przekroczy liczby przypadków testowych. Każdy utworzony fragment wlicza się do dziennego limitu testów. Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „ |
Test AndroidRobo
Test aplikacji na Androida, która sprawdza aplikację na wirtualnym lub fizycznym urządzeniu z Androidem, znajdując w miarę jej problemy oraz awarie.
Zapis JSON |
---|
{ "appPackageId": string, "appInitialActivity": string, "maxDepth": integer, "maxSteps": integer, "roboDirectives": [ { object ( |
Pola | |
---|---|
appPackageId |
Pakiet Javy dla testowanej aplikacji. Wartość domyślna jest określana przez sprawdzenie pliku manifestu aplikacji. |
appInitialActivity |
Początkowe działanie, które powinno być zastosowane do uruchomienia aplikacji. |
maxDepth |
Maksymalna głębokość stosu przemierzania, jaką może zbadać Robo. Wartość musi wynosić co najmniej 2, aby Robo mógł korzystać z aplikacji poza pierwszym działaniem. Wartość domyślna to 50. |
maxSteps |
Maksymalna liczba kroków, które może wykonać Robo. Domyślnie nie ma limitu. |
roboDirectives[] |
Zestaw dyrektyw, które Robo powinien stosować 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 |
Tryb, w którym powinien działać Robo. Większość klientów powinna zezwalać serwerowi na automatyczne wypełnianie tego pola. |
roboScript |
Plik JSON z sekwencją działań, które Robo powinien wykonać jako prolog indeksowania. |
startingIntents[] |
Intencje użyte do uruchomienia aplikacji w celu indeksowania. Jeśli nie podano żadnej wartości, uruchamiana jest główna aktywność programu uruchamiającego. Jeśli niektóre z nich są dostępne, będą uruchamiane tylko te z nich (główne działanie programu uruchamiającego musi być jawnie określone). |
Pole sumy app_under_test . Wymagane. app_under_test może mieć tylko jedną z tych wartości: |
|
appApk |
Pakiet APK testowanej aplikacji. |
appBundle |
Pakiet aplikacji z wieloma plikami APK dla testowanej aplikacji. |
Dyrektywa Robo
Powoduje, że Robo wchodzi w interakcję z określonym elementem interfejsu, jeśli wystąpi podczas indeksowania. Obecnie Robo może wprowadzać tekst lub klikać elementy.
Zapis JSON |
---|
{
"resourceName": string,
"inputText": string,
"actionType": enum ( |
Pola | |
---|---|
resourceName |
Wymagane. Nazwa zasobu Androida docelowego elementu interfejsu. Na przykład w Javie: R.string.foo in xml: @string/foo Tylko „foo” . Dokument referencyjny: https://developer.android.com/guide/topics/resources/accessing-resources.html |
inputText |
Tekst, który ma ustawić Robo. Jeśli pozostawisz to pole puste, dyrektywa będzie traktowana jako KLIKNIĘCIE elementu pasującego do atrybutu resourceName. |
actionType |
Wymagane. Typ działania, które Robo powinno wykonać na określonym elemencie. |
Typ działania Robo
Działania, które Robo może wykonywać na elementach interfejsu.
Wartości w polu enum | |
---|---|
ACTION_TYPE_UNSPECIFIED |
NIE UŻYWAĆ. Tylko na potrzeby obsługi wersji proto. |
SINGLE_CLICK |
Przekieruj Robo do kliknięcia określonego elementu. No-op, jeśli określonego elementu nie można kliknąć. |
ENTER_TEXT |
Przekieruj Robo do wpisania tekstu w określonym elemencie. No-op, jeśli określony element nie jest włączony lub nie zezwala na wpisywanie tekstu. |
IGNORE |
Przekierowuje Robo do ignorowania interakcji z określonym elementem. |
RoboTryb
Tryb, w którym powinien działać Robo.
Wartości w polu enum | |
---|---|
ROBO_MODE_UNSPECIFIED |
Oznacza to, że serwer powinien wybrać tryb. Zalecane. |
ROBO_VERSION_1 |
Uruchamia Robo w trybie tylko UIAutomator bez ponownego podpisywania aplikacji |
ROBO_VERSION_2 |
Uruchamia Robo w standardowym Espresso z opcją zastępczą UIAutomator |
Intencja inicjująca Robo
Komunikat umożliwiający określenie aktywności początkowej do indeksowania.
Zapis JSON |
---|
{ "timeout": string, // Union field |
Pola | |
---|---|
timeout |
Czas oczekiwania w sekundach dla każdej intencji. Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „ |
Pole sumy starting_intent . Wymagane. Szczegóły intencji, które pozwalają rozpocząć aktywność. starting_intent może mieć tylko jedną z tych wartości: |
|
launcherActivity |
Intencja, która uruchamia główne działanie programu uruchamiającego. |
startActivity |
Intencja, która rozpoczyna działanie z określonymi szczegółami. |
noActivity |
Pomija początkową aktywność |
LauncherActivityIntent
Ten typ nie zawiera pól.
Określa intencję, która ma uruchamiać główne działanie programu uruchamiającego.
StartActivityIntent
Intencję początkową określoną przez działanie, identyfikator URI i kategorie.
Zapis JSON |
---|
{ "action": string, "uri": string, "categories": [ string ] } |
Pola | |
---|---|
action |
Nazwa działania. Wymagane dla: START_ACTIVITY. |
uri |
Identyfikator URI działania. |
categories[] |
Kategorie intencji do ustawienia w intencji. |
NoActivityIntent
Ten typ nie zawiera pól.
Pomija początkową aktywność
AndroidTestLoop
Testowanie aplikacji na Androida z pętlą testową. Intencja <intent-name> zostanie dodany domyślnie, ponieważ na razie Gry są jedynym użytkownikiem tego interfejsu API.
Zapis JSON |
---|
{ "appPackageId": string, "scenarios": [ integer ], "scenarioLabels": [ string ], // Union field |
Pola | |
---|---|
appPackageId |
Pakiet Javy dla testowanej aplikacji. Wartość domyślna jest określana przez sprawdzenie pliku manifestu aplikacji. |
scenarios[] |
Lista scenariuszy, które powinny być uruchamiane podczas testu. Wartością domyślną są wszystkie pętle testowe pochodzące z pliku manifestu aplikacji. |
scenarioLabels[] |
Lista etykiet scenariuszy, które powinny być uruchamiane podczas testu. Etykiety scenariusza powinny być zmapowane na etykiety zdefiniowane w pliku manifestu aplikacji. Na przykład atrybuty player_experience i com.google.test.loops.player_experience dodają do wykonania wszystkie pętle oznaczone w pliku manifestu jako nazwa com.google.test.loops.player_experience. W polu scenariuszy można też określić scenariusze. |
Pole sumy app_under_test . Wymagane. Pakiet na Androida do przetestowania. app_under_test może mieć tylko jedną z tych wartości: |
|
appApk |
Pakiet APK testowanej aplikacji. |
appBundle |
Pakiet aplikacji z wieloma plikami APK dla testowanej aplikacji. |
Test IOSXc
Test aplikacji na iOS korzystającej z platformy XCTest. Xcode obsługuje opcję „build for test”, która generuje plik .xctestrun zawierający specyfikację testową (argumenty, metody testowe itp.). Ten typ testu akceptuje plik ZIP zawierający plik .xctestrun i odpowiednią zawartość katalogu Build/Products, która zawiera wszystkie pliki binarne potrzebne do uruchomienia testów.
Zapis JSON |
---|
{ "testsZip": { object ( |
Pola | |
---|---|
testsZip |
Wymagane. Plik .zip zawierający plik .xctestrun i zawartość katalogu DerivedData/Build/Products. Plik .xctestrun w tym pliku ZIP jest ignorowany, jeśli określono pole xctestrun. |
xctestrun |
Plik .xctestrun, który zastąpi plik .xctestrun w pliku ZIP z testami. Plik .xctestrun zawiera zmienne środowiskowe wraz z metodami testowania do uruchomienia lub zignorowania, co może być przydatne w testach fragmentacji. Wartość domyślna pochodzi z pliku ZIP z testami. |
xcodeVersion |
Wersja Xcode, która powinna być używana w teście. Użyj usługi TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje. Domyślnie wybierana jest najnowsza wersja Xcode obsługiwana przez Laboratorium Firebase. |
appBundleId |
Tylko dane wyjściowe. Identyfikator pakietu aplikacji, która jest testowana. |
testSpecialEntitlements |
Opcja testowania specjalnych uprawnień aplikacji. Ustawienie tej opcji spowoduje ponowne podpisanie aplikacji ze specjalnymi uprawnieniami z wyraźnym identyfikatorem aplikacji. Obecnie obsługuje testowanie uprawnień aplikacji i środowiska. |
Zapętla testowa iOS
Test aplikacji na iOS, w której zaimplementowano co najmniej 1 scenariusz pętli gry. Ten typ testu akceptuje zarchiwizowaną aplikację (plik .ipa) i listę scenariuszy liczb całkowitych, które będą wykonywane po kolei w aplikacji.
Zapis JSON |
---|
{
"appIpa": {
object ( |
Pola | |
---|---|
appIpa |
Wymagane. Plik .ipa aplikacji do przetestowania. |
scenarios[] |
Lista scenariuszy, które powinny być uruchamiane podczas testu. Jeśli nie określono inaczej, domyślna wartość to pojedynczy scenariusz 0. |
appBundleId |
Tylko dane wyjściowe. Identyfikator pakietu aplikacji, która jest testowana. |
Test IosRobo
Test, który sprawdza aplikację na iOS na urządzeniu z iOS.
Zapis JSON |
---|
{ "appIpa": { object ( |
Pola | |
---|---|
appIpa |
Wymagane. Do przeprowadzenia testu należy użyć adresu IP zapisanego w tym pliku. |
appBundleId |
Identyfikator pakietu aplikacji „app-under”. Jest to ustalane przez sprawdzenie pliku „Info.plist” aplikacji . |
roboScript |
Opcjonalny skrypt Roboscript do dostosowywania indeksowania. Więcej informacji o skryptach Robo znajdziesz na stronie https://firebase.google.com/docs/test-lab/android/robo-scripts-reference. |
Matryca środowisk
Macierz środowisk, w których ma zostać przeprowadzony test.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy environment_matrix . Wymagane. Macierz środowisk. environment_matrix może mieć tylko jedną z tych wartości: |
|
androidMatrix |
Macierz urządzeń z Androidem. |
androidDeviceList |
listę urządzeń z Androidem; test zostanie uruchomiony tylko na określonych urządzeniach. |
iosDeviceList |
Lista urządzeń z iOS. |
AndroidMatrix,
Zbiór permutacji konfiguracji urządzenia z Androidem jest zdefiniowany przez iloczyn danych osi. Wewnętrznie dane AndroidMatrix zostaną rozszerzone o zestaw urządzeń z Androidem.
Tworzone będą tylko obsługiwane permutacje. Nieprawidłowe permutacje (np. niezgodne modele lub wersje) są ignorowane.
Zapis JSON |
---|
{ "androidModelIds": [ string ], "androidVersionIds": [ string ], "locales": [ string ], "orientations": [ string ] } |
Pola | |
---|---|
androidModelIds[] |
Wymagane. Identyfikatory zestawu urządzeń z Androidem, których chcesz użyć. Użyj usługi TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje. |
androidVersionIds[] |
Wymagane. Identyfikatory zestawu wersji systemu operacyjnego Android, która ma zostać użyta. Użyj usługi TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje. |
locales[] |
Wymagane. Zestaw języków, które urządzenie testowe będzie obsługiwać w ramach testów. Użyj usługi TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje. |
orientations[] |
Wymagane. Zbiór orientacji, w których będą przeprowadzane testy. Użyj usługi TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje. |
Lista urządzeń z Androidem
Lista konfiguracji urządzeń z Androidem, w których ma zostać przeprowadzony test.
Zapis JSON |
---|
{
"androidDevices": [
{
object ( |
Pola | |
---|---|
androidDevices[] |
Wymagane. Lista urządzeń z Androidem. |
Lista urządzeń na iOS
Lista konfiguracji urządzeń z iOS, w których ma zostać przeprowadzony test.
Zapis JSON |
---|
{
"iosDevices": [
{
object ( |
Pola | |
---|---|
iosDevices[] |
Wymagane. Lista urządzeń z iOS. |
Urządzenie z iOS
Pojedyncze urządzenie z iOS.
Zapis JSON |
---|
{ "iosModelId": string, "iosVersionId": string, "locale": string, "orientation": string } |
Pola | |
---|---|
iosModelId |
Wymagane. Identyfikator urządzenia z iOS, którego chcesz użyć. Użyj usługi TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje. |
iosVersionId |
Wymagane. Identyfikator głównej wersji oprogramowania iOS, która ma zostać użyta. Użyj usługi TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje. |
locale |
Wymagane. Język używany na urządzeniu testowym do testowania. Użyj usługi TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje. |
orientation |
Wymagane. Orientacja urządzenia podczas testu. Użyj usługi TestEnvironmentDiscoveryService, aby uzyskać obsługiwane opcje. |
Wykonanie testu
Jeden test wykonywany w 1 środowisku.
Zapis JSON |
---|
{ "id": string, "matrixId": string, "projectId": string, "testSpecification": { object ( |
Pola | |
---|---|
id |
Tylko dane wyjściowe. Unikalny identyfikator ustawiony przez usługę. |
matrixId |
Tylko dane wyjściowe. Identyfikator zawierającej TestMatrix. |
projectId |
Tylko dane wyjściowe. Projekt w chmurze, do którego należy wykonanie testu. |
testSpecification |
Tylko dane wyjściowe. Jak przeprowadzić test. |
shard |
Tylko dane wyjściowe. Szczegóły fragmentu. |
environment |
Tylko dane wyjściowe. Sposób konfiguracji hostów. |
state |
Tylko dane wyjściowe. Wskazuje postęp wykonywania testu (np. ZAKOŃCZONO). |
toolResultsStep |
Tylko dane wyjściowe. Miejsce, w którym zapisywane są wyniki tego wykonania. |
timestamp |
Tylko dane wyjściowe. Czas pierwszego utworzenia tego wykonania testu. Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: |
testDetails |
Tylko dane wyjściowe. Dodatkowe informacje o uruchomionym teście. |
Fragment
Tylko dane wyjściowe. Szczegóły fragmentu.
Zapis JSON |
---|
{
"shardIndex": integer,
"numShards": integer,
"testTargetsForShard": {
object ( |
Pola | |
---|---|
shardIndex |
Tylko dane wyjściowe. Indeks fragmentu wśród wszystkich fragmentów. |
numShards |
Tylko dane wyjściowe. Łączna liczba fragmentów. |
testTargetsForShard |
Tylko dane wyjściowe. Przetestuj cele dla każdego fragmentu. Ustawiony tylko do fragmentowania ręcznego. |
estimatedShardDuration |
Tylko dane wyjściowe. Szacowany czas trwania fragmentu na podstawie wcześniejszych rekordów czasu przypadków testowych, jeśli są dostępne. Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „ |
Środowisko
Środowisko, w którym uruchamiany jest test.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy environment . Wymagane. Środowisko. environment może mieć tylko jedną z tych wartości: |
|
androidDevice |
Urządzenie z Androidem, na którym chcesz przeprowadzić test Androida. |
iosDevice |
Urządzenie z iOS, na którym przeprowadza się test iOS. |
Stan testowy
Stan (tj. postęp) wykonania testu lub macierzy.
Wartości w polu enum | |
---|---|
TEST_STATE_UNSPECIFIED |
Nie używać. Tylko na potrzeby obsługi wersji proto. |
VALIDATING |
Trwa weryfikacja wykonania lub macierzy. |
PENDING |
Wykonanie lub tablica czeka na udostępnienie zasobów. |
RUNNING |
Wykonanie jest w tej chwili przetwarzane. Można ją ustawić tylko podczas wykonywania. |
FINISHED |
Wykonanie lub macierz zostało normalnie zakończone. W przypadku macierzy oznacza to, że przetwarzanie na poziomie macierzy zakończyło się normalnie, ale poszczególne uruchomienia mogą mieć stan ERROR. |
ERROR |
Wykonanie lub macierz zostało zatrzymane, ponieważ wystąpiła awaria infrastruktury. |
UNSUPPORTED_ENVIRONMENT |
Wykonanie nie zostało uruchomione, ponieważ odnosi się do nieobsługiwanego środowiska. Można ją ustawić tylko podczas wykonywania. |
INCOMPATIBLE_ENVIRONMENT |
Wykonanie nie zostało uruchomione, ponieważ podane dane wejściowe są niezgodne z żądanym środowiskiem. Przykład: wymagana wartość AndroidVersion jest niższa niż wartość parametru minSdkVersion w pliku APK Można ją ustawić tylko podczas wykonywania. |
INCOMPATIBLE_ARCHITECTURE |
Wykonanie nie zostało uruchomione, 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 ją ustawić tylko podczas wykonywania. |
CANCELLED |
Użytkownik anulował wykonanie. Można ją ustawić tylko podczas wykonywania. |
INVALID |
Wykonanie lub macierz nie zostało uruchomione, ponieważ podane dane wejściowe są nieprawidłowe. Przykłady: plik wejściowy nie ma oczekiwanego typu, jest zniekształcony lub uszkodzony albo został oznaczony jako złośliwe oprogramowanie |
Kroki wyników narzędzi
Reprezentuje zasób kroku wyników narzędzia.
Wyświetlane są wyniki TestExecution.
Zapis JSON |
---|
{ "projectId": string, "historyId": string, "executionId": string, "stepId": string } |
Pola | |
---|---|
projectId |
Tylko dane wyjściowe. Projekt w chmurze, do którego należy krok z wynikami narzędzia. |
historyId |
Tylko dane wyjściowe. Identyfikator historii wyników narzędzia. |
executionId |
Tylko dane wyjściowe. Narzędzie określa identyfikator wykonania. |
stepId |
Tylko dane wyjściowe. Narzędzie zawiera identyfikator kroku. |
Szczegóły testu
Dodatkowe informacje o postępie uruchomionego testu.
Zapis JSON |
---|
{ "progressMessages": [ string ], "errorMessage": string } |
Pola | |
---|---|
progressMessages[] |
Tylko dane wyjściowe. Czytelne, szczegółowe opisy postępów testu. na przykład „Obsługa administracyjna urządzenia”, „Rozpoczynanie testu”. W trakcie wykonywania nowe dane mogą być dołączane na końcu progressMessages. |
errorMessage |
Tylko dane wyjściowe. Jeśli wartość TestState ma wartość ERROR, ten ciąg znaków będzie zawierać czytelne dla człowieka informacje o błędzie. |
Magazyn wyników
Lokalizacje, w których przechowywane są wyniki testu.
Zapis JSON |
---|
{ "googleCloudStorage": { object ( |
Pola | |
---|---|
googleCloudStorage |
Wymagane. |
toolResultsHistory |
Historia wyników narzędzia zawierająca wyniki wykonania narzędzia, w którym są zapisywane. Jeśli nie zostanie podana, usługa wybierze odpowiednią wartość. |
toolResultsExecution |
Tylko dane wyjściowe. Narzędzie przeprowadza wyniki, w których są zapisywane wyniki. |
resultsUrl |
Tylko dane wyjściowe. URL do wyników w konsoli internetowej Firebase. |
Google CloudStorage,
Lokalizacja miejsca na dane w Google Cloud Storage (GCS).
Zapis JSON |
---|
{ "gcsPath": string } |
Pola | |
---|---|
gcsPath |
Wymagane. Ścieżka do katalogu w GCS, który ostatecznie zawiera wyniki tego testu. Użytkownik wysyłający żądanie musi mieć uprawnienia do zapisu w zasobniku w podanej ścieżce. |
ToolResultsHistory (Historia wyników narzędzia)
Reprezentuje zasób historii wyników narzędzia.
Zapis JSON |
---|
{ "projectId": string, "historyId": string } |
Pola | |
---|---|
projectId |
Wymagane. Projekt w chmurze, do którego należy historia wyników narzędzia. |
historyId |
Wymagane. Identyfikator historii wyników narzędzia. |
Wykonywanie narzędzi ToolResults
Reprezentuje zasób narzędzia wyświetlający wyniki na etapie wykonania.
Zwracane są wyniki macierzy TestMatrix.
Zapis JSON |
---|
{ "projectId": string, "historyId": string, "executionId": string } |
Pola | |
---|---|
projectId |
Tylko dane wyjściowe. Projekt w chmurze, do którego należy wykonanie wyników narzędzia. |
historyId |
Tylko dane wyjściowe. Identyfikator historii wyników narzędzia. |
executionId |
Tylko dane wyjściowe. Narzędzie określa identyfikator wykonania. |
Nieprawidłowe szczegóły macierzy
Szczegółowy powód, dla którego Macierz została uznana za NIEPRAWIDŁĄ.
Wartości w polu enum | |
---|---|
INVALID_MATRIX_DETAILS_UNSPECIFIED |
Nie używać. Tylko na potrzeby obsługi wersji proto. |
DETAILS_UNAVAILABLE |
Macierz jest NIEPRAWIDŁOWA, ale nie ma żadnych dodatkowych szczegółów. |
MALFORMED_APK |
Nie udało się przeanalizować wejściowego pakietu APK aplikacji. |
MALFORMED_TEST_APK |
Nie udało się przeanalizować wejściowego testowego pakietu APK. |
NO_MANIFEST |
Nie udało się znaleźć pliku AndroidManifest.xml. |
NO_PACKAGE_NAME |
Plik manifestu pliku APK nie deklaruje nazwy pakietu. |
INVALID_PACKAGE_NAME |
Identyfikator aplikacji APK (inaczej nazwa pakietu) jest nieprawidłowy. Zobacz też https://developer.android.com/studio/build/application-id |
TEST_SAME_AS_APP |
Pakiet testowy i pakiet aplikacji są takie same. |
NO_INSTRUMENTATION |
Testowy plik APK nie deklaruje instrumentacji. |
NO_SIGNATURE |
Wejściowy plik apk aplikacji nie ma podpisu. |
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE |
Klasa mechanizmu uruchamiania testów określona przez użytkownika lub w pliku manifestu testowego pakietu APK jest niezgodna z narzędziem Android Test Assistant. Narzędzie orkiestrowe jest zgodne tylko z aplikacją AndroidJUnitRunner w wersji 1.1 lub nowszej. Narzędzie orkiestrowe można wyłączyć za pomocą parametru DO_NOT_USE_ORCHESTRATOR ArtisttorOption. |
NO_TEST_RUNNER_CLASS |
Testowy plik APK nie zawiera klasy mechanizmu uruchamiania testów określonej przez użytkownika ani w pliku manifestu. Przyczyna może być następująca:
|
NO_LAUNCHER_ACTIVITY |
Nie udało się znaleźć głównego działania programu uruchamiającego. |
FORBIDDEN_PERMISSIONS |
Aplikacja deklaruje co najmniej jedno uprawnienie, które jest niedozwolone. |
INVALID_ROBO_DIRECTIVES |
Wystąpił konflikt w podanych informacjach roboDirectives. |
INVALID_RESOURCE_NAME |
Podane dyrektywy robo zawierają co najmniej jedną nieprawidłową nazwę zasobu. |
INVALID_DIRECTIVE_ACTION |
Nieprawidłowa definicja działania w dyrektywach Robo (np. działanie kliknięcia lub zignorowania zawiera pole tekstowe do wprowadzania danych) |
TEST_LOOP_INTENT_FILTER_NOT_FOUND |
Nie ma filtra intencji pętli testowej lub podany jest nieprawidłowo sformatowany. |
SCENARIO_LABEL_NOT_DECLARED |
Żądanie zawiera etykietę scenariusza, która nie została zadeklarowana w pliku manifestu. |
SCENARIO_LABEL_MALFORMED |
Podczas analizowania wartości etykiety wystąpił błąd. |
SCENARIO_NOT_DECLARED |
Żądanie zawiera numer scenariusza, który nie został zadeklarowany w pliku manifestu. |
DEVICE_ADMIN_RECEIVER |
Aplikacje administratora urządzenia są niedozwolone. |
MALFORMED_XC_TEST_ZIP |
Skompresowany plik XCTest ma nieprawidłowy format. Plik ZIP nie zawierał pojedynczego pliku .xctestrun ani zawartości katalogu DerivedData/Build/Products. |
BUILT_FOR_IOS_SIMULATOR |
Spakowany XCTest powstał z myślą o wersji na symulator iOS, a nie na urządzenia fizyczne. |
NO_TESTS_IN_XC_TEST_ZIP |
Plik .xctestrun nie określał żadnych celów testu. |
USE_DESTINATION_ARTIFACTS |
Co najmniej jeden z celów testu zdefiniowanych w pliku .xctestrun wskazuje „UseDestinationArtifacts”, co jest niedozwolone. |
TEST_NOT_APP_HOSTED |
Testy XC przeprowadzane na urządzeniach fizycznych muszą mieć parametr „IsAppHostedTestBundle”. == "prawda" w pliku xctestrun. |
PLIST_CANNOT_BE_PARSED |
Nie udało się przeanalizować pliku Info.plist w pliku zip XCTest. |
TEST_ONLY_APK |
Plik APK jest oznaczony jako „testOnly”. Wycofane i nieużywane. |
MALFORMED_IPA |
Nie udało się przeanalizować wejściowego adresu IPA. |
MISSING_URL_SCHEME |
Aplikacja nie rejestruje schematu URL pętli gry. |
MALFORMED_APP_BUNDLE |
Nie udało się przetworzyć pakietu aplikacji na iOS (.app). |
NO_CODE_APK |
Plik APK nie zawiera kodu. Więcej informacji: https://developer.android.com/guide/topics/manifest/application-element.html#code |
INVALID_INPUT_APK |
Podana ścieżka pliku APK jest nieprawidłowa, plik APK nie istnieje lub użytkownik nie ma uprawnień dostępu do pliku APK. |
INVALID_APK_PREVIEW_SDK |
Plik APK jest przeznaczony dla pakietu SDK w wersji testowej, który nie jest obsługiwany |
MATRIX_TOO_LARGE |
Macierz została rozwinięta, aby zawierała zbyt wiele wykonań. |
TEST_QUOTA_EXCEEDED |
Niewystarczający limit testów do uruchomienia wykonań w tej macierzy. |
SERVICE_NOT_ACTIVATED |
Wymagany interfejs API usługi w chmurze nie został aktywowany. Zobacz: https://firebase.google.com/docs/test-lab/android/continuous#requirements |
UNKNOWN_PERMISSION_ERROR |
Podczas tego testu wystąpił nieznany problem z uprawnieniami. |
Szczegóły błędu macierzy
Opisuje pojedynczy błąd lub problem z macierzystą.
Zapis JSON |
---|
{ "reason": string, "message": string } |
Pola | |
---|---|
reason |
Tylko dane wyjściowe. przyczynę błędu. Jest to stała wartość w UPPER_SNAKE_CASE, która określa przyczynę błędu. |
message |
Tylko dane wyjściowe. Zrozumiały dla człowieka komunikat na temat błędu w macierzy testów. Rozwija się w polu |
Podsumowanie wyniku
Podsumowanie wyniku ukończonego zestawu testów.
Wartości w polu enum | |
---|---|
OUTCOME_SUMMARY_UNSPECIFIED |
Nie używać. Tylko na potrzeby obsługi wersji proto. |
SUCCESS |
Uruchomienie zestawu testów zakończyło się powodzeniem, np.:
|
FAILURE |
Nie udało się uruchomić, na przykład:
|
INCONCLUSIVE |
Wystąpił nieoczekiwany błąd. Uruchomienie powinno być nadal uznawane za nieudane, ale prawdopodobnie jest to problem przejściowy. Ponowne uruchomienie może zakończyć się powodzeniem. |
SKIPPED |
Pominięto wszystkie testy, np.:
|
Metody |
|
---|---|
|
Anuluje nieukończone wykonania testów w macierzy testów. |
|
Tworzy i przeprowadza macierz testów zgodnie z podaną specyfikacją. |
|
Sprawdza stan macierzy testów i wykonań po ich utworzeniu. |