REST Resource: projects.testMatrices

Recurso: TestMatrix

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

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),
  "extendedInvalidMatrixDetails": [
    {
      object (MatrixErrorDetail)
    }
  ],
  "flakyTestAttempts": integer,
  "outcomeSummary": enum (OutcomeSummary),
  "failFast": boolean
}
Campos
testMatrixId

string

Apenas saída. Código exclusivo definido pelo serviço.

projectId

string

Projeto em nuvem que contém a matriz do 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 em que os testes estão sendo executados.

testExecutions[]

object (TestExecution)

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

resultStorage

object (ResultStorage)

Obrigatório. Local em que os resultados para a matriz são gravados.

state

enum (TestState)

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

timestamp

string (Timestamp format)

Apenas saída. A hora em que essa 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)

Apenas saída. Descreve porque a matriz é considerada inválida. Útil apenas para matrizes no estado INVALID.

extendedInvalidMatrixDetails[]

object (MatrixErrorDetail)

Apenas saída. Detalhes sobre o motivo pelo qual uma matriz foi considerada inválida. Se várias verificações puderem ser realizadas com segurança, elas vão ser informadas, mas nenhuma suposição precisa ser feita sobre o tamanho da lista.

flakyTestAttempts

integer

O número de vezes que um TestExecution precisa ser repetido se um ou mais casos de teste falharem por qualquer motivo. O número máximo permitido de novas execuções é de 10.

O padrão é 0, o que significa que não há novas execuções.

outcomeSummary

enum (OutcomeSummary)

Somente saída. O resultado geral do teste. É definido somente quando o estado da matriz de teste é FINISHED.

failFast

boolean

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

Normalmente, duas ou mais tentativas são feitas quando um possível problema de infraestrutura é detectado.

Esse recurso é destinado a 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 por causa dessa expectativa.

ClientInfo

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.

ClientInfoDetail

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

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

string

Obrigatório. A chave da informação detalhada do cliente.

value

string

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

TestSpecification

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)
  },
  "iosRoboTest": {
    object (IosRoboTest)
  }
  // End of list of possible types for union field test.
}
Campos
testTimeout

string (Duration format)

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

Duração em segundos com até nove dígitos fracionários, terminando em "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.

Campo de união setup. Requisitos de configuração de teste. setup pode ser apenas de um dos tipos a seguir:
testSetup

object (TestSetup)

Requisitos de configuração de teste para Android, por exemplo, arquivos para instalar, scripts de bootstrap.

iosTestSetup

object (IosTestSetup)

Requisitos de configuração de teste para o iOS.

Campo de união test. Obrigatório. O tipo de teste a ser executado. test pode ser apenas de um dos tipos a seguir:
androidInstrumentationTest

object (AndroidInstrumentationTest)

Um teste de instrumentação Android.

androidRoboTest

object (AndroidRoboTest)

Um teste robo Android.

androidTestLoop

object (AndroidTestLoop)

Um aplicativo Android com um loop de teste.

iosXcTest

object (IosXcTest)

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

iosTestLoop

object (IosTestLoop)

Um aplicativo iOS com um loop de teste.

iosRoboTest

object (IosRoboTest)

Um teste Robo para iOS.

TestSetup

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

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

object (DeviceFile)

Lista de arquivos para enviar ao dispositivo antes de iniciar o teste.

directoriesToPull[]

string

Lista de diretórios no dispositivo para fazer upload para o GCS no final do teste. devem ser caminhos absolutos em /sdcard, /storage ou /data/local/tmp. Os nomes dos caminhos são restritos aos caracteres a-z A-Z 0-9 _ - . + e /

Observação: os caminhos /sdcard e /data serão disponibilizados e tratados como substituições implícitas de caminho. Por exemplo, se /sdcard em um determinado dispositivo não corresponder ao armazenamento externo, o sistema o substituirá pelo prefixo do caminho de armazenamento externo do dispositivo.

initialSetupApks[]

object (Apk)

Opcional. APKs de configuração inicial a serem instalados antes da instalação do app em teste. Atualmente a quantidade está limitada a 100.

