REST Resource: projects.histories.executions.steps

Risorsa: passo

Un passo rappresenta una singola operazione eseguita come parte dell'esecuzione. Un passo può essere utilizzato per rappresentare l'esecuzione di uno strumento (ad esempio l'esecuzione di un test runner o l'esecuzione di un compilatore).

Le fasi possono sovrapporsi (ad esempio due fasi potrebbero avere la stessa ora di inizio se alcune operazioni vengono eseguite in parallelo).

Ecco un esempio, consideriamo che abbiamo una build continua che esegue un test runner per ogni iterazione. Il flusso di lavoro sarebbe simile a: - l'utente crea un'esecuzione con id 1 - l'utente crea un TestExecutionStep con id 100 per l'esecuzione 1 - l'utente aggiorna TestExecutionStep con id 100 per aggiungere un log xml non elaborato + il servizio analizza i log xml e restituisce un TestExecutionStep con risultati del test aggiornati. - l'utente aggiorna lo stato di TestExecutionStep con ID 100 su COMPLETE

Un passaggio può essere aggiornato finché il suo stato non viene impostato su COMPLETE, a quel punto diventa immutabile.

Rappresentazione 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.
}
Campi
stepId

string

Un identificatore univoco all'interno di un'esecuzione per questo passaggio.

Restituisce INVALID_ARGUMENT se questo campo viene impostato o sovrascritto dal chiamante.

  • In risposta: sempre impostato
  • Nella richiesta di creazione/aggiornamento: non impostare mai
creationTime

object ( Timestamp )

L'ora in cui è stato creato il passaggio.

  • In risposta: sempre impostato
  • Nella richiesta di creazione/aggiornamento: non impostare mai
completionTime

object ( Timestamp )

L'ora in cui lo stato del passaggio è stato impostato su completato.

Questo valore verrà impostato automaticamente quando lo stato passa a COMPLETE.

  • In risposta: impostato se lo stato di esecuzione è COMPLETO.
  • Nella richiesta di creazione/aggiornamento: non impostare mai
name

string

Un nome breve leggibile da visualizzare nell'interfaccia utente. Massimo 100 caratteri. Ad esempio: build pulita

Un PRECONDITION_FAILED verrà restituito al momento della creazione di un nuovo passaggio se condivide il nome e dimensionValue con un passaggio esistente. Se due passaggi rappresentano un'azione simile, ma hanno valori di dimensione diversi, dovrebbero condividere lo stesso nome. Ad esempio, se lo stesso set di test viene eseguito su due piattaforme diverse, i due passaggi dovrebbero avere lo stesso nome.

  • In risposta: sempre impostato
  • Nella richiesta di creazione: sempre impostato
  • Nella richiesta di aggiornamento: mai impostato
description

string

Una descrizione di questo strumento Ad esempio: mvn clean package -D skipTests=true

  • In risposta: presente se impostato dalla richiesta di creazione/aggiornamento
  • Nella richiesta di creazione/aggiornamento: facoltativo
state

enum ( State )

Lo stato iniziale è IN_PROGRESS. Le uniche transizioni di stato legali sono * IN_PROGRESS -> COMPLETE

Se viene richiesta una transizione non valida verrà restituito un PRECONDITION_FAILED.

È valido creare Step con uno stato impostato su COMPLETE. Lo stato può essere impostato su COMPLETE solo una volta. Verrà restituito un PRECONDITION_FAILED se lo stato viene impostato su COMPLETE più volte.

  • In risposta: sempre impostato
  • Nella richiesta di creazione/aggiornamento: facoltativo
outcome

object ( Outcome )

Classificazione del risultato, ad esempio in SUCCESSO o FALLIMENTO

  • In risposta: presente se impostato dalla richiesta di creazione/aggiornamento
  • Nella richiesta di creazione/aggiornamento: facoltativo
hasImages

boolean

Indica se uno qualsiasi degli output di questo passaggio sono immagini le cui miniature possono essere recuperate con miniature.list.

  • In risposta: sempre impostato
  • Nella richiesta di creazione/aggiornamento: non impostare mai
