REST Resource: projects.histories.executions.steps

Zasób: Krok

Krok reprezentuje pojedynczą operację wykonywaną w ramach wykonania. Krok może służyć do reprezentowania wykonania narzędzia (na przykład wykonania modułu testowego lub wykonania kompilatora).

Kroki mogą się nakładać (na przykład dwa kroki mogą mieć ten sam czas rozpoczęcia, jeśli niektóre operacje są wykonywane równolegle).

Oto przykład. Rozważmy, że mamy ciągłą kompilację, wykonującą program uruchamiający test dla każdej iteracji. Przepływ pracy będzie wyglądał następująco: - użytkownik tworzy wykonanie o identyfikatorze 1 - użytkownik tworzy TestExecutionStep o identyfikatorze 100 dla wykonania 1 - użytkownik aktualizuje TestExecutionStep o identyfikatorze 100, aby dodać surowy dziennik XML + usługa analizuje dzienniki XML i zwraca TestExecutionStep z zaktualizowane wyniki testu. - użytkownik zaktualizuje status TestExecutionStep o identyfikatorze 100 na COMPLETE

Krok można aktualizować, dopóki jego stan nie zostanie ustawiony na KOMPLETNY, w którym to momencie stanie się niezmienny.

Reprezentacja JSON
{
  "stepId": string,
  "creationTime": {
    object (Timestamp)
  },
  "completionTime": {
    object (Timestamp)
  },
  "name": string,
  "description": string,
  "state": enum (State),
  "outcome": {
    object (Outcome)
  },
  "hasImages": boolean,
  "labels": {
    string: string,
    ...
  },
  "dimensionValue": {
    string: string,
    ...
  },
  "runDuration": {
    object (Duration)
  },
  "deviceUsageDuration": {
    object (Duration)
  },
  "multiStep": {
    object (MultiStep)
  },

  // Union field step can be only one of the following:
  "testExecutionStep": {
    object (TestExecutionStep)
  },
  "toolExecutionStep": {
    object (ToolExecutionStep)
  }
  // End of list of possible types for union field step.
}
Pola
stepId

string

Unikalny identyfikator w ramach wykonania tego kroku.

Zwraca INVALID_ARGUMENT, jeśli to pole zostało ustawione lub nadpisane przez osobę wywołującą.

  • W odpowiedzi: zawsze ustawione
  • W żądaniu utworzenia/aktualizacji: nigdy nie ustawiane
creationTime

object ( Timestamp )

Czas utworzenia kroku.

  • W odpowiedzi: zawsze ustawione
  • W żądaniu utworzenia/aktualizacji: nigdy nie ustawiane
completionTime

object ( Timestamp )

Czas, w którym status kroku został ustawiony na ukończony.

Wartość ta zostanie ustawiona automatycznie po zmianie stanu na COMPLETE.

  • W odpowiedzi: ustaw, jeśli stan wykonania to COMPLETE.
  • W żądaniu utworzenia/aktualizacji: nigdy nie ustawiane
name

string

Krótka, czytelna dla człowieka nazwa wyświetlana w interfejsie użytkownika. Maksymalnie 100 znaków. Na przykład: czysta kompilacja

Wartość PRECONDITION_FAILED zostanie zwrócona po utworzeniu nowego kroku, jeśli ma wspólną nazwę i wartość wymiaru z istniejącym krokiem. Jeśli dwa kroki reprezentują podobną akcję, ale mają różne wartości wymiarów, powinny mieć tę samą nazwę. Na przykład, jeśli ten sam zestaw testów jest uruchamiany na dwóch różnych platformach, oba kroki powinny mieć tę samą nazwę.

  • W odpowiedzi: zawsze ustawione
  • W żądaniu utworzenia: zawsze ustawione
  • W żądaniu aktualizacji: nigdy nie ustawione
description

string

Opis tego narzędzia Na przykład: mvn clean package -D skipTests=true

  • W odpowiedzi: obecny, jeśli ustawiony przez żądanie utworzenia/aktualizacji
  • W żądaniu utworzenia/aktualizacji: opcjonalne
state

enum ( State )