additionalApks[]

object (Apk)

APKs para instalar além daqueles testados diretamente. Eles serão instalados após o app em teste. Atualmente a quantidade está limitada a 100.

account

object (Account)

O dispositivo será conectado nesta conta enquanto durar 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 somente para testes de instrumentação.

systrace
(deprecated)

object (SystraceSetup)

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

dontAutograntPermissions

boolean

Define se todas as permissões de execução precisam ser concedidas na instalação do app

DeviceFile

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 de um dos tipos a seguir:
obbFile

object (ObbFile)

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

regularFile

object (RegularFile)

Uma referência a um arquivo normal.

ObbFile

Um arquivo blob binário opaco a ser instalado 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 precisa estar de acordo 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 blob binário opaco (OBB) a ser instalado no dispositivo.

FileReference

Uma referência a um arquivo, usada 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
Campo de união file. Obrigatório. A referência do arquivo. file pode ser apenas de um dos tipos a seguir:
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 pelo URL (codificação percentual)

RegularFile

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. Local onde colocar o conteúdo no dispositivo. Precisa ser um caminho absoluto na lista de permissões. Se o arquivo existir, ele será substituído. Os seguintes diretórios do lado do dispositivo e qualquer um dos subdiretórios deles estão na lista de permissões:

${EXTERNAL_STORAGE}, /sdcard ou /storage

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

A especificação de um caminho fora dessas árvores de diretório é inválida.

Os caminhos /sdcard e /data serão disponibilizados e tratados como substituições implícitas de caminho. Por exemplo, se /sdcard em um determinado dispositivo não corresponder ao armazenamento externo, o sistema o substituirá pelo prefixo do caminho de armazenamento externo do dispositivo e copiará o arquivo para esse local.

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

Apk

Um arquivo de pacote do Android a ser instalado.

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 a ser instalado. O valor é determinado por meio de exame no manifesto do aplicativo.

Account

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 em sua finalidade (por exemplo, Google) e no mecanismo de login (por exemplo, nome de usuário e senha). account_type pode ser apenas de um dos tipos a seguir:
googleAuto

object (GoogleAuto)

Uma conta de login automática do Google.

GoogleAuto

Esse tipo não tem campos.

Permite o login automático da 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. As contas de teste podem ser reutilizadas. Muitos aplicativos mostram o conjunto completo de funcionalidades quando uma conta está presente no dispositivo. Fazer o login no dispositivo com essas contas geradas permite testar mais funcionalidades.

EnvironmentVariable

Um par de chave-valor passada 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)

Apps iOS a serem instalados além daqueles que estão sendo testados diretamente.

pushFiles[]

object (IosDeviceFile)

Lista de arquivos para enviar ao dispositivo antes de iniciar o teste.

pullDirectories[]

object (IosDeviceFile)

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

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

Arquivo do Dispositivo

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 app em que esse arquivo reside.

Os apps iOS colocam o próprio sistema de arquivos no sandbox. Portanto, os arquivos do app precisam especificar qual app foi instalado no dispositivo.

devicePath

string

Localização do arquivo no dispositivo, dentro do sistema de arquivos no sandbox do aplicativo

AndroidInstrumentationTest

Um teste de um aplicativo Android que pode controlar um componente Android de modo independente do ciclo de vida normal. Os testes de instrumentação Android executam um APK de aplicativo e testam o APK no mesmo processo em um AndroidDevice virtual ou físico. Eles também especificam uma classe do executor de testes, como com.google.GoogleTestRunner, que pode variar de acordo com o framework de instrumentação escolhido.

Consulte https://developer.android.com/training/testing/fundamentals para ver mais informações sobre os tipos de teste 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 por meio de exame no manifesto do aplicativo.

testPackageId

string

O pacote Java para o teste a ser executado. O valor padrão é determinado por meio de exame no manifesto do aplicativo.

testRunnerClass

string

A classe InstrumentationTestRunner. O valor padrão é determinado por meio de exame no manifesto do aplicativo.

testTargets[]

string