labels

map (key: string, value: string)

Coppie chiave/valore arbitrarie fornite dall'utente associate al passaggio.

Gli utenti sono responsabili della gestione dello spazio dei nomi delle chiavi in ​​modo che le chiavi non entrino in collisione accidentalmente.

Verrà restituito un INVALID_ARGUMENT se il numero di etichette supera 100 o se la lunghezza di una qualsiasi delle chiavi o dei valori supera 100 caratteri.

  • In risposta: sempre impostato
  • Nella richiesta di creazione: facoltativo
  • Nella richiesta di aggiornamento: facoltativo; qualsiasi nuova coppia chiave/valore verrà aggiunta alla mappa e qualsiasi nuovo valore per una chiave esistente aggiornerà il valore di quella chiave

Un oggetto contenente un elenco di coppie "key": value . Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

dimensionValue

map (key: string, value: string)

Se l'esecuzione contenente questo passaggio ha una dimensione_definizione impostata, allora questo campo consente al figlio di specificare i valori delle dimensioni.

Le chiavi devono corrispondere esattamente alla dimension_definition dell'esecuzione.

Ad esempio, se l'esecuzione ha dimension_definition = ['attempt', 'device'] allora un passaggio deve definire i valori per tali dimensioni, ad es. dimensionValue = ['attempt': '1', 'device': 'Nexus 6']

Se un passaggio non partecipa a una dimensione della matrice, il valore per quella dimensione dovrebbe essere una stringa vuota. Ad esempio, se uno dei test viene eseguito da un corridore che non supporta i tentativi, il passaggio potrebbe avere dimensionValue = ['attempt': '', 'device': 'Nexus 6']

Se il passaggio non partecipa ad alcuna dimensione della matrice, potrebbe lasciare dimensionValue non impostato.

Verrà restituito un PRECONDITION_FAILED se una qualsiasi delle chiavi non esiste nella dimension_definition dell'esecuzione.

Verrà restituito un PRECONDITION_FAILED se un altro passaggio in questa esecuzione ha già lo stesso nome e dimensionValue, ma differisce in altri campi dati, ad esempio il campo del passaggio è diverso.

Verrà restituito un PRECONDITION_FAILED se dimensionValue è impostato ed è presente un dimension_definition nell'esecuzione che non è specificato come una delle chiavi.

  • In risposta: presente se impostato da create
  • Nella richiesta di creazione: facoltativo
  • Nella richiesta di aggiornamento: mai impostato

Un oggetto contenente un elenco di coppie "key": value . Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

runDuration

object ( Duration )

Quanto tempo è stato necessario per l'esecuzione di questo passaggio.

Se non impostato, viene impostato sulla differenza tra CreationTime e CompleteTime quando il passaggio è impostato sullo stato COMPLETE. In alcuni casi è opportuno impostare questo valore separatamente: ad esempio, se viene creato un passo, ma l'operazione che rappresenta viene accodata per alcuni minuti prima di essere eseguita, sarebbe opportuno non includere nel suo runDuration.

PRECONDITION_FAILED verrà restituito se si tenta di impostare un runDuration su un passaggio in cui è già impostato questo campo.

  • In risposta: presente se precedentemente impostato; sempre presente sul passo COMPLETE
  • Nella richiesta di creazione: facoltativo
  • Nella richiesta di aggiornamento: facoltativo
deviceUsageDuration

object ( Duration )

Quanto viene utilizzata la risorsa del dispositivo per eseguire il test.

Si tratta dell'utilizzo del dispositivo utilizzato a scopo di fatturazione, che è diverso da runDuration, ad esempio, un guasto dell'infrastruttura non verrà addebitato per l'utilizzo del dispositivo.

PRECONDITION_FAILED verrà restituito se si tenta di impostare un device_usage su un passaggio in cui è già impostato questo campo.

  • In risposta: presente se precedentemente impostato.
  • Nella richiesta di creazione: facoltativo
  • Nella richiesta di aggiornamento: facoltativo