Stan początkowy to IN_PROGRESS. Jedyne legalne zmiany stanu to * IN_PROGRESS -> COMPLETE

Jeśli zażądano nieprawidłowego przejścia, zostanie zwrócony komunikat PRECONDITION_FAILED.

Dopuszczalne jest utworzenie Kroku ze stanem UKOŃCZONY. Stan można ustawić na COMPLETE tylko raz. Jeśli stan zostanie wielokrotnie ustawiony na COMPLETE, zwrócony zostanie komunikat PRECONDITION_FAILED.

  • W odpowiedzi: zawsze ustawione
  • W żądaniu utworzenia/aktualizacji: opcjonalne
outcome

object ( Outcome )

Klasyfikacja wyniku, np. na SUKCES lub POrażkę

  • W odpowiedzi: obecny, jeśli ustawiony przez żądanie utworzenia/aktualizacji
  • W żądaniu utworzenia/aktualizacji: opcjonalne
hasImages

boolean

Określa, czy którykolwiek z wyników tego kroku to obrazy, których miniatury można pobrać za pomocą pliku miniatur.list.

  • W odpowiedzi: zawsze ustawione
  • W żądaniu utworzenia/aktualizacji: nigdy nie ustawiane
labels

map (key: string, value: string)

Dowolne pary klucz/wartość dostarczone przez użytkownika, które są skojarzone z krokiem.

Użytkownicy są odpowiedzialni za zarządzanie przestrzenią nazw kluczy w taki sposób, aby klucze nie kolidowały przypadkowo.

INVALID_ARGUMENT zostanie zwrócony, jeśli liczba etykiet przekracza 100 lub jeśli długość któregokolwiek z kluczy lub wartości przekracza 100 znaków.

  • W odpowiedzi: zawsze ustawione
  • W żądaniu utworzenia: opcjonalne
  • W żądaniu aktualizacji: opcjonalne; każda nowa para klucz/wartość zostanie dodana do mapy, a każda nowa wartość istniejącego klucza spowoduje aktualizację wartości tego klucza

Obiekt zawierający listę par "key": value . Przykład: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

dimensionValue

map (key: string, value: string)

Jeśli wykonanie zawierające ten krok ma ustawioną dowolną definicję wymiaru, to pole to pozwala dziecku na określenie wartości wymiarów.

Klucze muszą dokładnie odpowiadać definicji wymiaru wykonania.

Na przykład, jeśli wykonanie ma dimension_definition = ['attempt', 'device'] to krok musi definiować wartości dla tych wymiarów, np. dimensionValue = ['attempt': '1', 'device': 'Nexus 6']

Jeżeli krok nie należy do jednego wymiaru macierzy, wartością dla tego wymiaru powinien być pusty ciąg znaków. Na przykład, jeśli jeden z testów jest wykonywany przez moduł uruchamiający, który nie obsługuje ponownych prób, krok może mieć dimensionValue = ['attempt': '', 'device': 'Nexus 6']

Jeżeli krok nie uczestniczy w żadnym wymiarze macierzy, może pozostawić nieustawiony wymiarWartość.

Jeśli którykolwiek z kluczy nie istnieje w definicji wymiaru wykonania, zostanie zwrócony komunikat PRECONDITION_FAILED.

Wartość PRECONDITION_FAILED zostanie zwrócona, jeśli inny krok w tym wykonaniu ma już tę samą nazwę i wartość wymiaru, ale różni się w innych polach danych, na przykład pole kroku jest inne.

Wartość PRECONDITION_FAILED zostanie zwrócona, jeśli ustawiono wartość wymiaru, a w wykonaniu istnieje definicja wymiaru, która nie jest określona jako jeden z kluczy.

  • W odpowiedzi: obecny, jeśli ustawiony przez create
  • W żądaniu utworzenia: opcjonalne
  • W żądaniu aktualizacji: nigdy nie ustawione

Obiekt zawierający listę par "key": value . Przykład: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

runDuration

object ( Duration )

Ile czasu zajęło wykonanie tego kroku.