Cada destino precisa estar totalmente qualificado com o nome do pacote ou da classe em um destes formatos:

  • "nomedopacote"
  • "class packageName.class_name"
  • "classe packageName.class_name#methodName"

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

orchestratorOption

enum (OrchestratorOption)

A opção de executar cada teste na própria chamada de instrumentação com o Android Test Orchestrator ou não. ** O Orchestrator é compatível apenas com a versão 1.1 ou mais recente do AndroidJUnitRunner. ** O Orchestrator oferece os seguintes benefícios:

  • Nenhum estado compartilhado
  • Falhas isoladas
  • O escopo dos registros é definido por teste

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

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

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 de um dos tipos a seguir:
appApk

object (FileReference)

O APK para o aplicativo em teste.

appBundle

object (AppBundle)

Um pacote de aplicativos com vários APKs para o aplicativo em teste.

AppBundle

Um formato de arquivo do Android App Bundle, contendo um arquivo BundleConfig.pb, um diretório do módulo-base, zero ou mais diretórios de módulo de recurso dinâmico.

Consulte https://developer.android.com/guide/app-bundle/build para ver orientações 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
Campo de união bundle. Obrigatório. Informações do local do pacote. bundle pode ser apenas de um dos tipos a seguir:
bundleLocation

object (FileReference)

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

OrchestratorOption

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 incentivado por todos os benefícios que ele oferece.
USE_ORCHESTRATOR Execute o teste usando o orquestrador. ** Compatível apenas com a versão 1.1 ou mais recente do AndroidJUnitRunner. ** 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

Campo de união option.

option pode ser apenas de um dos tipos a seguir:

uniformSharding

object (UniformSharding)

Fragmenta de maneira uniforme os casos de teste com base em 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)

Fragmentos o teste com base em registros de tempo de casos de teste anteriores.

UniformSharding

Fragmenta de maneira uniforme os casos de teste com base em um número total de fragmentos.

Para testes de instrumentação, será traduzido para "-e numShard" e “-e shardIndex” Argumentos AndroidJUnitRunner. Com a fragmentação uniforme ativada, a especificação de um desses argumentos de fragmentação usando environmentVariables é inválida.

Com base no mecanismo de fragmentação usado pelo AndroidJUnitRunner, não há garantia de que os casos de teste serão distribuídos de maneira uniforme em todos os fragmentos.

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

integer

Obrigatório. O número total de fragmentos a serem criados. Precisa 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 precisa ser <= 50. Quando você seleciona um ou mais dispositivos virtuais ARM, o valor precisa ser menor ou igual a 200. Quando você seleciona apenas dispositivos virtuais x86, o valor precisa ser menor ou igual a 500.

Fragmentação manual

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

Com a fragmentação manual ativada, a especificação de destinos de teste via 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. Será necessário especificar pelo menos um fragmento se este campo estiver presente. Quando você seleciona um ou mais dispositivos físicos, o número de testTargetsForShard repetidos precisa ser maior ou igual a 50. Quando você seleciona um ou mais dispositivos virtuais ARM, o valor precisa ser menor ou igual a 200. Quando você seleciona apenas dispositivos virtuais x86, o valor precisa ser menor ou igual a 500.

TestTargetsForShard

Destinos 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, "package com.my.packages" "class com.my.package.MyClass".

O número de testTargets precisa ser maior que zero.

Fragmentação inteligente

Fragmentos o teste com base em registros de tempo de casos de teste anteriores.

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

string (Duration format)

O tempo que os testes devem durar em um fragmento.

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 vai exceder o número de casos de teste. A duração do fragmento será excedida se:

  • O limite máximo de fragmentos foi 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 segmentado.

