REST Resource: projects.testMatrices

Recurso: TestMatrix

TestMatrix captura todos os detalhes sobre um teste. Ele contém a configuração do ambiente, especificação de teste, execuções de teste e estado e resultado geral.

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

string

Somente saída. ID exclusivo definido pelo serviço.

projectId

string

O projeto de nuvem que possui a matriz de teste.

clientInfo

object ( ClientInfo )

Informações sobre o cliente que invocou o teste.

testSpecification

object ( TestSpecification )

Obrigatório. Como executar o teste.

environmentMatrix

object ( EnvironmentMatrix )

Obrigatório. Os dispositivos nos quais os testes estão sendo executados.

testExecutions[]

object ( TestExecution )

Somente saída. A lista de execuções de teste que o serviço cria para esta matriz.

resultStorage

object ( ResultStorage )

Obrigatório. Onde os resultados da matriz são escritos.

state

enum ( TestState )

Somente saída. Indica o progresso atual da matriz de teste.

timestamp

string ( Timestamp format)

Somente saída. A hora em que esta matriz de teste foi criada inicialmente.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z" .

invalidMatrixDetails

enum ( InvalidMatrixDetails )

Somente saída. Descreve por que a matriz é considerada inválida. Útil apenas para matrizes no estado INVÁLIDO.

flakyTestAttempts

integer

O número de vezes que um TestExecution deverá ser tentado novamente se um ou mais de seus casos de teste falharem por qualquer motivo. O número máximo de repetições permitido é 10.

O padrão é 0, o que implica que não há repetições.

outcomeSummary

enum ( OutcomeSummary )

Somente saída. O resultado geral do teste. Definido apenas quando o estado da matriz de teste for FINISHED.

failFast

boolean

Se for verdade, apenas uma única tentativa será feita para executar cada execução/fragmento na matriz. Tentativas de teste instáveis ​​não são afetadas.

Normalmente, são feitas 2 ou mais tentativas se for detectado um possível problema de infraestrutura.

Esse recurso é para cargas de trabalho sensíveis à latência. A incidência de falhas de execução pode ser significativamente maior para matrizes fail-fast e o suporte é mais limitado devido a essa expectativa.

Informações do cliente

Informações sobre o cliente que invocou o teste.

Representação JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
Campos
name

string

Obrigatório. Nome do cliente, como gcloud.

clientInfoDetails[]

object ( ClientInfoDetail )

A lista de informações detalhadas sobre o cliente.

Detalhes de informações do cliente

Par chave-valor de informações detalhadas sobre o cliente que invocou o teste. Exemplos: {'Versão', '1.0'}, {'Release Track', 'BETA'}.

Representação JSON
{
  "key": string,
  "value": string
}
Campos
key

string

Obrigatório. A chave das informações detalhadas do cliente.

value

string

Obrigatório. O valor das informações detalhadas do cliente.

Especificação do teste

Uma descrição de como executar o teste.