multiStep

object ( MultiStep )

Dettagli quando vengono eseguiti più passaggi con la stessa configurazione di un gruppo. Questi dettagli possono essere utilizzati per identificare di quale gruppo fa parte questo passaggio. Identifica inoltre il "passaggio primario" del gruppo che indicizza tutti i membri del gruppo.

  • In risposta: presente se precedentemente impostato.
  • Nella richiesta di creazione: facoltativo, impostare se e solo se questo passaggio è stato eseguito più di una volta.
  • Nella richiesta di aggiornamento: facoltativo

step sul campo dell'Unione.

step può essere solo uno dei seguenti:

testExecutionStep

object ( TestExecutionStep )

L'esecuzione di un test runner.

toolExecutionStep

object ( ToolExecutionStep )

Un'esecuzione di uno strumento (utilizzato per passaggi che non supportiamo esplicitamente).

PassoEsecuzioneTest

Un passaggio che rappresenta l'esecuzione dei test.

Accetta file xml ant-junit che verranno analizzati in risultati di test strutturati dal servizio. I percorsi dei file XML vengono aggiornati per aggiungere più file, ma non possono essere eliminati.

Gli utenti possono anche aggiungere manualmente i risultati del test utilizzando il campo test_result.

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

object ( TestSuiteOverview )

Elenco dei contenuti della panoramica della suite di test. Questo può essere analizzato dal log XML di xUnit dal server o caricato direttamente dall'utente. Questi riferimenti dovrebbero essere chiamati solo quando le suite di test sono state completamente analizzate o caricate.

Il numero massimo consentito di panoramiche della suite di test per passaggio è 1000.

  • In risposta: sempre impostato
  • Nella richiesta di creazione: facoltativo
  • Nella richiesta di aggiornamento: mai (usa invece il metodo personalizzatopublishXunitXmlFiles)
toolExecution

object ( ToolExecution )

Rappresenta l'esecuzione del test runner.

Il codice di uscita di questo strumento verrà utilizzato per determinare se il test è stato superato.

  • In risposta: sempre impostato
  • Nella richiesta di creazione/aggiornamento: facoltativo
testIssues[]

object ( TestIssue )

Problemi osservati durante l'esecuzione del test.

Ad esempio, se l'app mobile sottoposta a test si è arrestato in modo anomalo durante il test, il messaggio di errore e il contenuto dell'analisi dello stack possono essere registrati qui per facilitare il debug.

  • In risposta: presente se impostato tramite creazione o aggiornamento
  • Nella richiesta di creazione/aggiornamento: facoltativo
testTiming

object ( TestTiming )

La suddivisione temporale dell'esecuzione del test.

  • In risposta: presente se impostato tramite creazione o aggiornamento
  • Nella richiesta di creazione/aggiornamento: facoltativo

Esecuzione dello strumento

L'esecuzione di uno strumento arbitrario. Potrebbe essere un test runner o uno strumento che copia artefatti o distribuisce codice.

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

string

La riga di comando completamente tokenizzata, incluso il nome del programma (equivalente ad argv in un programma C).

  • In risposta: presente se impostato dalla richiesta di creazione
  • Nella richiesta di creazione: facoltativo
  • Nella richiesta di aggiornamento: mai impostato
toolLogs[]

object ( FileReference )

I riferimenti a qualsiasi registro di testo normale indicano l'esecuzione dello strumento.

Questo campo può essere impostato prima della chiusura dello strumento per poter accedere a una visualizzazione in tempo reale dei registri mentre lo strumento è in esecuzione.

Il numero massimo consentito di registri utensili per passaggio è 1000.

  • In risposta: presente se impostato dalla richiesta di creazione/aggiornamento
  • Nella richiesta di creazione: facoltativo
  • Nella richiesta di aggiornamento: facoltativo, qualsiasi valore fornito verrà aggiunto all'elenco esistente
exitCode

object ( ToolExitCode )