A duração do fragmento não é garantida porque a fragmentação inteligente usa o histórico de casos de teste e durações padrão que podem não ser precisas. As regras para encontrar os registros de tempo dos casos de teste são:

  • Se o serviço tiver processado um caso de teste nos últimos 30 dias, será usado o registro do caso de teste bem-sucedido mais recente.
  • A duração média de outros casos de teste conhecidos será usada para novos casos de teste.
  • Se não houver registros de tempo anteriores para casos de teste 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 segmentado, recomendamos que você defina o valor segmentado pelo menos 5 minutos a menos do que o tempo limite máximo de teste permitido (45 minutos para dispositivos físicos e 60 minutos para o virtual) ou use o valor personalizado do tempo limite de teste definido. Essa abordagem evita o cancelamento do fragmento antes que todos os testes possam ser concluídos.

Há um limite para o número máximo de fragmentos. Ao selecionar um ou mais dispositivos físicos, o número de fragmentos precisa ser <= 50. Quando você seleciona um ou mais dispositivos virtuais ARM, o valor precisa ser menor ou igual a 200. Quando você seleciona apenas dispositivos virtuais x86, o valor precisa ser menor ou igual a 500. Para garantir pelo menos um caso de teste por fragmento, o número de fragmentos não vai exceder o número de casos de teste. Cada fragmento criado é contabilizado na cota diária de testes.

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

AndroidRoboTest

Um teste de um aplicativo Android que explora o aplicativo em um dispositivo Android virtual ou físico, encontrando erros e falhas conforme o andamento.

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 por meio de exame no 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 traversal que o Robo pode explorar. Precisa ser pelo menos 2 para fazer o Robo explorar 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. 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 informados.

roboMode

enum (RoboMode)

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

roboScript

object (FileReference)

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

startingIntents[]

object (RoboStartingIntent)

As intenções usadas para iniciar o aplicativo para o rastreamento. Se nenhum for informado, a atividade principal do ativador será ativada. Se alguns forem informados, apenas estes 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 de um dos tipos a seguir:
appApk

object (FileReference)

O APK para o aplicativo em teste.

appBundle

object (AppBundle)

Um pacote de aplicativos com vários APKs para o aplicativo em teste.

RoboDirective

Direciona o Robo a interagir com um elemento de interface do usuário específico, se for encontrado durante o rastreamento. Atualmente, o Robo pode executar entrada de texto ou clique de elemento.

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

string

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

inputText

string

O texto ao qual o Robo é direcionado para definir. Se deixado em branco, a diretiva será tratada como CLIQUE no elemento correspondente ao nome do recurso.

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 em elementos da interface do usuário.

Enums
ACTION_TYPE_UNSPECIFIED NÃO USE. Apenas para versões proto.
SINGLE_CLICK Direcione o Robo para clicar no elemento especificado. Ambiente autônomo se o elemento especificado não for clicável.
ENTER_TEXT Direcione o Robo para inserir texto no elemento especificado. Ambiente autônomo se o elemento especificado não estiver ativado 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 nova assinatura do app
ROBO_VERSION_2 Executa o Robo no Espresso padrão com substituto do UIAutomator

RoboStartingIntent

Mensagem para especificar as atividades iniciais que devem ser rastreadas.

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

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

string (Duration format)

Tempo limite em segundos para cada intent.

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

Campo de união starting_intent. Obrigatório. Detalhes da intent para iniciar uma atividade. starting_intent pode ser apenas de um dos tipos a seguir:
launcherActivity

object (LauncherActivityIntent)

Uma intent que inicia a atividade principal da tela de início.

startActivity

object (StartActivityIntent)

Uma intent que inicia uma atividade com detalhes específicos.

noActivity

object (NoActivityIntent)

Ignora a atividade inicial

LauncherActivityIntent

Esse tipo não tem campos.

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

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 ser definidas na intenção.

Intent NoActivityIntent

Esse tipo não tem campos.

Ignora a atividade inicial

AndroidTestLoop

Um teste de um aplicativo Android com um loop de teste. A intenção <intent-name> será implicitamente adicionada, já que Games é o único usuário dessa 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 por meio de exame no manifesto do aplicativo.

scenarios[]

integer

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

scenarioLabels[]

string

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

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

object (FileReference)

O APK para o aplicativo em teste.

appBundle

object (AppBundle)

Um pacote de aplicativos com vários APKs para o aplicativo em teste.

IosXcTest