Representação JSON
{
  "testTimeout": string,
  "disableVideoRecording": boolean,
  "disablePerformanceMetrics": boolean,

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

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

string ( Duration format)

Tempo máximo que uma execução de teste pode ser executada antes de ser cancelada automaticamente. O valor padrão é 5 min.

Uma duração em segundos com até nove dígitos fracionários, terminando com ' s '. Exemplo: "3.5s" .

disableVideoRecording

boolean

Desativa a gravação de vídeo. Pode reduzir a latência do teste.

disablePerformanceMetrics

boolean

Desativa o registro de métricas de desempenho. Pode reduzir a latência do teste.

setup do campo união. Requisitos de configuração de teste. setup pode ser apenas uma das seguintes:
testSetup

object ( TestSetup )

Teste os requisitos de configuração para Android, por exemplo, arquivos para instalação, scripts de inicialização.

iosTestSetup

object ( IosTestSetup )

Teste os requisitos de configuração para iOS.

test de campo da União. Obrigatório. O tipo de teste a ser executado. test pode ser apenas um dos seguintes:
androidInstrumentationTest

object ( AndroidInstrumentationTest )

Um teste de instrumentação Android.

androidRoboTest

object ( AndroidRoboTest )

Um teste robótico Android.

androidTestLoop

object ( AndroidTestLoop )

Um aplicativo Android com um loop de teste.

iosXcTest

object ( IosXcTest )

Um iOS XCTest, por meio de um arquivo .xctestrun.

iosTestLoop

object ( IosTestLoop )

Um aplicativo iOS com um loop de teste.

Configuração de teste

Uma descrição de como configurar o dispositivo Android antes de executar o teste.

Representação JSON
{
  "filesToPush": [
    {
      object (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "additionalApks": [
    {
      object (Apk)
    }
  ],
  "account": {
    object (Account)
  },
  "networkProfile": string,
  "environmentVariables": [
    {
      object (EnvironmentVariable)
    }
  ],
  "systrace": {
    object (SystraceSetup)
  },
  "dontAutograntPermissions": boolean
}
Campos
filesToPush[]

object ( DeviceFile )

Lista de arquivos a serem enviados ao dispositivo antes de iniciar o teste.

directoriesToPull[]

string

Lista de diretórios do dispositivo para upload no GCS ao final do teste; eles devem ser caminhos absolutos em /sdcard, /storage ou /data/local/tmp. Os nomes de caminho são restritos a caracteres az AZ 0-9 _ - . + e /

Nota: Os caminhos /sdcard e /data serão disponibilizados e tratados como substituições implícitas de caminho. Por exemplo, se /sdcard em um dispositivo específico não for mapeado para armazenamento externo, o sistema irá substituí-lo pelo prefixo do caminho de armazenamento externo para esse dispositivo.

additionalApks[]

object ( Apk )

APKs para instalar além daqueles que estão sendo testados diretamente. Atualmente limitado a 100.

account

object ( Account )

O dispositivo estará conectado nesta conta durante o teste.

networkProfile

string

O perfil de tráfego de rede usado para executar o teste. Os perfis de rede disponíveis podem ser consultados usando o tipo de ambiente NETWORK_CONFIGURATION ao chamar TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

environmentVariables[]

object ( EnvironmentVariable )

Variáveis ​​de ambiente a serem definidas para o teste (aplicável apenas para testes de instrumentação).

systrace
(deprecated)

object ( SystraceSetup )

Configuração do Systrace para a execução. Obsoleto: Systrace usou Python 2, que foi desativado em 01/01/2020. O Systrace não é mais compatível com a API Cloud Testing e nenhum arquivo Systrace será fornecido nos resultados.

dontAutograntPermissions

boolean

Se deve-se impedir que todas as permissões de tempo de execução sejam concedidas na instalação do aplicativo

Arquivo de dispositivo

Uma descrição de arquivo de dispositivo único.

Representação JSON
{

  // Union field device_file can be only one of the following:
  "obbFile": {
    object (ObbFile)
  },
  "regularFile": {
    object (RegularFile)
  }
  // End of list of possible types for union field device_file.
}
Campos
Campo de união device_file . Obrigatório. device_file pode ser apenas um dos seguintes:
obbFile

object ( ObbFile )

Uma referência a um arquivo blob binário opaco.

regularFile

object ( RegularFile )

Uma referência a um arquivo normal.

Arquivo Obb

Um arquivo blob binário opaco para instalar no dispositivo antes do início do teste.

Representação JSON
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
Campos
obbFileName

string

Obrigatório. Nome do arquivo OBB que deve estar em conformidade com o formato especificado pelo Android, por exemplo, [main|patch].0300110.com.example.android.obb que será instalado em <shared-storage>/Android/obb/<package-name>/ no dispositivo.

obb

object ( FileReference )

Obrigatório. Arquivo(s) Opaque Binary Blob (OBB) para instalar no dispositivo.

Referência de arquivo

Uma referência a um arquivo, usado para entradas do usuário.

Representação JSON
{

  // Union field file can be only one of the following:
  "gcsPath": string
  // End of list of possible types for union field file.
}
Campos
file de campo de união. Obrigatório. A referência do arquivo. file pode ser apenas um dos seguintes:
gcsPath

string

Um caminho para um arquivo no Google Cloud Storage. Exemplo: gs://build-app-1414623860166/app%40debug-unaligned.apk Espera-se que esses caminhos sejam codificados por URL (codificação percentual)

Arquivo Regular

Um arquivo ou diretório a ser instalado no dispositivo antes do início do teste.

Representação JSON
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
Campos
content

object ( FileReference )

Obrigatório. O arquivo de origem.

devicePath

string

Obrigatório. Onde colocar o conteúdo no dispositivo. Deve ser um caminho absoluto e permitido. Se o arquivo existir, ele será substituído. Os seguintes diretórios do lado do dispositivo e qualquer um de seus subdiretórios estão na lista de permissões:

${EXTERNAL_STORAGE}, /sdcard ou /storage

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

Especificar um caminho fora dessas árvores de diretório é inválido.

Os caminhos /sdcard e /data serão disponibilizados e tratados como substituições implícitas de caminho. Por exemplo, se /sdcard em um dispositivo específico não mapear para armazenamento externo, o sistema irá substituí-lo pelo prefixo do caminho de armazenamento externo para esse dispositivo e copiar o arquivo lá.

É altamente recomendável usar a API de ambiente no aplicativo e testar o código para acessar arquivos no dispositivo de forma portátil.

Apk

Um arquivo de pacote Android para instalar.

Representação JSON
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
Campos
location

object ( FileReference )

O caminho para um APK a ser instalado no dispositivo antes do início do teste.

packageName

string

O pacote java para o APK ser instalado. O valor é determinado examinando o manifesto do aplicativo.

Conta

Identifica uma conta e como fazer login nela.

Representação JSON
{

  // Union field account_type can be only one of the following:
  "googleAuto": {
    object (GoogleAuto)
  }
  // End of list of possible types for union field account_type.
}
Campos
Campo de união account_type . Obrigatório. O tipo de conta, com base na sua finalidade (por exemplo, Google) e qual é o seu mecanismo de login (por exemplo, nome de usuário e senha). account_type pode ser apenas um dos seguintes:
googleAuto

object ( GoogleAuto )

Uma conta de login automático do Google.

GoogleAuto

Ativa o login automático na conta do Google. Se definido, o serviço gera automaticamente uma conta de teste do Google e a adiciona ao dispositivo, antes de executar o teste. Observe que as contas de teste podem ser reutilizadas. Muitos aplicativos mostram seu conjunto completo de funcionalidades quando uma conta está presente no dispositivo. O login no dispositivo com essas contas geradas permite testar mais funcionalidades.

Variável de ambiente

Um par chave-valor passado como uma variável de ambiente para o teste.

Representação JSON
{
  "key": string,
  "value": string
}
Campos
key

string

Chave para a variável de ambiente.

value

string

Valor para a variável de ambiente.

Configuração do Systrace

Representação JSON
{
  "durationSeconds": integer
}
Campos
durationSeconds
(deprecated)

integer

Duração do Systrace em segundos. Deve estar entre 1 e 30 segundos. 0 desativa o systrace.

IosTestSetup

Uma descrição de como configurar um dispositivo iOS antes de executar o teste.

Representação JSON
{
  "networkProfile": string,
  "additionalIpas": [
    {
      object (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
Campos
networkProfile

string

O perfil de tráfego de rede usado para executar o teste. Os perfis de rede disponíveis podem ser consultados usando o tipo de ambiente NETWORK_CONFIGURATION ao chamar TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

additionalIpas[]

object ( FileReference )

Aplicativos iOS para instalar além daqueles que estão sendo testados diretamente.

pushFiles[]

object ( IosDeviceFile )

Lista de arquivos a serem enviados ao dispositivo antes de iniciar o teste.

pullDirectories[]

object ( IosDeviceFile )

Lista de diretórios no dispositivo para upload no Cloud Storage no final do teste.

Os diretórios devem estar em um diretório compartilhado (como /private/var/mobile/Media) ou em um diretório acessível dentro do sistema de arquivos do aplicativo (como /Documents), especificando o ID do pacote.

IosDeviceFile

Um arquivo ou diretório a ser instalado no dispositivo antes do início do teste.

Representação JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
Campos
content

object ( FileReference )

O arquivo de origem

bundleId

string

O ID do pacote do aplicativo onde esse arquivo reside.

Os aplicativos iOS colocam em sandbox seu próprio sistema de arquivos, portanto, os arquivos do aplicativo devem especificar qual aplicativo está instalado no dispositivo.

devicePath

string

Localização do arquivo no dispositivo, dentro do sistema de arquivos em área restrita do aplicativo

AndroidInstrumentaçãoTeste

Um teste de um aplicativo Android que pode controlar um componente Android independentemente de seu ciclo de vida normal. Os testes de instrumentação do Android executam um APK de aplicativo e testam o APK dentro do mesmo processo em um AndroidDevice virtual ou físico. Eles também especificam uma classe de executor de teste, como com.google.GoogleTestRunner, que pode variar de acordo com a estrutura de instrumentação específica escolhida.

Consulte https://developer.android.com/training/testing/fundamentals para obter mais informações sobre os tipos de testes do Android.

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

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

object ( FileReference )

Obrigatório. O APK que contém o código de teste a ser executado.

appPackageId

string

O pacote java para o aplicativo em teste. O valor padrão é determinado examinando o manifesto do aplicativo.

testPackageId

string

O pacote java para o teste ser executado. O valor padrão é determinado examinando o manifesto do aplicativo.

testRunnerClass

string

A classe InstrumentationTestRunner. O valor padrão é determinado examinando o manifesto do aplicativo.

testTargets[]

string

Cada destino deve ser totalmente qualificado com o nome do pacote ou nome da classe, em um destes formatos:

  • "pacote nomedopacote"
  • "class packageName.class_name"
  • "class packageName.class_name#method_name"

Se estiver vazio, todos os destinos no módulo serão executados.

orchestratorOption

enum ( OrchestratorOption )

A opção de executar cada teste dentro de sua própria invocação de instrumentação com o Android Test Orchestrator ou não. ** O Orchestrator é compatível apenas com AndroidJUnitRunner versão 1.1 ou superior! **O Orchestrator oferece os seguintes benefícios:

  • Nenhum estado compartilhado
  • Falhas são isoladas
  • Os registros têm escopo definido por teste

Consulte https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator para obter mais informações sobre o Android Test Orchestrator.

Se não for definido, o teste será executado sem o orquestrador.

shardingOption

object ( ShardingOption )

A opção de executar testes em vários fragmentos em paralelo.

Campo de união app_under_test . Obrigatório. app_under_test pode ser apenas um dos seguintes:
appApk

object ( FileReference )

O APK do aplicativo em teste.

appBundle

object ( AppBundle )

Um pacote de aplicativos multi-apk para o aplicativo em teste.

AppBundle

Um formato de arquivo Android App Bundle, contendo um arquivo BundleConfig.pb, um diretório de módulo base, zero ou mais diretórios de módulos de recursos dinâmicos.

Consulte https://developer.android.com/guide/app-bundle/build para obter orientação sobre como criar pacotes de aplicativos.

Representação JSON
{

  // Union field bundle can be only one of the following:
  "bundleLocation": {
    object (FileReference)
  }
  // End of list of possible types for union field bundle.
}
Campos
bundle de campos de união. Obrigatório. Informações de localização do pacote. bundle pode ser apenas um dos seguintes:
bundleLocation

object ( FileReference )

Arquivo .aab que representa o pacote de aplicativos em teste.

Opção Orquestrador

Especifica como executar o teste.

Enums
ORCHESTRATOR_OPTION_UNSPECIFIED Valor padrão: o servidor escolherá o modo. Atualmente implica que o teste será executado sem o orquestrador. No futuro, todos os testes de instrumentação serão executados com o orquestrador. O uso do orquestrador é altamente recomendado por causa de todos os benefícios que ele oferece.
USE_ORCHESTRATOR Execute o teste usando o orquestrador. ** Compatível apenas com AndroidJUnitRunner versão 1.1 ou superior! ** Recomendado.
DO_NOT_USE_ORCHESTRATOR Execute o teste sem usar o orquestrador.

Opção de fragmentação

Opções para ativar a fragmentação.

Representação JSON
{

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

option de campo união.

option pode ser apenas uma das seguintes:

uniformSharding

object ( UniformSharding )

Fragmenta uniformemente os casos de teste de acordo com um número total de fragmentos.

manualSharding

object ( ManualSharding )

Fragmenta casos de teste nos grupos especificados de pacotes, classes e/ou métodos.

smartSharding

object ( SmartSharding )

Teste de fragmentos com base em registros de tempo de casos de teste anteriores.

Fragmentação Uniforme

Fragmenta uniformemente os casos de teste de acordo com um número total de fragmentos.

Para testes de instrumentação, ele será traduzido para os argumentos "-e numShard" e "-e shardIndex" do AndroidJUnitRunner. Com a fragmentação uniforme habilitada, a especificação de qualquer um desses argumentos de fragmentação por meio de environmentVariables é inválida.

Com base no mecanismo de sharding que o AndroidJUnitRunner usa, não há garantia de que os casos de teste serão distribuídos uniformemente em todos os shards.

Representação JSON
{
  "numShards": integer
}
Campos
numShards

integer

Obrigatório. O número total de fragmentos a serem criados. Deve ser sempre um número positivo que não seja maior que o número total de casos de teste. Ao selecionar um ou mais dispositivos físicos, o número de fragmentos deve ser <= 50. Ao selecionar um ou mais dispositivos virtuais ARM, deve ser <= 200. Ao selecionar apenas dispositivos virtuais x86, deve ser <= 500 .

Fragmentação manual

Fragmenta casos de teste nos grupos especificados de pacotes, classes e/ou métodos.

Com a fragmentação manual habilitada, a especificação de alvos de teste por meio de EnvironmentVariables ou em InstrumentationTest é inválida.

Representação JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
Campos
testTargetsForShard[]

object ( TestTargetsForShard )

Obrigatório. Grupo de pacotes, classes e/ou métodos de teste a serem executados para cada fragmento criado manualmente. Você deverá especificar pelo menos um fragmento se esse campo estiver presente. Ao selecionar um ou mais dispositivos físicos, o número de testTargetsForShard repetidos deve ser <= 50. Ao selecionar um ou mais dispositivos virtuais ARM, deve ser <= 200. Ao selecionar apenas dispositivos virtuais x86, deve ser <= 500.

TestTargetsForShard

Alvos de teste para um fragmento.

Representação JSON
{
  "testTargets": [
    string
  ]
}
Campos
testTargets[]

string

Grupo de pacotes, classes e/ou métodos de teste a serem executados para cada fragmento. Os destinos precisam ser especificados no formato de argumento AndroidJUnitRunner. Por exemplo, "pacote com.my.packages" "class com.my.package.MyClass".

O número de testTargets deve ser maior que 0.

Fragmentação inteligente

Teste de fragmentos com base em registros de tempo de casos de teste anteriores.

Representação JSON
{
  "targetedShardDuration": string
}
Campos
targetedShardDuration

string ( Duration format)

A quantidade de tempo que os testes dentro de um fragmento devem levar.

Padrão: 300 segundos (5 minutos). O mínimo permitido: 120 segundos (2 minutos).

A contagem de fragmentos é definida dinamicamente com base no tempo, até o limite máximo de fragmentos (descrito abaixo). Para garantir pelo menos um caso de teste para cada fragmento, o número de fragmentos não excederá o número de casos de teste. A duração do fragmento será excedida se:

  • O limite máximo de fragmentos é atingido e há mais tempo de teste calculado restante para alocar em fragmentos.
  • Estima-se que qualquer teste individual seja mais longo do que a duração do fragmento alvo.

A duração do shard não é garantida porque o sharding inteligente usa histórico de casos de teste e durações padrão que podem não ser precisas. As regras para localizar os registros de tempo do caso de teste são:

  • Se o serviço tiver processado um caso de teste nos últimos 30 dias, será utilizado o registro do último caso de teste bem-sucedido.
  • Para novos casos de teste, será utilizada a duração média de outros casos de teste conhecidos.
  • Se não houver registros de tempo de caso de teste anteriores disponíveis, a duração padrão do caso de teste será de 15 segundos.

Como a duração real do fragmento pode exceder a duração do fragmento desejada, recomendamos que você defina o valor desejado pelo menos 5 minutos a menos que o tempo limite máximo de teste permitido (45 minutos para dispositivos físicos e 60 minutos para dispositivos virtuais) ou que use o tempo limite personalizado valor de tempo limite de teste que você definiu. Essa abordagem evita o cancelamento do fragmento antes que todos os testes possam ser concluídos.

Observe que há um limite para o número máximo de fragmentos. Ao selecionar um ou mais dispositivos físicos, o número de fragmentos deve ser <= 50. Ao selecionar um ou mais dispositivos virtuais ARM, deve ser <= 200. Ao selecionar apenas dispositivos virtuais x86, deve ser <= 500 . Para garantir pelo menos um caso de teste por fragmento, o número de fragmentos não excederá o número de casos de teste. Cada fragmento criado conta para a cota diária de testes.

Uma duração em segundos com até nove dígitos fracionários, terminando com ' s '. Exemplo: "3.5s" .

AndroidRoboTest

Um teste de um aplicativo Android que explora o aplicativo em um dispositivo Android virtual ou físico, encontrando culpados e falhas durante o processo.

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

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

string

O pacote java para o aplicativo em teste. O valor padrão é determinado examinando o manifesto do aplicativo.

appInitialActivity

string

A atividade inicial que deve ser usada para iniciar o aplicativo.

maxDepth
(deprecated)

integer

A profundidade máxima da pilha de travessia que o Robo pode explorar. Precisa ser pelo menos 2 para que o Robo explore o aplicativo além da primeira atividade. O padrão é 50.

maxSteps
(deprecated)

integer

O número máximo de etapas que o Robo pode executar. O padrão é sem limite.

roboDirectives[]

object ( RoboDirective )

Um conjunto de diretivas que o Robo deve aplicar durante o rastreamento. Isso permite que os usuários personalizem o rastreamento. Por exemplo, o nome de usuário e a senha de uma conta de teste podem ser fornecidos.

roboMode

enum ( RoboMode )

O modo em que o Robo deve ser executado. A maioria dos clientes deve permitir que o servidor preencha este campo automaticamente.

roboScript

object ( FileReference )

Um arquivo JSON com uma sequência de ações que o Robo deve realizar como prólogo para o rastreamento.

startingIntents[]

object ( RoboStartingIntent )

As intenções usadas para iniciar o aplicativo para rastreamento. Se nada for fornecido, a atividade principal do inicializador será iniciada. Se alguns forem fornecidos, apenas aqueles fornecidos serão iniciados (a atividade principal do iniciador deve ser fornecida explicitamente).

Campo de união app_under_test . Obrigatório. app_under_test pode ser apenas um dos seguintes:
appApk

object ( FileReference )

O APK do aplicativo em teste.

appBundle

object ( AppBundle )

Um pacote de aplicativos multi-apk para o aplicativo em teste.

RoboDirectiva

Direciona o Robo a interagir com um elemento de UI específico se ele for encontrado durante o rastreamento. Atualmente, o Robo pode realizar entrada de texto ou clique em elemento.

Representação JSON
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
Campos
resourceName

string

Obrigatório. O nome do recurso Android do elemento da UI de destino. Por exemplo, em Java: R.string.foo em xml: @string/foo Somente a parte "foo" é necessária. Documento de referência: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

O texto que Robo deve definir. Se deixada em branco, a diretiva será tratada como um CLIQUE no elemento correspondente ao resourceName.

actionType

enum ( RoboActionType )

Obrigatório. O tipo de ação que o Robo deve executar no elemento especificado.

RoboActionType

Ações que o Robo pode executar nos elementos da UI.

Enums
ACTION_TYPE_UNSPECIFIED NÃO USE. Apenas para versionamento proto.
SINGLE_CLICK Direcione o Robo para clicar no elemento especificado. Não operacional se o elemento especificado não for clicável.
ENTER_TEXT Direcione o Robo para inserir texto no elemento especificado. No-op se o elemento especificado não estiver habilitado ou não permitir a entrada de texto.
IGNORE Direcione o Robo para ignorar as interações com um elemento específico.

Modo Robo

O modo em que o Robo deve ser executado.

Enums
ROBO_MODE_UNSPECIFIED Isso significa que o servidor deve escolher o modo. Recomendado.
ROBO_VERSION_1 Executa o Robo no modo somente UIAutomator sem renunciar ao aplicativo
ROBO_VERSION_2 Executa o Robo no Espresso padrão com substituto do UIAutomator

RoboStartingIntent

Mensagem para especificar as atividades iniciais a serem rastreadas.

Representação JSON
{
  "timeout": string,

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

string ( Duration format)

Tempo limite em segundos para cada intenção.

Uma duração em segundos com até nove dígitos fracionários, terminando com ' s '. Exemplo: "3.5s" .

Campo de união starting_intent . Obrigatório. Detalhes da intenção para iniciar uma atividade. starting_intent pode ser apenas um dos seguintes:
launcherActivity

object ( LauncherActivityIntent )

Uma intenção que inicia a atividade principal do iniciador.

startActivity

object ( StartActivityIntent )

Uma intenção que inicia uma atividade com detalhes específicos.

LauncherActivityIntent

Especifica uma intenção que inicia a atividade principal do inicializador.

StartActivityIntent

Uma intenção inicial especificada por uma ação, uri e categorias.

Representação JSON
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
Campos
action

string

Nome da ação. Obrigatório para START_ACTIVITY.

uri

string

URI para a ação.

categories[]

string

Categorias de intenção a serem definidas na intenção.

AndroidTestLoop

Um teste de um aplicativo Android com um Test Loop. A intenção <intent-name> será adicionada implicitamente, já que Games é o único usuário desta API, por enquanto.

Representação JSON
{
  "appPackageId": string,
  "scenarios": [
    integer
  ],
  "scenarioLabels": [
    string
  ],

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

string

O pacote java para o aplicativo em teste. O padrão é determinado examinando o manifesto do aplicativo.

scenarios[]

integer

A lista de cenários que devem ser executados durante o teste. O padrão são todos os loops de teste, derivados do manifesto do aplicativo.

scenarioLabels[]

string

A lista de rótulos de cenário que devem ser executados durante o teste. Os rótulos do cenário devem ser mapeados para rótulos definidos no manifesto do aplicativo. Por exemplo, player_experiência e com.google.test.loops.player_experiência adicionam todos os loops rotulados no manifesto com o nome com.google.test.loops.player_ Experience à execução. Os cenários também podem ser especificados no campo cenários.

Campo de união app_under_test . Obrigatório. O pacote Android a ser testado. app_under_test pode ser apenas um dos seguintes:
appApk

object ( FileReference )

O APK do aplicativo em teste.

appBundle

object ( AppBundle )

Um pacote de aplicativos multi-apk para o aplicativo em teste.

Teste IosXc

Um teste de um aplicativo iOS que usa a estrutura XCTest. O Xcode suporta a opção "construir para teste", que gera um arquivo .xctestrun que contém uma especificação de teste (argumentos, métodos de teste, etc.). Este tipo de teste aceita um arquivo zip contendo o arquivo .xctestrun e o conteúdo correspondente do diretório Build/Products que contém todos os binários necessários para executar os testes.

Representação JSON
{
  "testsZip": {
    object (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
Campos
testsZip

object ( FileReference )

Obrigatório. O .zip que contém o arquivo .xctestrun e o conteúdo do diretório DerivedData/Build/Products. O arquivo .xctestrun neste zip será ignorado se o campo xctestrun for especificado.

xctestrun

object ( FileReference )

Um arquivo .xctestrun que substituirá o arquivo .xctestrun no zip de testes. Como o arquivo .xctestrun contém variáveis ​​de ambiente junto com métodos de teste para executar e/ou ignorar, isso pode ser útil para testes de fragmentação. O padrão é obtido do zip de testes.

xcodeVersion

string

A versão do Xcode que deve ser usada para o teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas. O padrão é a versão mais recente do Xcode compatível com o Firebase Test Lab.

appBundleId

string

Somente saída. O ID do pacote configurável do aplicativo em teste.

testSpecialEntitlements

boolean

A opção de testar direitos especiais de aplicativos. Definir isso assinaria novamente o aplicativo com direitos especiais com um identificador de aplicativo explícito. Atualmente oferece suporte para testar o direito do ambiente aps.

IosTestLoop

Um teste de um aplicativo iOS que implementa um ou mais cenários de loop de jogo. Este tipo de teste aceita um aplicativo arquivado (arquivo .ipa) e uma lista de cenários inteiros que serão executados no aplicativo sequencialmente.

Representação JSON
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
Campos
appIpa

object ( FileReference )

Obrigatório. O .ipa do aplicativo a ser testado.

scenarios[]

integer

A lista de cenários que devem ser executados durante o teste. O padrão é o cenário único 0 se não for especificado.

appBundleId

string

Somente saída. O ID do pacote configurável do aplicativo em teste.

Matriz Ambiental

A matriz de ambientes nos quais o teste será executado.

Representação JSON
{

  // Union field environment_matrix can be only one of the following:
  "androidMatrix": {
    object (AndroidMatrix)
  },
  "androidDeviceList": {
    object (AndroidDeviceList)
  },
  "iosDeviceList": {
    object (IosDeviceList)
  }
  // End of list of possible types for union field environment_matrix.
}
Campos
Campo de união environment_matrix . Obrigatório. A matriz ambiental. environment_matrix pode ser apenas um dos seguintes:
androidMatrix

object ( AndroidMatrix )

Uma matriz de dispositivos Android.

androidDeviceList

object ( AndroidDeviceList )

Uma lista de dispositivos Android; o teste será executado apenas nos dispositivos especificados.

iosDeviceList

object ( IosDeviceList )

Uma lista de dispositivos iOS.

AndroidMatrix

Um conjunto de permutações de configuração de dispositivos Android é definido pelo produto vetorial dos eixos fornecidos. Internamente, o AndroidMatrix fornecido será expandido para um conjunto de AndroidDevices.

Somente permutações suportadas serão instanciadas. Permutações inválidas (por exemplo, modelos/versões incompatíveis) são ignoradas.

Representação JSON
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
Campos
androidModelIds[]

string

Obrigatório. Os IDs do conjunto de dispositivos Android a serem usados. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

androidVersionIds[]

string

Obrigatório. Os IDs do conjunto de versão do sistema operacional Android a ser usado. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

locales[]

string

Obrigatório. O conjunto de localidades que o dispositivo de teste habilitará para teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

orientations[]

string

Obrigatório. O conjunto de orientações para testar. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

Lista de dispositivos Android

Uma lista de configurações de dispositivos Android nos quais o teste será executado.

Representação JSON
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
Campos
androidDevices[]

object ( AndroidDevice )

Obrigatório. Uma lista de dispositivos Android.

Dispositivo Android

Um único dispositivo Android.

Representação JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
Campos
androidModelId

string

Obrigatório. O ID do dispositivo Android a ser usado. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

androidVersionId

string

Obrigatório. O ID da versão do sistema operacional Android a ser usada. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

locale

string

Obrigatório. A localidade do dispositivo de teste usado para teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

orientation

string

Obrigatório. Como o dispositivo é orientado durante o teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

IosDeviceList

Uma lista de configurações de dispositivos iOS nos quais o teste será executado.

Representação JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
Campos
iosDevices[]

object ( IosDevice )

Obrigatório. Uma lista de dispositivos iOS.

Dispositivo iOS

Um único dispositivo iOS.

Representação JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
Campos
iosModelId

string

Obrigatório. O ID do dispositivo iOS a ser usado. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

iosVersionId

string

Obrigatório. O ID da versão principal do software iOS a ser usada. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

locale

string

Obrigatório. A localidade do dispositivo de teste usado para teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

orientation

string

Obrigatório. Como o dispositivo é orientado durante o teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas.

Execução de Teste

Um único teste executado em um único ambiente.

Representação JSON
{
  "id": string,
  "matrixId": string,
  "projectId": string,
  "testSpecification": {
    object (TestSpecification)
  },
  "shard": {
    object (Shard)
  },
  "environment": {
    object (Environment)
  },
  "state": enum (TestState),
  "toolResultsStep": {
    object (ToolResultsStep)
  },
  "timestamp": string,
  "testDetails": {
    object (TestDetails)
  }
}
Campos
id

string

Somente saída. ID exclusivo definido pelo serviço.

matrixId

string

Apenas saída. ID do TestMatrix que contém.

projectId

string

Apenas saída. O projeto de nuvem que possui a execução do teste.

testSpecification

object ( TestSpecification )

Somente saída. Como executar o teste.

shard

object ( Shard )

Somente saída. Detalhes sobre o fragmento.

environment

object ( Environment )

Apenas saída. Como as máquinas host estão configuradas.

state

enum ( TestState )

Apenas saída. Indica o progresso atual da execução do teste (por exemplo, FINISHED).

toolResultsStep

object ( ToolResultsStep )

Somente saída. Onde estão escritos os resultados desta execução.

timestamp

string ( Timestamp format)

Somente saída. A hora em que esta execução de teste foi criada inicialmente.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z" .

testDetails

object ( TestDetails )

Apenas saída. Detalhes adicionais sobre o teste em execução.

Fragmento

Apenas saída. Detalhes sobre o fragmento.

Representação JSON
{
  "shardIndex": integer,
  "numShards": integer,
  "testTargetsForShard": {
    object (TestTargetsForShard)
  },
  "estimatedShardDuration": string
}
Campos
shardIndex

integer

Apenas saída. O índice do fragmento entre todos os fragmentos.

numShards

integer

Apenas saída. O número total de fragmentos.

testTargetsForShard

object ( TestTargetsForShard )

Apenas saída. Teste os alvos para cada fragmento. Definido apenas para fragmentação manual.

estimatedShardDuration

string ( Duration format)

Apenas saída. A duração estimada do fragmento com base em registros de tempo de caso de teste anteriores, se disponíveis.

Uma duração em segundos com até nove dígitos fracionários, terminando com ' s '. Exemplo: "3.5s" .

Ambiente

O ambiente no qual o teste é executado.

Representação JSON
{

  // Union field environment can be only one of the following:
  "androidDevice": {
    object (AndroidDevice)
  },
  "iosDevice": {
    object (IosDevice)
  }
  // End of list of possible types for union field environment.
}
Campos
environment de campo da União. Obrigatório. O ambiente. environment pode ser apenas um dos seguintes:
androidDevice

object ( AndroidDevice )

Um dispositivo Android que deve ser usado com um teste Android.

iosDevice

object ( IosDevice )

Um dispositivo iOS que deve ser usado com um teste iOS.

Estado de teste

O estado (ou seja, progresso) de uma execução ou matriz de teste.

Enums
TEST_STATE_UNSPECIFIED Não use. Apenas para versionamento proto.
VALIDATING A execução ou matriz está sendo validada.
PENDING A execução ou matriz está aguardando a disponibilização de recursos.
RUNNING

A execução está sendo processada.

Só pode ser definido em uma execução.

FINISHED

A execução ou matriz terminou normalmente.

Em uma matriz, isso significa que o processamento no nível da matriz foi concluído normalmente, mas as execuções individuais podem estar em estado de ERRO.

ERROR A execução ou matriz foi interrompida porque encontrou uma falha de infraestrutura.
UNSUPPORTED_ENVIRONMENT

A execução não foi executada porque corresponde a um ambiente não suportado.

Só pode ser definido em uma execução.

INCOMPATIBLE_ENVIRONMENT

A execução não foi executada porque as entradas fornecidas são incompatíveis com o ambiente solicitado.

Exemplo: AndroidVersion solicitada é inferior à minSdkVersion do APK

Só pode ser definido em uma execução.

INCOMPATIBLE_ARCHITECTURE

A execução não foi executada porque as entradas fornecidas são incompatíveis com a arquitetura solicitada.

Exemplo: o dispositivo solicitado não suporta a execução do código nativo no APK fornecido

Só pode ser definido em uma execução.

CANCELLED

O usuário cancelou a execução.

Só pode ser definido em uma execução.

INVALID

A execução ou matriz não foi executada porque as entradas fornecidas não são válidas.

Exemplos: o arquivo de entrada não é do tipo esperado, está malformado/corrompido ou foi sinalizado como malware

Etapa de resultados da ferramenta

Representa um recurso da etapa de resultados da ferramenta.

Isso tem os resultados de um TestExecution.

Representação JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
Campos
projectId

string

Apenas saída. O projeto de nuvem que possui a etapa de resultados da ferramenta.

historyId

string

Apenas saída. Um ID do histórico de resultados da ferramenta.

executionId

string

Apenas saída. Uma ferramenta resulta em ID de execução.

stepId

string

Apenas saída. Um ID da etapa de resultados da ferramenta.

Detalhes do teste

Detalhes adicionais sobre o progresso do teste em execução.

Representação JSON
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
Campos
progressMessages[]

string

Apenas saída. Descrições detalhadas e legíveis por humanos do progresso do teste. Por exemplo: "Provisionando um dispositivo", "Iniciando teste".

Durante a execução, novos dados podem ser anexados ao final de progressMessages.

errorMessage

string

Somente saída. Se TestState for ERROR, essa string conterá detalhes legíveis por humanos sobre o erro.

Armazenamento de resultados

Locais onde os resultados da execução do teste são armazenados.

Representação JSON
{
  "googleCloudStorage": {
    object (GoogleCloudStorage)
  },
  "toolResultsHistory": {
    object (ToolResultsHistory)
  },
  "toolResultsExecution": {
    object (ToolResultsExecution)
  },
  "resultsUrl": string
}
Campos
googleCloudStorage

object ( GoogleCloudStorage )

Obrigatório.

toolResultsHistory

object ( ToolResultsHistory )

O histórico de resultados da ferramenta que contém a execução dos resultados da ferramenta na qual os resultados são gravados.

Caso não seja fornecido, o serviço escolherá um valor adequado.

toolResultsExecution

object ( ToolResultsExecution )

Somente saída. A ferramenta resulta na execução na qual os resultados são gravados.

resultsUrl

string

Somente saída. URL para os resultados no Firebase Web Console.

GoogleCloudStorage

Um local de armazenamento no armazenamento em nuvem do Google (GCS).

Representação JSON
{
  "gcsPath": string
}
Campos
gcsPath

string

Obrigatório. O caminho para um diretório no GCS que eventualmente conterá os resultados deste teste. O usuário solicitante deve ter acesso de gravação no bucket no caminho fornecido.

Histórico de resultados da ferramenta

Representa um recurso de histórico de resultados da ferramenta.

Representação JSON
{
  "projectId": string,
  "historyId": string
}
Campos
projectId

string

Obrigatório. O projeto de nuvem que possui o histórico de resultados da ferramenta.

historyId

string

Obrigatório. Um ID do histórico de resultados da ferramenta.

FerramentaResultadosExecução

Representa um recurso de execução de resultados de ferramenta.

Isso tem os resultados de um TestMatrix.

Representação JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
Campos
projectId

string

Somente saída. O projeto de nuvem que possui a ferramenta resulta na execução.

historyId

string

Apenas saída. Um ID do histórico de resultados da ferramenta.

executionId

string

Apenas saída. Uma ferramenta resulta em ID de execução.

Detalhes de Matriz Inválidos

O motivo detalhado pelo qual uma Matriz foi considerada INVÁLIDA.

Enums
INVALID_MATRIX_DETAILS_UNSPECIFIED Não use. Apenas para versionamento proto.
DETAILS_UNAVAILABLE A matriz é INVÁLIDA, mas não há mais detalhes disponíveis.
MALFORMED_APK Não foi possível analisar o APK do aplicativo de entrada.
MALFORMED_TEST_APK Não foi possível analisar o APK de teste de entrada.
NO_MANIFEST O AndroidManifest.xml não foi encontrado.
NO_PACKAGE_NAME O manifesto do APK não declara um nome de pacote.
INVALID_PACKAGE_NAME O ID do aplicativo APK (também conhecido como nome do pacote) é inválido. Consulte também https://developer.android.com/build/configure-app-module#set-application-id
TEST_SAME_AS_APP O pacote de teste e o pacote de aplicativos são iguais.
NO_INSTRUMENTATION O apk de teste não declara uma instrumentação.
NO_SIGNATURE O apk do aplicativo de entrada não possui assinatura.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE A classe do executor de teste especificada pelo usuário ou no arquivo de manifesto do APK de teste não é compatível com o Android Test Orchestrator. O Orchestrator é compatível apenas com AndroidJUnitRunner versão 1.1 ou superior. O orquestrador pode ser desativado usando DO_NOT_USE_ORCHESTRATOR OrchestratorOption.
NO_TEST_RUNNER_CLASS

O APK de teste não contém a classe do executor de teste especificada pelo usuário ou no arquivo de manifesto. Isso pode ser causado por um dos seguintes motivos:

  • o usuário forneceu um nome de classe de executor incorreto ou
  • o executor de teste não está integrado ao APK de teste (pode estar no APK do aplicativo).
NO_LAUNCHER_ACTIVITY Não foi possível encontrar uma atividade principal do iniciador.
FORBIDDEN_PERMISSIONS O aplicativo declara uma ou mais permissões que não são permitidas.
INVALID_ROBO_DIRECTIVES Há um conflito nas roboDirectives fornecidas.
INVALID_RESOURCE_NAME Há pelo menos um nome de recurso inválido nas diretivas robo fornecidas
INVALID_DIRECTIVE_ACTION Definição de ação inválida nas diretivas robo (por exemplo, uma ação de clicar ou ignorar inclui um campo de texto de entrada)
TEST_LOOP_INTENT_FILTER_NOT_FOUND Não há filtro de intenção de loop de teste ou o fornecido não está formatado corretamente.
SCENARIO_LABEL_NOT_DECLARED A solicitação contém um rótulo de cenário que não foi declarado no manifesto.
SCENARIO_LABEL_MALFORMED Ocorreu um erro ao analisar o valor de um rótulo.
SCENARIO_NOT_DECLARED A solicitação contém um número de cenário que não foi declarado no manifesto.
DEVICE_ADMIN_RECEIVER Device administrator applications are not allowed.
MALFORMED_XC_TEST_ZIP The zipped XCTest was malformed. The zip did not contain a single .xctestrun file and the contents of the DerivedData/Build/Products directory.
BUILT_FOR_IOS_SIMULATOR The zipped XCTest was built for the iOS simulator rather than for a physical device.
NO_TESTS_IN_XC_TEST_ZIP The .xctestrun file did not specify any test targets.
USE_DESTINATION_ARTIFACTS One or more of the test targets defined in the .xctestrun file specifies "UseDestinationArtifacts", which is disallowed.
TEST_NOT_APP_HOSTED XC tests which run on physical devices must have "IsAppHostedTestBundle" == "true" in the xctestrun file.
PLIST_CANNOT_BE_PARSED An Info.plist file in the XCTest zip could not be parsed.
TEST_ONLY_APK

The APK is marked as "testOnly". Deprecated and not currently used.

MALFORMED_IPA The input IPA could not be parsed.
MISSING_URL_SCHEME The application doesn't register the game loop URL scheme.
MALFORMED_APP_BUNDLE The iOS application bundle (.app) couldn't be processed.
NO_CODE_APK APK contains no code. See also https://developer.android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK Either the provided input APK path was malformed, the APK file does not exist, or the user does not have permission to access the APK file.
INVALID_APK_PREVIEW_SDK APK is built for a preview SDK which is unsupported
MATRIX_TOO_LARGE The matrix expanded to contain too many executions.
TEST_QUOTA_EXCEEDED Not enough test quota to run the executions in this matrix.
SERVICE_NOT_ACTIVATED A required cloud service api is not activated. See: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR There was an unknown permission issue running this test.

OutcomeSummary

Outcome summary for a finished test matrix.

Enums
OUTCOME_SUMMARY_UNSPECIFIED Do not use. For proto versioning only.
SUCCESS

The test matrix run was successful, for instance:

  • All the test cases passed.
  • Robo did not detect a crash of the application under test.
FAILURE

A run failed, for instance:

  • One or more test cases failed.
  • A test timed out.
  • The application under test crashed.
INCONCLUSIVE Something unexpected happened. The run should still be considered unsuccessful but this is likely a transient problem and re-running the test might be successful.
SKIPPED

All tests were skipped, for instance:

  • All device configurations were incompatible.

Methods

cancel

Cancels unfinished test executions in a test matrix.

create

Creates and runs a matrix of tests according to the given specifications.

get

Checks the status of a test matrix and the executions once they are created.