Codice di uscita dell'esecuzione dello strumento. Questo campo verrà impostato una volta uscito dallo strumento.

  • In risposta: presente se impostato dalla richiesta di creazione/aggiornamento
  • Nella richiesta di creazione: facoltativo
  • Nella richiesta di aggiornamento: facoltativo, verrà restituito un errore FAILED_PRECONDITION se è già impostato un exitCode.
toolOutputs[]

object ( ToolOutputReference )

Riferimenti a file opachi di qualsiasi formato generati dall'esecuzione dello strumento.

Il numero massimo consentito di output dello strumento per passaggio è 1000.

  • In risposta: presente se impostato dalla richiesta di creazione/aggiornamento
  • Nella richiesta di creazione: facoltativo
  • Nella richiesta di aggiornamento: facoltativo, qualsiasi valore fornito verrà aggiunto all'elenco esistente

StrumentoCodiceUscita

Codice di uscita dall'esecuzione di uno strumento.

Rappresentazione JSON
{
  "number": integer
}
Campi
number

integer

Codice di uscita dell'esecuzione dello strumento. Un valore pari a 0 significa che l'esecuzione ha avuto successo.

  • In risposta: sempre impostato
  • Nella richiesta di creazione/aggiornamento: sempre impostato

Problema di prova

È stato rilevato un problema che si è verificato durante l'esecuzione di un test.

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

string

Un breve messaggio leggibile che descrive il problema. Necessario.

stackTrace
(deprecated)

object ( StackTrace )

Deprecato a favore dei campi di traccia dello stack all'interno di avvisi specifici.

warning

object ( Any )

Messaggio di avviso con ulteriori dettagli sul problema. Dovrebbe essere sempre un messaggio da com.google.devtools.toolresults.v1.warnings

severity

enum ( Severity )

Gravità del problema. Necessario.

type

enum ( Type )

Tipo di problema. Necessario.

category

enum ( Category )

Categoria di problema. Necessario.

Qualunque

Any contiene un messaggio buffer di protocollo serializzato arbitrario insieme a un URL che descrive il tipo di messaggio serializzato.

La libreria Protobuf fornisce supporto per comprimere/decomprimere valori Any sotto forma di funzioni di utilità o metodi generati aggiuntivi di tipo Any.

Esempio 1: comprimere e decomprimere un messaggio in C++.

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

Esempio 2: comprimere e decomprimere un messaggio in Java.

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

Esempio 3: comprimere e decomprimere un messaggio in Python.

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

Esempio 4: comprimere e decomprimere un messaggio in Go

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

I metodi di pack forniti dalla libreria protobuf utilizzeranno per impostazione predefinita "type.googleapis.com/full.type.name" come URL di tipo e i metodi di unpack utilizzeranno solo il nome di tipo completo dopo l'ultimo "/" nell'URL di tipo, ad esempio "foo.bar.com/x/yz" restituirà il nome del tipo "yz".

JSON

La rappresentazione JSON di un valore Any utilizza la rappresentazione regolare del messaggio incorporato deserializzato, con un campo aggiuntivo @type che contiene l'URL del tipo. Esempio:

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

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

Se il tipo di messaggio incorporato è noto e ha una rappresentazione JSON personalizzata, tale rappresentazione verrà incorporata aggiungendo un value di campo che contiene il JSON personalizzato oltre al campo @type . Esempio (per il messaggio google.protobuf.Duration ):

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

string

Un nome URL/risorsa che identifica in modo univoco il tipo di messaggio del buffer del protocollo serializzato. Questa stringa deve contenere almeno un carattere "/". L'ultimo segmento del percorso dell'URL deve rappresentare il nome completo del tipo (come in path/google.protobuf.Duration ). Il nome deve essere in forma canonica (ad esempio, il "." non è accettato).