Um teste de um aplicativo iOS que usa o framework XCTest. O Xcode é compatível com a opção "build for testing", que gera um arquivo .xctestrun contendo uma especificação de teste (argumentos, métodos de teste etc.). Esse 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 contendo 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 modificará o arquivo .xctestrun no teste zip. Como o arquivo .xctestrun contém variáveis de ambiente junto com métodos de teste para executar e/ou ignorar, pode ser útil para testes de sharding. O padrão é retirado do teste zip.

xcodeVersion

string

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

appBundleId

string

Apenas saída. O ID do pacote do aplicativo em teste.

testSpecialEntitlements

boolean

A opção para testar direitos especiais do app. Definir isso assinaria novamente o app com direitos especiais com um identificador de aplicativo explícito. No momento, oferece suporte ao teste do direito aps-environment.

IosTestLoop

Um teste de um aplicativo iOS que implementa um ou mais cenários de loop de jogo. Esse tipo de teste aceita um aplicativo arquivado (arquivo .ipa) e uma lista de cenários com números inteiros que serão executados no app em sequência.

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 precisam ser executados durante o teste. Se não for especificado, o padrão será o cenário 0.

appBundleId

string

Apenas saída. O ID do pacote do aplicativo em teste.

Teste do IosRobo

Um teste que explora um aplicativo iOS em um dispositivo iOS.

Representação JSON
{
  "appIpa": {
    object (FileReference)
  },
  "appBundleId": string,
  "roboScript": {
    object (FileReference)
  }
}
Campos
appIpa

object (FileReference)

Obrigatório. Use o IPA armazenado nesse arquivo para executar o teste.

appBundleId

string

O ID do pacote do app em teste. Isso é determinado examinando o arquivo "Info.plist" do aplicativo .

roboScript

object (FileReference)

Um Roboscript opcional para personalizar o rastreamento. Consulte https://firebase.google.com/docs/test-lab/android/robo-scripts-reference para ver mais informações sobre Roboscripts.

EnvironmentMatrix

A matriz de ambientes em que o teste deve 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 do ambiente. environment_matrix pode ser apenas de um dos tipos a seguir:
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 do dispositivo Android é definido pelo produto cruzado dos eixos especificados. Internamente, o AndroidMatrix fornecido será expandido em um conjunto de AndroidDevices.

Somente permutações compatíveis serão instanciadas. As 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 códigos do conjunto de dispositivos Android que devem ser usados. Use o TestEnvironmentDiscoveryService para ver as opções compatíveis.

androidVersionIds[]

string

Obrigatório. Os códigos do conjunto da versão do sistema operacional Android a ser usado. Use o TestEnvironmentDiscoveryService para ver as opções compatíveis.

locales[]

string

Obrigatório. O conjunto de locais que o dispositivo de teste habilitará para teste. Use o TestEnvironmentDiscoveryService para ver as opções compatíveis.

orientations[]

string

Obrigatório. O conjunto de orientações com o qual realizar o teste. Use o TestEnvironmentDiscoveryService para ver as opções compatíveis.

AndroidDeviceList

Uma lista de configurações de dispositivos Android em que o teste deve ser executado.

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

object (AndroidDevice)

Obrigatório. Uma lista de dispositivos Android.

IosDeviceList

Uma lista de configurações de dispositivos iOS nas quais o teste deve ser executado.

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

object (IosDevice)

Obrigatório. Uma lista de dispositivos iOS.

IosDevice

Um único dispositivo iOS.

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

string

Obrigatório. O código do dispositivo iOS a ser usado. Use o TestEnvironmentDiscoveryService para ver as opções compatíveis.

iosVersionId

string

Obrigatório. O código da versão principal do software iOS a ser usada. Use o TestEnvironmentDiscoveryService para ver as opções compatíveis.

locale

string

Obrigatório. O local do dispositivo de teste usado para teste. Use o TestEnvironmentDiscoveryService para ver as opções compatíveis.

orientation

string

Obrigatório. Indica a orientação do dispositivo durante o teste. Use o TestEnvironmentDiscoveryService para ver as opções compatíveis.