Jeśli nieustawione, jest to różnica między czasem utworzenia i czasem zakończenia, gdy krok jest ustawiony na stan UKOŃCZONY. W niektórych przypadkach właściwe jest ustawienie tej wartości osobno: Na przykład, jeśli tworzony jest krok, ale operacja, którą reprezentuje, znajduje się w kolejce na kilka minut przed jej wykonaniem, właściwym byłoby nie wliczanie czasu spędzonego w kolejce do jego czas trwania.

PRECONDITION_FAILED zostanie zwrócony, jeśli ktoś spróbuje ustawić runDuration na kroku, który ma już ustawione to pole.

  • W odpowiedzi: obecny, jeśli został wcześniej ustawiony; zawsze obecny na KOMPLETNYM kroku
  • W żądaniu utworzenia: opcjonalne
  • W żądaniu aktualizacji: opcjonalne
deviceUsageDuration

object ( Duration )

Ile zasobów urządzenia jest wykorzystywanych do wykonania testu.

Jest to użycie urządzenia używane do celów rozliczeniowych, które różni się od runDuration, na przykład awaria infrastruktury nie zostanie naliczona opłata za użycie urządzenia.

PRECONDITION_FAILED zostanie zwrócone, jeśli ktoś spróbuje ustawić Device_usage w kroku, który ma już ustawione to pole.

  • W odpowiedzi: obecny, jeśli został wcześniej ustawiony.
  • W żądaniu utworzenia: opcjonalne
  • W żądaniu aktualizacji: opcjonalne
multiStep

object ( MultiStep )

Szczegóły, gdy uruchamianych jest wiele kroków z tą samą konfiguracją co grupa. Dane te można wykorzystać do określenia, do której grupy należy ten etap. Określa także „pierwszy krok” grupy, który indeksuje wszystkich członków grupy.

  • W odpowiedzi: obecny, jeśli został wcześniej ustawiony.
  • W żądaniu utworzenia: opcjonalne, ustaw, czy ten krok został wykonany więcej niż raz.
  • W żądaniu aktualizacji: opcjonalne

step polowy Unii.

step może być tylko jeden z następujących kroków:

testExecutionStep

object ( TestExecutionStep )

Egzekucja biegacza testowego.

toolExecutionStep

object ( ToolExecutionStep )

Wykonanie narzędzia (używane w przypadku kroków, których jawnie nie obsługujemy).

Krok wykonania testu

Krok reprezentujący uruchamianie testów.

Akceptuje pliki xml ant-junit, które zostaną przeanalizowane przez usługę w celu uzyskania ustrukturyzowanych wyników testów. Ścieżki plików XML są aktualizowane w celu dołączenia większej liczby plików, jednak nie można ich usunąć.

Użytkownicy mogą również dodawać wyniki testów ręcznie, korzystając z pola test_result.

Reprezentacja JSON
{
  "testSuiteOverviews": [
    {
      object (TestSuiteOverview)
    }
  ],
  "toolExecution": {
    object (ToolExecution)
  },
  "testIssues": [
    {
      object (TestIssue)
    }
  ],
  "testTiming": {
    object (TestTiming)
  }
}
Pola
testSuiteOverviews[]

object ( TestSuiteOverview )

Lista zawartości przeglądu zestawu testów. Można to przeanalizować z dziennika XML xUnit przez serwer lub przesłać bezpośrednio przez użytkownika. Te odniesienia należy wywoływać tylko wtedy, gdy zestawy testów są w pełni przeanalizowane lub przesłane.

Maksymalna dozwolona liczba przeglądów zestawu testów na krok wynosi 1000.

  • W odpowiedzi: zawsze ustawione
  • W żądaniu utworzenia: opcjonalne
  • W żądaniu aktualizacji: nigdy (zamiast tego użyj metody niestandardowej publicXunitXmlFiles)
toolExecution

object ( ToolExecution )

Reprezentuje wykonanie modułu testowego.

Kod zakończenia tego narzędzia zostanie użyty do ustalenia, czy test zakończył się pomyślnie.

  • W odpowiedzi: zawsze ustawione
  • W żądaniu utworzenia/aktualizacji: opcjonalne
testIssues[]