In pratica, i team solitamente precompilano nel binario tutti i tipi che si aspettano che vengano utilizzati nel contesto di Any. Tuttavia, per gli URL che utilizzano lo schema http , https o nessuno schema, è possibile opzionalmente impostare un server di tipo che associa gli URL di tipo alle definizioni dei messaggi come segue:

  • Se non viene fornito alcuno schema, si presuppone https .
  • Un HTTP GET sull'URL deve restituire un valore google.protobuf.Type in formato binario oppure produrre un errore.
  • Le applicazioni possono memorizzare nella cache i risultati della ricerca in base all'URL o precompilarli in un file binario per evitare qualsiasi ricerca. Pertanto, è necessario preservare la compatibilità binaria in caso di modifiche ai tipi. (Utilizzare nomi di tipi con versione per gestire modifiche importanti.)

Nota: questa funzionalità non è attualmente disponibile nella versione ufficiale di protobuf e non viene utilizzata per gli URL di tipo che iniziano con type.googleapis.com.

Schemi diversi da http , https (o lo schema vuoto) potrebbero essere utilizzati con una semantica specifica dell'implementazione.

value

string ( bytes format)

Deve essere un buffer di protocollo serializzato valido del tipo sopra specificato.

Una stringa con codifica base64.

Gravità

Gravità dei problemi.

Enumerazioni
unspecifiedSeverity Gravità predefinita non specificata. Non usare. Solo per il controllo delle versioni.
info Problema non critico, che fornisce agli utenti alcune informazioni sull'esecuzione del test.
suggestion Problema non critico, che fornisce agli utenti alcuni suggerimenti su come migliorare la loro esperienza di test, ad esempio suggerendo di utilizzare Game Loops.
warning Problema potenzialmente critico.
severe Problema critico.

Tipo

Tipi di problemi.

Enumerazioni
unspecifiedType Tipo predefinito non specificato. Non usare. Solo per il controllo delle versioni.
fatalException Il problema è un'eccezione fatale.
nativeCrash Il problema è un arresto anomalo nativo.
anr Il problema è un arresto anomalo dell'ANR.
unusedRoboDirective Il problema è una direttiva robot inutilizzata.
compatibleWithOrchestrator Il problema è un suggerimento per utilizzare l'orchestratore.
launcherActivityNotFound Problema con la ricerca di un'attività di avvio
startActivityNotFound Problema con la risoluzione di un intento fornito dall'utente per avviare un'attività
incompleteRoboScriptExecution Uno script Robo non è stato eseguito completamente.
completeRoboScriptExecution Uno script Robo è stato eseguito completamente e con successo.
failedToInstall Impossibile installare l'APK.
nonSdkApiUsageViolation L'app ha avuto accesso a un'API non SDK.
nonSdkApiUsageReport L'app ha avuto accesso a un'API non SDK (nuovo report dettagliato)
encounteredNonAndroidUiWidgetScreen La scansione Robo ha rilevato almeno una schermata con elementi che non sono widget dell'interfaccia utente di Android.
encounteredLoginScreen La scansione Robo ha rilevato almeno una probabile schermata di accesso.
performedGoogleLogin Robo ha effettuato l'accesso con Google.
iosException L'app iOS si è bloccata con un'eccezione.
iosCrash L'app iOS si è bloccata senza eccezioni (ad esempio, è stata uccisa).
performedMonkeyActions Il robot crawl prevedeva l'esecuzione di alcune azioni della scimmia.
usedRoboDirective La scansione Robo utilizzava una direttiva Robo.
usedRoboIgnoreDirective La scansione Robo utilizzava una direttiva Robo per ignorare un elemento dell'interfaccia utente.
insufficientCoverage Robo non ha eseguito la scansione di alcune parti potenzialmente importanti dell'app.
inAppPurchases La scansione robotica prevedeva alcuni acquisti in-app.
crashDialogError È stata rilevata una finestra di dialogo di arresto anomalo durante l'esecuzione del test
uiElementsTooDeep La profondità dell'elemento dell'interfaccia utente è maggiore della soglia
blankScreen Nella scansione di Robo viene trovata una schermata vuota
overlappingUiElements Gli elementi dell'interfaccia utente sovrapposti si trovano nella scansione di Robo
unityException È stata rilevata un'eccezione Unity non rilevata (queste non causano l'arresto anomalo delle app).
deviceOutOfMemory È stata rilevata l'esaurimento della memoria del dispositivo
logcatCollectionError Problemi rilevati durante la raccolta di logcat
detectedAppSplashScreen Robo ha rilevato una schermata iniziale fornita dall'app (rispetto alla schermata iniziale del sistema operativo Android).