TestExecution

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

Apenas saída. Código exclusivo definido pelo serviço.

matrixId

string

Apenas saída. Código do TestMatrix contido.

projectId

string

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

testSpecification

object (TestSpecification)

Apenas saída. Como executar o teste.

shard

object (Shard)

Apenas 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, CONCLUÍDO).

toolResultsStep

object (ToolResultsStep)

Apenas saída. Onde os resultados para esta execução são gravados.

timestamp

string (Timestamp format)

Apenas saída. A hora em que essa 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. Testar destinos para cada fragmento. Definido apenas para fragmentação manual.

estimatedShardDuration

string (Duration format)

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

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

Ambiente

O ambiente em que 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
Campo de união environment. Obrigatório. O ambiente. environment pode ser apenas de um dos tipos a seguir:
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 do iOS.

TestState

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

Enums
TEST_STATE_UNSPECIFIED Não use. Apenas para versões proto.
VALIDATING A execução ou matriz está sendo validada.
PENDING A execução ou matriz está aguardando que os recursos se tornem disponíveis.
RUNNING

A execução está sendo processada no momento.

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 um 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 compatível.

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: o AndroidVersion solicitado é menor que o 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 é compatível com 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á inválido/corrompido ou foi sinalizado como malware.

ToolResultsStep

Representa um recurso da etapa de resultados da ferramenta.

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. Uma ferramenta resulta no código do histórico.

executionId

string

Apenas saída. Um código de execução de resultados de ferramenta.

stepId

string

Apenas saída. Uma ferramenta resulta no código da etapa.

TestDetails

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 legíveis por humanos do progresso do teste. Por exemplo: "Provisioning a device", "Starting Test".

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

errorMessage

string

Apenas saída. Se o TestState for ERROR, essa sequência conterá detalhes legíveis sobre o erro.

ResultStorage

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.

Se não for fornecido, o serviço escolherá um valor apropriado.

toolResultsExecution

object (ToolResultsExecution)

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

resultsUrl

string

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

GoogleCloudStorage

Um local de armazenamento na nuvem do Google (GCS).

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

string

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

ToolResultsHistory

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

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

string

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

historyId

string

Obrigatório. Uma ferramenta resulta no código do histórico.

ToolResultsExecution

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

Tem os resultados de um TestMatrix.

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

string

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

historyId

string

Apenas saída. Uma ferramenta resulta no código do histórico.

executionId

string

Apenas saída. Um código de execução de resultados de ferramenta.

InvalidMatrixDetails

A razão detalhada pela qual uma matriz foi considerada INVALID.

Enums
INVALID_MATRIX_DETAILS_UNSPECIFIED Não use. Apenas para versões proto.
DETAILS_UNAVAILABLE A matriz é INVALID, mas não há mais detalhes disponíveis.
MALFORMED_APK Não foi possível analisar o aplicativo de entrada APK.
MALFORMED_TEST_APK Não foi possível analisar o teste de entrada APK.
NO_MANIFEST Não foi possível encontrar o AndroidManifest.xml.
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/studio/build/application-id
TEST_SAME_AS_APP O pacote de testes e de aplicativos são os mesmos.
NO_INSTRUMENTATION O APK de teste não declara uma instrumentação.
NO_SIGNATURE O APK do aplicativo de entrada não tem uma assinatura.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE A classe do executor de testes 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 a versão 1.1 ou mais recente do AndroidJUnitRunner. O Orchestrator pode ser desabilitado usando a OrchestratorOption DO_NOT_USE_ORCHESTRATOR.
NO_TEST_RUNNER_CLASS

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

  • o usuário informou um nome de classe de executor incorreto; ou
  • o executor de testes não é integrado ao APK de teste (pode estar no APK do app);