object ( TestIssue )

Problemy zaobserwowane podczas wykonywania testu.

Na przykład, jeśli testowana aplikacja mobilna ulegnie awarii podczas testu, można tutaj zapisać komunikat o błędzie i zawartość śledzenia stosu, aby ułatwić debugowanie.

  • W odpowiedzi: obecny, jeśli ustawiony przez opcję tworzenia lub aktualizacji
  • W żądaniu utworzenia/aktualizacji: opcjonalne
testTiming

object ( TestTiming )

Podział czasu wykonania testu.

  • W odpowiedzi: obecny, jeśli ustawiony przez opcję tworzenia lub aktualizacji
  • W żądaniu utworzenia/aktualizacji: opcjonalne

Wykonanie narzędzia

Wykonanie dowolnego narzędzia. Może to być moduł uruchamiający testy lub narzędzie kopiujące artefakty lub wdrażające kod.

Reprezentacja JSON
{
  "commandLineArguments": [
    string
  ],
  "toolLogs": [
    {
      object (FileReference)
    }
  ],
  "exitCode": {
    object (ToolExitCode)
  },
  "toolOutputs": [
    {
      object (ToolOutputReference)
    }
  ]
}
Pola
commandLineArguments[]

string

Pełna tokenizowana linia poleceń zawierająca nazwę programu (odpowiednik argv w programie C).

  • W odpowiedzi: obecny, jeśli ustawiony przez żądanie utworzenia
  • W żądaniu utworzenia: opcjonalne
  • W żądaniu aktualizacji: nigdy nie ustawione
toolLogs[]

object ( FileReference )

Odniesienia do dowolnych dzienników tekstowych przedstawiają wykonanie narzędzia.

To pole można ustawić przed zamknięciem narzędzia, aby mieć dostęp do podglądu dzienników na żywo podczas działania narzędzia.

Maksymalna dozwolona liczba dzienników narzędzi na krok wynosi 1000.

  • W odpowiedzi: obecny, jeśli ustawiony przez żądanie utworzenia/aktualizacji
  • W żądaniu utworzenia: opcjonalne
  • W żądaniu aktualizacji: opcjonalne, każda podana wartość zostanie dołączona do istniejącej listy
exitCode

object ( ToolExitCode )

Kod zakończenia wykonywania narzędzia. To pole zostanie ustawione po wyjściu z narzędzia.

  • W odpowiedzi: obecny, jeśli ustawiony przez żądanie utworzenia/aktualizacji
  • W żądaniu utworzenia: opcjonalne
  • W żądaniu aktualizacji: opcjonalne, zostanie zwrócony błąd FAILED_PRECONDITION, jeśli kod wyjścia jest już ustawiony.
toolOutputs[]

object ( ToolOutputReference )

Odniesienia do nieprzezroczystych plików w dowolnym formacie wyprowadzanych przez wykonanie narzędzia.

Maksymalna dozwolona liczba wyjść narzędzia na krok wynosi 1000.

  • W odpowiedzi: obecny, jeśli ustawiony przez żądanie utworzenia/aktualizacji
  • W żądaniu utworzenia: opcjonalne
  • W żądaniu aktualizacji: opcjonalne, każda podana wartość zostanie dołączona do istniejącej listy

Kod wyjścia narzędzia

Kod wyjścia z wykonania narzędzia.

Reprezentacja JSON
{
  "number": integer
}
Pola
number

integer

Kod zakończenia wykonania narzędzia. Wartość 0 oznacza, że ​​wykonanie przebiegło pomyślnie.

  • W odpowiedzi: zawsze ustawione
  • W żądaniu utworzenia/aktualizacji: zawsze ustawione

Problem testowy

Wykryto problem występujący podczas wykonywania testu.

Reprezentacja JSON
{
  "errorMessage": string,
  "stackTrace": {
    object (StackTrace)
  },
  "warning": {
    object (Any)
  },
  "severity": enum (Severity),
  "type": enum (Type),
  "category": enum (Category)
}
Pola
errorMessage

string

Krótka, czytelna dla człowieka wiadomość opisująca problem. Wymagany.

