- Recurso: TestMatrix
- ClientInfo (em inglês)
- ClientInfoDetail
- TestSpecification (em inglês)
- Test Setup (em inglês)
- DeviceFile (link em inglês)
- ObbFile (link em inglês)
- FileReference (link em inglês)
- RegularFile (link em inglês)
- APK
- Conta
- GoogleAuto (link em inglês)
- EnvironmentVariable
- Configuração do Systrace.
- IosTestSetup (link em inglês)
- IosDeviceFile (link em inglês)
- AndroidInstrumentationTest (link em inglês)
- AppBundle (link em inglês)
- OrchestratorOption
- ShardingOption (link em inglês)
- UniformSharding (em inglês)
- Fragmentação manual
- TestTargetsForShard
- SmartSharding
- AndroidRoboTest (link em inglês)
- RoboDirective (link em inglês)
- RoboActionType (em inglês)
- RoboMode (link em inglês)
- RoboStartingIntent (em inglês).
- LauncherActivityIntent (em inglês)
- StartActivityIntent (em inglês)
- NoActivityIntent (em inglês)
- AndroidTestLoop (em inglês)
- IosXcTest (link em inglês)
- IosTestLoop (em inglês)
- IosRoboTest (em inglês)
- EnvironmentMatrix (link em inglês)
- AndroidMatrix (link em inglês)
- AndroidDeviceList (link em inglês)
- IosDeviceList (link em inglês)
- IosDevice (link em inglês)
- TestExecution (em inglês)
- Fragmento
- Ambiente
- TestState (em inglês)
- ToolResultsStep (link em inglês)
- TestDetails (link em inglês)
- ResultStorage (link em inglês)
- GoogleCloudStorage (link em inglês)
- ToolResultsHistory (em inglês)
- ToolResultsExecution (em inglês)
- InvalidMatrixDetails (link em inglês)
- MatrixErrorDetail (link em inglês)
- OutcomeSummary (em inglês)
- Métodos
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 ( |
Campos | |
---|---|
testMatrixId |
Apenas saída. Código exclusivo definido pelo serviço. |
projectId |
Projeto em nuvem que contém a matriz do teste. |
clientInfo |
Informações sobre o cliente que invocou o teste. |
testSpecification |
Obrigatório. Como executar o teste. |
environmentMatrix |
Obrigatório. Os dispositivos em que os testes estão sendo executados. |
testExecutions[] |
Apenas saída. A lista de execuções de teste que o serviço cria para essa matriz. |
resultStorage |
Obrigatório. Local em que os resultados para a matriz são gravados. |
state |
Apenas saída. Indica o progresso atual da matriz de teste. |
timestamp |
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: |
invalidMatrixDetails |
Apenas saída. Descreve porque a matriz é considerada inválida. Útil apenas para matrizes no estado INVALID. |
extendedInvalidMatrixDetails[] |
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 |
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 |
Somente saída. O resultado geral do teste. É definido somente quando o estado da matriz de teste é FINISHED. |
failFast |
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 ( |
Campos | |
---|---|
name |
Obrigatório. Nome do cliente, como gcloud. |
clientInfoDetails[] |
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 |
Obrigatório. A chave da informação detalhada do cliente. |
value |
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 |
Campos | |
---|---|
testTimeout |
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 " |
disableVideoRecording |
Desativa a gravação de vídeo. Pode reduzir a latência do teste. |
disablePerformanceMetrics |
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 |
Requisitos de configuração de teste para Android, por exemplo, arquivos para instalar, scripts de bootstrap. |
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 |
Um teste de instrumentação Android. |
androidRoboTest |
Um teste robo Android. |
androidTestLoop |
Um aplicativo Android com um loop de teste. |
iosXcTest |
Um XCTest para iOS, por meio de um arquivo .xctestrun. |
iosTestLoop |
Um aplicativo iOS com um loop de teste. |
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 ( |
Campos | |
---|---|
filesToPush[] |
Lista de arquivos para enviar ao dispositivo antes de iniciar o teste. |
directoriesToPull[] |
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[] |
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[] |
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 |
O dispositivo será conectado nesta conta enquanto durar o teste. |
networkProfile |
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[] |
Variáveis de ambiente a serem definidas para o teste. Aplicável somente para testes de instrumentação. |
systrace |
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 |
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 |
Campos | |
---|---|
Campo de união device_file . Obrigatório. device_file pode ser apenas de um dos tipos a seguir: |
|
obbFile |
Uma referência a um arquivo blob binário opaco. |
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 ( |
Campos | |
---|---|
obbFileName |
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 |
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 |
Campos | |
---|---|
Campo de união file . Obrigatório. A referência do arquivo. file pode ser apenas de um dos tipos a seguir: |
|
gcsPath |
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 ( |
Campos | |
---|---|
content |
Obrigatório. O arquivo de origem. |
devicePath |
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 ( |
Campos | |
---|---|
location |
O caminho para um APK a ser instalado no dispositivo antes do início do teste. |
packageName |
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 |
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 |
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 |
Chave para a variável de ambiente. |
value |
Valor para a variável de ambiente. |
Configuração do Systrace
Representação JSON |
---|
{ "durationSeconds": integer } |
Campos | |
---|---|
durationSeconds |
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 ( |
Campos | |
---|---|
networkProfile |
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[] |
Apps iOS a serem instalados além daqueles que estão sendo testados diretamente. |
pushFiles[] |
Lista de arquivos para enviar ao dispositivo antes de iniciar o teste. |
pullDirectories[] |
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 ( |
Campos | |
---|---|
content |
O arquivo de origem |
bundleId |
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 |
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 ( |
Campos | |
---|---|
testApk |
Obrigatório. O APK que contém o código de teste a ser executado. |
appPackageId |
O pacote Java para o aplicativo em teste. O valor padrão é determinado por meio de exame no manifesto do aplicativo. |
testPackageId |
O pacote Java para o teste a ser executado. O valor padrão é determinado por meio de exame no manifesto do aplicativo. |
testRunnerClass |
A classe InstrumentationTestRunner. O valor padrão é determinado por meio de exame no manifesto do aplicativo. |
testTargets[] |
Cada destino precisa estar totalmente qualificado com o nome do pacote ou da classe em um destes formatos:
Se vazio, todos os destinos no módulo serão executados. |
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:
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 |
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 |
O APK para o aplicativo em teste. |
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 |
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 |
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 |
Campos | |
---|---|
Campo de união
|
|
uniformSharding |
Fragmenta de maneira uniforme os casos de teste com base em um número total de fragmentos. |
manualSharding |
Fragmenta casos de teste nos grupos especificados de pacotes, classes e/ou métodos. |
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 |
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 ( |
Campos | |
---|---|
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[] |
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 |
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:
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:
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 " |
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 ( |
Campos | |
---|---|
appPackageId |
O pacote Java para o aplicativo em teste. O valor padrão é determinado por meio de exame no manifesto do aplicativo. |
appInitialActivity |
A atividade inicial que deve ser usada para iniciar o aplicativo. |
maxDepth |
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 |
O número máximo de etapas que o Robo pode executar. O padrão é sem limite. |
roboDirectives[] |
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 |
O modo em que o Robo deve ser executado. A maioria dos clientes deve permitir que o servidor preencha esse campo automaticamente. |
roboScript |
Um arquivo JSON com uma sequência de ações que o Robo deve executar como um prólogo para o rastreamento. |
startingIntents[] |
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 |
O APK para o aplicativo em teste. |
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 ( |
Campos | |
---|---|
resourceName |
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 |
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 |
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 |
Campos | |
---|---|
timeout |
Tempo limite em segundos para cada intent. Duração em segundos com até nove dígitos fracionários, terminando em " |
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 |
Uma intent que inicia a atividade principal da tela de início. |
startActivity |
Uma intent que inicia uma atividade com detalhes específicos. |
noActivity |
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 |
Nome da ação. Obrigatório para START_ACTIVITY. |
uri |
URI para a ação. |
categories[] |
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 |
Campos | |
---|---|
appPackageId |
O pacote Java para o aplicativo em teste. O padrão é determinado por meio de exame no manifesto do aplicativo. |
scenarios[] |
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[] |
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 |
O APK para o aplicativo em teste. |
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 ( |
Campos | |
---|---|
testsZip |
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 |
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 |
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 |
Apenas saída. O ID do pacote do aplicativo em teste. |
testSpecialEntitlements |
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 ( |
Campos | |
---|---|
appIpa |
Obrigatório. O .ipa do aplicativo a ser testado. |
scenarios[] |
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 |
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 ( |
Campos | |
---|---|
appIpa |
Obrigatório. Use o IPA armazenado nesse arquivo para executar o teste. |
appBundleId |
O ID do pacote do app em teste. Isso é determinado examinando o arquivo "Info.plist" do aplicativo . |
roboScript |
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 |
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 |
Uma matriz de dispositivos Android. |
androidDeviceList |
Uma lista de dispositivos Android. O teste será executado apenas nos dispositivos especificados. |
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[] |
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[] |
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[] |
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[] |
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 ( |
Campos | |
---|---|
androidDevices[] |
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 ( |
Campos | |
---|---|
iosDevices[] |
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 |
Obrigatório. O código do dispositivo iOS a ser usado. Use o TestEnvironmentDiscoveryService para ver as opções compatíveis. |
iosVersionId |
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 |
Obrigatório. O local do dispositivo de teste usado para teste. Use o TestEnvironmentDiscoveryService para ver as opções compatíveis. |
orientation |
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 ( |
Campos | |
---|---|
id |
Apenas saída. Código exclusivo definido pelo serviço. |
matrixId |
Apenas saída. Código do TestMatrix contido. |
projectId |
Apenas saída. O projeto em nuvem que possui a execução do teste. |
testSpecification |
Apenas saída. Como executar o teste. |
shard |
Apenas saída. Detalhes sobre o fragmento. |
environment |
Apenas saída. Como as máquinas host estão configuradas. |
state |
Apenas saída. Indica o progresso atual da execução do teste (por exemplo, CONCLUÍDO). |
toolResultsStep |
Apenas saída. Onde os resultados para esta execução são gravados. |
timestamp |
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: |
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 ( |
Campos | |
---|---|
shardIndex |
Apenas saída. O índice do fragmento entre todos os fragmentos. |
numShards |
Apenas saída. O número total de fragmentos. |
testTargetsForShard |
Apenas saída. Testar destinos para cada fragmento. Definido apenas para fragmentação manual. |
estimatedShardDuration |
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 " |
Ambiente
O ambiente em que o teste é executado.
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de união environment . Obrigatório. O ambiente. environment pode ser apenas de um dos tipos a seguir: |
|
androidDevice |
Um dispositivo Android que deve ser usado com um teste Android. |
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 |
Apenas saída. O projeto de nuvem que possui a etapa de resultados da ferramenta. |
historyId |
Apenas saída. Uma ferramenta resulta no código do histórico. |
executionId |
Apenas saída. Um código de execução de resultados de ferramenta. |
stepId |
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[] |
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 |
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 ( |
Campos | |
---|---|
googleCloudStorage |
Obrigatório. |
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 |
Apenas saída. A execução dos resultados da ferramenta na qual os resultados são gravados. |
resultsUrl |
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 |
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 |
Obrigatório. O projeto em nuvem que possui o histórico de resultados da ferramenta. |
historyId |
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 |
Apenas saída. O projeto de nuvem que possui a execução de resultados da ferramenta. |
historyId |
Apenas saída. Uma ferramenta resulta no código do histórico. |
executionId |
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:
|
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 |
Apenas saída. O motivo do erro. Este é um valor constante em UPPER_SNAKE_CASE que identifica a causa do erro. |
message |
Apenas saída. Uma mensagem legível sobre o erro na matriz de teste. Abre no campo |
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:
|
FAILURE |
Falha em uma execução, por exemplo:
|
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:
|
Métodos |
|
---|---|
|
Cancela execuções de teste inacabadas em uma matriz de teste. |
|
Cria e executa uma matriz de testes de acordo com as especificações dadas. |
|
Verifica o status de uma matriz de teste e das execuções depois que elas são criadas. |