NO_LAUNCHER_ACTIVITY Não foi possível encontrar uma atividade principal do ativador.
FORBIDDEN_PERMISSIONS O aplicativo declara uma ou mais permissões que não são permitidas.
INVALID_ROBO_DIRECTIVES Existe um conflito nos roboDirectives fornecidos.
INVALID_RESOURCE_NAME Há pelo menos um nome de recurso inválido nas diretivas Robo fornecidas
INVALID_DIRECTIVE_ACTION Definição inválida de ação nas diretivas automáticas (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 intent de loop de teste ou o que foi 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 Aplicativos de administrador de dispositivo não são permitidos.
MALFORMED_XC_TEST_ZIP O XCTest zipado estava malformado. O zip não continha um único arquivo .xctestrun e o conteúdo do diretório DerivedData/Build/Products.
BUILT_FOR_IOS_SIMULATOR O XCTest compactado foi criado para o simulador do iOS e não para um dispositivo físico.
NO_TESTS_IN_XC_TEST_ZIP O arquivo .xctestrun não especificou nenhum destino de teste.
USE_DESTINATION_ARTIFACTS Um ou mais dos destinos do teste definidos no arquivo .xctestrun especificam "UseDestinationArtifacts", que não é permitido.
TEST_NOT_APP_HOSTED Os testes XC executados em dispositivos físicos precisam ter "IsAppHostedTestBundle" == "true" no arquivo xctestrun.
PLIST_CANNOT_BE_PARSED Não foi possível analisar um arquivo Info.plist no zip do XCTest.
TEST_ONLY_APK

O APK está marcado como "testOnly". Obsoleto e não mais utilizado.

MALFORMED_IPA Não foi possível analisar o IPA de entrada.
MISSING_URL_SCHEME O aplicativo não registra o esquema de URL de loop de jogo.
MALFORMED_APP_BUNDLE Não foi possível processar o pacote de aplicativos iOS (.app).
NO_CODE_APK O APK não contém código. Veja também https://developer.android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK O caminho do APK de entrada fornecido estava incorreto, o arquivo APK não existe ou o usuário não tem permissão para acessar o arquivo APK.
INVALID_APK_PREVIEW_SDK O APK foi criado para um SDK de visualização não compatível.
MATRIX_TOO_LARGE A matriz foi expandida para conter muitas execuções.
TEST_QUOTA_EXCEEDED Não há cota de teste suficiente para executar as execuções nesta matriz.
SERVICE_NOT_ACTIVATED Uma API de serviço de nuvem necessária não está ativada. Consulte: https://firebase.google.com/docs/test-lab/android/seleciona#requirements
UNKNOWN_PERMISSION_ERROR Ocorreu um problema de permissão desconhecido ao executar este teste.

MatrixErrorDetail

Descreve um único erro ou problema em uma matriz.

Representação JSON
{
  "reason": string,
  "message": string
}
Campos
reason

string

Apenas saída. O motivo do erro. Este é um valor constante em UPPER_SNAKE_CASE que identifica a causa do erro.

message

string

Apenas saída. Uma mensagem legível sobre o erro na matriz de teste. Abre no campo reason com mais detalhes e possíveis opções para corrigir o problema.

Resumo do resultado

Resumo do resultado de uma matriz de teste concluída.

Enums
OUTCOME_SUMMARY_UNSPECIFIED Não use. Apenas para versões proto.
SUCCESS

A execução da matriz de teste foi bem-sucedida, por exemplo:

  • Todos os casos de teste foram aprovados.
  • O Robo não detectou uma falha do aplicativo em teste.
FAILURE

Falha em uma execução, por exemplo:

  • Falha em um ou mais casos de teste.
  • Um teste expirou.
  • O aplicativo em teste falhou.
INCONCLUSIVE Ocorreu um erro inesperado. A execução ainda será considerada malsucedida, mas é provável que seja um problema transitório. Uma nova execução do teste pode ser bem-sucedida.
SKIPPED

Todos os testes foram ignorados, por exemplo:

  • Todas as configurações do dispositivo eram incompatíveis.

Métodos

cancel

Cancela execuções de teste inacabadas em uma matriz de teste.

create

Cria e executa uma matriz de testes de acordo com as especificações dadas.

get

Verifica o status de uma matriz de teste e das execuções depois que elas são criadas.