stackTrace
(deprecated)

object ( StackTrace )

Przestarzałe na rzecz pól śledzenia stosu wewnątrz określonych ostrzeżeń.

warning

object ( Any )

Komunikat ostrzegawczy z dodatkowymi szczegółami problemu. Zawsze powinna to być wiadomość z adresu com.google.devtools.toolresults.v1.warnings

severity

enum ( Severity )

Ważność problemu. Wymagany.

type

enum ( Type )

Rodzaj problemu. Wymagany.

category

enum ( Category )

Kategoria problemu. Wymagany.

Każdy

Any zawiera dowolny serializowany komunikat bufora protokołu wraz z adresem URL opisującym typ serializowanego komunikatu.

Biblioteka Protobuf zapewnia obsługę pakowania/rozpakowywania wartości Any w postaci funkcji narzędziowych lub dodatkowych wygenerowanych metod typu Any.

Przykład 1: Spakowanie i rozpakowanie wiadomości w C++.

Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
  ...
}

Przykład 2: Spakowanie i rozpakowanie wiadomości w Javie.

Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
  foo = any.unpack(Foo.class);
}

Przykład 3: Spakowanie i rozpakowanie wiadomości w Pythonie.

foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
  any.Unpack(foo)
  ...

Przykład 4: Spakuj i rozpakuj wiadomość w Go

 foo := &pb.Foo{...}
 any, err := ptypes.MarshalAny(foo)
 ...
 foo := &pb.Foo{}
 if err := ptypes.UnmarshalAny(any, foo); err != nil {
   ...
 }

Metody pakowania dostarczane przez bibliotekę protobuf będą domyślnie używać „type.googleapis.com/full.type.name” jako adresu URL typu, a metody rozpakowywania używają tylko w pełni kwalifikowanej nazwy typu po ostatnim „/” w adresie URL typu, na przykład „foo.bar.com/x/yz” da nazwę typu „yz”.

JSON

Reprezentacja JSON wartości Any wykorzystuje zwykłą reprezentację deserializowanego, osadzonego komunikatu z dodatkowym polem @type , które zawiera adres URL typu. Przykład:

package google.profile;
message Person {
  string first_name = 1;
  string last_name = 2;
}

{
  "@type": "type.googleapis.com/google.profile.Person",
  "firstName": <string>,
  "lastName": <string>
}

Jeśli osadzony typ wiadomości jest dobrze znany i ma niestandardową reprezentację JSON, reprezentacja ta zostanie osadzona, dodając value pola, która oprócz pola @type przechowuje niestandardowy JSON. Przykład (dla wiadomości google.protobuf.Duration ):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
Reprezentacja JSON
{
  "typeUrl": string,
  "value": string
}
Pola
typeUrl

string

Adres URL/nazwa zasobu, który jednoznacznie identyfikuje typ serializowanego komunikatu bufora protokołu. Ten ciąg musi zawierać co najmniej jeden znak „/”. Ostatni segment ścieżki adresu URL musi reprezentować pełną nazwę typu (jak w path/google.protobuf.Duration ). Nazwa powinna mieć formę kanoniczną (np. początkowe „.” nie jest akceptowane).

W praktyce zespoły zwykle prekompilują do formatu binarnego wszystkie typy, których spodziewają się użyć w kontekście Any. Jednakże w przypadku adresów URL korzystających ze schematu http , https lub bez schematu można opcjonalnie skonfigurować serwer typów, który mapuje adresy URL typu na definicje wiadomości w następujący sposób:

  • Jeśli nie podano żadnego schematu, zakłada się https .
  • Komenda HTTP GET w adresie URL musi zwracać wartość google.protobuf.Type w formacie binarnym lub powodować błąd.
  • Aplikacje mogą buforować wyniki wyszukiwania na podstawie adresu URL lub prekompilować je do pliku binarnego, aby uniknąć jakiegokolwiek wyszukiwania. Dlatego przy zmianach typów należy zachować zgodność binarną. (Użyj nazw typów wersjonowanych, aby zarządzać istotnymi zmianami.)