Categoria

Categorie di problemi.

Enumerazioni
unspecifiedCategory Categoria predefinita non specificata. Non usare. Solo per il controllo delle versioni.
common Il problema non è specifico per un particolare tipo di test (ad esempio, un arresto anomalo nativo).
robo Il problema è specifico di Robo Run.

Test Timing

I tempi dei test vengono suddivisi per conoscere le fasi.

Rappresentazione JSON
{
  "testProcessDuration": {
    object (Duration)
  }
}
Campi
testProcessDuration

object ( Duration )

Quanto tempo è stato necessario per eseguire il processo di test.

  • In risposta: presente se precedentemente impostato.
  • Nella richiesta di creazione/aggiornamento: facoltativo

PassoEsecuzioneStrumento

Passaggio dello strumento generico da utilizzare per i file binari che non supportiamo esplicitamente. Ad esempio: eseguire cp per copiare gli artefatti da una posizione all'altra.

Rappresentazione JSON
{
  "toolExecution": {
    object (ToolExecution)
  }
}
Campi
toolExecution

object ( ToolExecution )

A Esecuzione dello strumento.

  • In risposta: presente se impostato dalla richiesta di creazione/aggiornamento
  • Nella richiesta di creazione/aggiornamento: facoltativo

Multifase

Dettagli quando vengono eseguiti più passaggi con la stessa configurazione di un gruppo.

Rappresentazione JSON
{
  "primaryStepId": string,
  "multistepNumber": integer,
  "primaryStep": {
    object (PrimaryStep)
  }
}
Campi
primaryStepId

string

ID passaggio del passaggio principale (originale), che potrebbe essere questo passaggio.

multistepNumber

integer

Int univoco assegnato a ogni passaggio. Varia da 0 (incluso) al numero totale di passaggi (escluso). Il passaggio principale è 0.

primaryStep

object ( PrimaryStep )

Presente se si tratta di un passaggio primario (originale).

Passaggio primario

Memorizza lo stato del test di rollup di più passaggi eseguiti come gruppo e il risultato di ogni singolo passaggio.

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

enum ( OutcomeSummary )

Stato del test di rollup di più passaggi eseguiti con la stessa configurazione di un gruppo.

individualOutcome[]

object ( IndividualOutcome )

ID passaggio e risultato di ogni singolo passaggio.

Risultato individuale

ID passaggio e risultato di ogni singolo passaggio eseguito in gruppo con altri passaggi con la stessa configurazione.

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

string

outcomeSummary

enum ( OutcomeSummary )

multistepNumber

integer

Int univoco assegnato a ogni passaggio. Varia da 0 (incluso) al numero totale di passaggi (escluso). Il passaggio principale è 0.

runDuration

object ( Duration )

Quanto tempo è stato necessario per l'esecuzione di questo passaggio.

Metodi

accessibilityClusters

Elenca i cluster di accessibilità per un determinato passaggio

Può restituire uno dei seguenti codici di errore canonici:

  • PERMISSION_DENIED - se l'utente non è autorizzato a leggere il progetto
  • INVALID_ARGUMENT - se la richiesta non è valida
  • FAILED_PRECONDITION - se un argomento nella richiesta risulta non valido; per esempio

create

Crea un passaggio.

get

Ottiene un passaggio.

getPerfMetricsSummary

Recupera un PerfMetricsSummary.

list

Elenca i passaggi per una determinata esecuzione.

patch

Aggiorna un passaggio esistente con l'entità parziale fornita.

publishXunitXmlFiles

Pubblica file xml in uno step esistente.