Uwaga: ta funkcja nie jest obecnie dostępna w oficjalnej wersji protobuf i nie jest używana w przypadku adresów URL rozpoczynających się od type.googleapis.com.

Schematy inne niż http , https (lub pusty schemat) mogą być używane z semantyką specyficzną dla implementacji.

value

string ( bytes format)

Musi to być prawidłowy serializowany bufor protokołu określonego powyżej typu.

Ciąg zakodowany w formacie Base64.

Powaga

Istotność problemów.

Wyliczenia
unspecifiedSeverity Domyślna nieokreślona ważność. Nie używaj. Tylko do wersjonowania.
info Problem niekrytyczny, dostarczający użytkownikom pewnych informacji na temat przebiegu testowego.
suggestion Problem niekrytyczny, dostarczający użytkownikom wskazówek dotyczących poprawy doświadczenia podczas testowania, np. sugerujący użycie pętli gry.
warning Potencjalnie krytyczny problem.
severe Krytyczny problem.

Typ

Rodzaje problemów.

Wyliczenia
unspecifiedType Domyślny nieokreślony typ. Nie używaj. Tylko do wersjonowania.
fatalException Problem jest krytycznym wyjątkiem.
nativeCrash Problemem jest natywna awaria.
anr Problemem jest awaria ANR.
unusedRoboDirective Problemem jest nieużywana dyrektywa robo.
compatibleWithOrchestrator Problem polega na sugestii użycia programu Orchestrator.
launcherActivityNotFound Problem ze znalezieniem aktywności programu uruchamiającego
startActivityNotFound Problem z rozwiązaniem podanego przez użytkownika zamiaru rozpoczęcia działania
incompleteRoboScriptExecution Skrypt Robo nie został w pełni wykonany.
completeRoboScriptExecution Skrypt Robo został w pełni i pomyślnie wykonany.
failedToInstall Nie udało się zainstalować pakietu APK.
nonSdkApiUsageViolation Aplikacja uzyskała dostęp do interfejsu API innego niż SDK.
nonSdkApiUsageReport Aplikacja uzyskała dostęp do interfejsu API innego niż SDK (nowy szczegółowy raport)
encounteredNonAndroidUiWidgetScreen Robo crawl napotkał co najmniej jeden ekran z elementami, które nie są widżetami interfejsu użytkownika Androida.
encounteredLoginScreen Robo crawl napotkał co najmniej jeden prawdopodobny ekran logowania.
performedGoogleLogin Robo zalogował się w Google.
iosException Aplikacja na iOS uległa awarii z wyjątkiem.
iosCrash Aplikacja na iOS uległa awarii bez wyjątku (np. została zabita).
performedMonkeyActions Czołganie się Robo polegało na wykonywaniu niektórych małpich czynności.
usedRoboDirective Indeksowanie Robo korzystało z dyrektywy Robo.
usedRoboIgnoreDirective Indeksowanie Robo wykorzystało dyrektywę Robo do zignorowania elementu interfejsu użytkownika.
insufficientCoverage Robo nie przeszukał niektórych potencjalnie ważnych części aplikacji.
inAppPurchases Indeksowanie Robo obejmowało pewne zakupy w aplikacji.
crashDialogError Podczas wykonywania testu wykryto okno dialogowe awarii
uiElementsTooDeep Głębokość elementu interfejsu użytkownika jest większa niż próg
blankScreen Podczas przeszukiwania Robo znaleziono pusty ekran
overlappingUiElements Podczas indeksowania Robo można znaleźć nakładające się elementy interfejsu użytkownika
unityException Wykryto nieprzechwycony wyjątek Unity (nie powodują one awarii aplikacji).
deviceOutOfMemory Wykryto brak pamięci w urządzeniu
logcatCollectionError Wykryto problemy podczas zbierania logcat
detectedAppSplashScreen Robo wykrył ekran powitalny dostarczony przez aplikację (w porównaniu z ekranem powitalnym systemu operacyjnego Android).

Kategoria

Kategorie zagadnień.

Wyliczenia
unspecifiedCategory Domyślna nieokreślona kategoria. Nie używaj. Tylko do wersjonowania.
common Problem nie jest specyficzny dla konkretnego rodzaju testu (np. awaria natywna).
robo Problem jest specyficzny dla uruchomienia Robo.

Czas testu

Testowanie podziału czasu w celu poznania faz.

Reprezentacja JSON
{
  "testProcessDuration": {
    object (Duration)
  }
}
Pola
testProcessDuration

object ( Duration )

Ile czasu zajęło uruchomienie procesu testowego.

  • W odpowiedzi: obecny, jeśli został wcześniej ustawiony.
  • W żądaniu utworzenia/aktualizacji: opcjonalne

Krok wykonania narzędzia

Ogólny krok narzędzia do użycia w przypadku plików binarnych, których wyraźnie nie obsługujemy. Na przykład: uruchomienie cp w celu skopiowania artefaktów z jednej lokalizacji do drugiej.

Reprezentacja JSON
{
  "toolExecution": {
    object (ToolExecution)
  }
}
Pola
toolExecution

object ( ToolExecution )

Wykonanie narzędzia.

  • W odpowiedzi: obecny, jeśli ustawiony przez żądanie utworzenia/aktualizacji
  • W żądaniu utworzenia/aktualizacji: opcjonalne

Wieloetapowy

Szczegóły, gdy uruchamianych jest wiele kroków z tą samą konfiguracją co grupa.

Reprezentacja JSON
{
  "primaryStepId": string,
  "multistepNumber": integer,
  "primaryStep": {
    object (PrimaryStep)
  }
}
Pola
primaryStepId

string

Identyfikator kroku podstawowego (oryginalnego), którym może być ten krok.

multistepNumber

integer

Unikalny int nadawany każdemu krokowi. Zakres od 0 (włącznie) do całkowitej liczby kroków (wyłącznie). Podstawowym krokiem jest 0.

primaryStep

object ( PrimaryStep )

Występuje, jeśli jest to krok podstawowy (oryginalny).

Podstawowy krok

Przechowuje status testu zbiorczego wielu kroków, które zostały uruchomione jako grupa, oraz wynik każdego pojedynczego kroku.

Reprezentacja JSON
{
  "rollUp": enum (OutcomeSummary),
  "individualOutcome": [
    {
      object (IndividualOutcome)
    }
  ]
}
Pola
rollUp

enum ( OutcomeSummary )

Stan testu zbiorczego wielu kroków, które zostały uruchomione z tą samą konfiguracją co grupa.

individualOutcome[]

object ( IndividualOutcome )

Identyfikator kroku i wynik każdego pojedynczego kroku.

Indywidualny wynik

Identyfikator kroku i wynik każdego pojedynczego kroku, który został uruchomiony jako grupa z innymi krokami o tej samej konfiguracji.

Reprezentacja JSON
{
  "stepId": string,
  "outcomeSummary": enum (OutcomeSummary),
  "multistepNumber": integer,
  "runDuration": {
    object (Duration)
  }
}
Pola
stepId

string

outcomeSummary

enum ( OutcomeSummary )

multistepNumber

integer

Unikalny int nadawany każdemu krokowi. Zakres od 0 (włącznie) do całkowitej liczby kroków (wyłącznie). Podstawowym krokiem jest 0.

runDuration

object ( Duration )

Ile czasu zajęło wykonanie tego kroku.

Metody

accessibilityClusters

Wyświetla listę klastrów dostępności dla danego kroku

Może zwrócić dowolny z następujących kanonicznych kodów błędów:

  • PERMISSION_DENIED - jeśli użytkownik nie ma uprawnień do odczytu projektu
  • INVALID_ARGUMENT — jeśli żądanie jest źle sformułowane
  • FAILED_PRECONDITION - jeśli argument w żądaniu okaże się nieprawidłowy; np

create

Tworzy krok.

get

Dostaje krok.

getPerfMetricsSummary

Pobiera podsumowanie PerfMetrics.

list

Wyświetla listę kroków dla danego wykonania.

patch

Aktualizuje istniejący krok za pomocą dostarczonej jednostki częściowej.

publishXunitXmlFiles

Opublikuj pliki XML w istniejącym kroku.