- Recurso: TestMatrix
- Informações do cliente
- Detalhes de informações do cliente
- Especificação do teste
- Configuração de teste
- Arquivo de dispositivo
- Arquivo Obb
- Referência de arquivo
- Arquivo Regular
- Apk
- Conta
- GoogleAuto
- Variável de ambiente
- Configuração do Systrace
- IosTestSetup
- IosDeviceFile
- AndroidInstrumentaçãoTeste
- AppBundle
- Opção Orquestrador
- Opção de fragmentação
- Fragmentação Uniforme
- Fragmentação manual
- TestTargetsForShard
- Fragmentação inteligente
- AndroidRoboTest
- RoboDirectiva
- RoboActionType
- Modo Robo
- RoboStartingIntent
- LauncherActivityIntent
- StartActivityIntent
- AndroidTestLoop
- Teste IosXc
- IosTestLoop
- Matriz Ambiental
- AndroidMatrix
- Lista de dispositivos Android
- Dispositivo Android
- IosDeviceList
- Dispositivo iOS
- Execução de Teste
- Fragmento
- Ambiente
- Estado de teste
- Etapa de resultados da ferramenta
- Detalhes do teste
- Armazenamento de resultados
- GoogleCloudStorage
- Histórico de resultados da ferramenta
- FerramentaResultadosExecução
- Detalhes de Matriz Inválidos
- Resumo do resultado
- Métodos
Recurso: TestMatrix
TestMatrix captura todos os detalhes sobre um teste. Ele contém a configuração do ambiente, especificação de teste, execuções de teste e estado e resultado geral.
Representação JSON |
---|
{ "testMatrixId": string, "projectId": string, "clientInfo": { object ( |
Campos | |
---|---|
testMatrixId | Somente saída. ID exclusivo definido pelo serviço. |
projectId | O projeto de nuvem que possui a matriz de teste. |
clientInfo | Informações sobre o cliente que invocou o teste. |
testSpecification | Obrigatório. Como executar o teste. |
environmentMatrix | Obrigatório. Os dispositivos nos quais os testes estão sendo executados. |
testExecutions[] | Somente saída. A lista de execuções de teste que o serviço cria para esta matriz. |
resultStorage | Obrigatório. Onde os resultados da matriz são escritos. |
state | Somente saída. Indica o progresso atual da matriz de teste. |
timestamp | Somente saída. A hora em que esta matriz de teste foi criada inicialmente. Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: |
invalidMatrixDetails | Somente saída. Descreve por que a matriz é considerada inválida. Útil apenas para matrizes no estado INVÁLIDO. |
flakyTestAttempts | O número de vezes que um TestExecution deverá ser tentado novamente se um ou mais de seus casos de teste falharem por qualquer motivo. O número máximo de repetições permitido é 10. O padrão é 0, o que implica que não há repetições. |
outcomeSummary | Somente saída. O resultado geral do teste. Definido apenas quando o estado da matriz de teste for FINISHED. |
failFast | Se for verdade, apenas uma única tentativa será feita para executar cada execução/fragmento na matriz. Tentativas de teste instáveis não são afetadas. Normalmente, são feitas 2 ou mais tentativas se for detectado um possível problema de infraestrutura. Esse recurso é para cargas de trabalho sensíveis à latência. A incidência de falhas de execução pode ser significativamente maior para matrizes fail-fast e o suporte é mais limitado devido a essa expectativa. |
Informações do cliente
Informações sobre o cliente que invocou o teste.
Representação JSON |
---|
{
"name": string,
"clientInfoDetails": [
{
object ( |
Campos | |
---|---|
name | Obrigatório. Nome do cliente, como gcloud. |
clientInfoDetails[] | A lista de informações detalhadas sobre o cliente. |
Detalhes de informações do cliente
Par chave-valor de informações detalhadas sobre o cliente que invocou o teste. Exemplos: {'Versão', '1.0'}, {'Release Track', 'BETA'}.
Representação JSON |
---|
{ "key": string, "value": string } |
Campos | |
---|---|
key | Obrigatório. A chave das informações detalhadas do cliente. |
value | Obrigatório. O valor das informações detalhadas do cliente. |
Especificação do teste
Uma descrição de como executar o teste.
Representação JSON |
---|
{ "testTimeout": string, "disableVideoRecording": boolean, "disablePerformanceMetrics": boolean, // Union field |
Campos | |
---|---|
testTimeout | Tempo máximo que uma execução de teste pode ser executada antes de ser cancelada automaticamente. O valor padrão é 5 min. Uma duração em segundos com até nove dígitos fracionários, terminando com ' |
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. |
setup do campo união. Requisitos de configuração de teste. setup pode ser apenas uma das seguintes: | |
testSetup | Teste os requisitos de configuração para Android, por exemplo, arquivos para instalação, scripts de inicialização. |
iosTestSetup | Teste os requisitos de configuração para iOS. |
test de campo da União. Obrigatório. O tipo de teste a ser executado. test pode ser apenas um dos seguintes: | |
androidInstrumentationTest | Um teste de instrumentação Android. |
androidRoboTest | Um teste robótico Android. |
androidTestLoop | Um aplicativo Android com um loop de teste. |
iosXcTest | Um iOS XCTest, por meio de um arquivo .xctestrun. |
iosTestLoop | Um aplicativo iOS com um loop de teste. |
Configuração de teste
Uma descrição de como configurar o dispositivo Android antes de executar o teste.
Representação JSON |
---|
{ "filesToPush": [ { object ( |
Campos | |
---|---|
filesToPush[] | Lista de arquivos a serem enviados ao dispositivo antes de iniciar o teste. |
directoriesToPull[] | Lista de diretórios do dispositivo para upload no GCS ao final do teste; eles devem ser caminhos absolutos em /sdcard, /storage ou /data/local/tmp. Os nomes de caminho são restritos a caracteres az AZ 0-9 _ - . + e / Nota: Os caminhos /sdcard e /data serão disponibilizados e tratados como substituições implícitas de caminho. Por exemplo, se /sdcard em um dispositivo específico não for mapeado para armazenamento externo, o sistema o substituirá pelo prefixo do caminho de armazenamento externo para esse dispositivo. |
additionalApks[] | APKs para instalar além daqueles que estão sendo testados diretamente. Atualmente limitado a 100. |
account | O dispositivo estará conectado nesta conta durante 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 apenas para testes de instrumentação). |
systrace | Configuração do Systrace para a execução. Obsoleto: Systrace usou Python 2, que foi desativado em 01/01/2020. O Systrace não é mais compatível com a API Cloud Testing e nenhum arquivo Systrace será fornecido nos resultados. |
dontAutograntPermissions | Se deve-se impedir que todas as permissões de tempo de execução sejam concedidas na instalação do aplicativo |
Arquivo de dispositivo
Uma descrição de arquivo de dispositivo único.
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de união device_file . Obrigatório. device_file pode ser apenas um dos seguintes: | |
obbFile | Uma referência a um arquivo blob binário opaco. |
regularFile | Uma referência a um arquivo normal. |
Arquivo Obb
Um arquivo blob binário opaco para instalar no dispositivo antes do início do teste.
Representação JSON |
---|
{
"obbFileName": string,
"obb": {
object ( |
Campos | |
---|---|
obbFileName | Obrigatório. Nome do arquivo OBB que deve estar em conformidade com o formato especificado pelo Android, por exemplo, [main|patch].0300110.com.example.android.obb que será instalado em <shared-storage>/Android/obb/<package-name>/ no dispositivo. |
obb | Obrigatório. Arquivo(s) Opaque Binary Blob (OBB) para instalar no dispositivo. |
Referência de arquivo
Uma referência a um arquivo, usado para entradas do usuário.
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
file de campo de união. Obrigatório. A referência do arquivo. file pode ser apenas um dos seguintes: | |
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 por URL (codificação percentual) |
Arquivo Regular
Um arquivo ou diretório a ser instalado no dispositivo antes do início do teste.
Representação JSON |
---|
{
"content": {
object ( |
Campos | |
---|---|
content | Obrigatório. O arquivo de origem. |
devicePath | Obrigatório. Onde colocar o conteúdo no dispositivo. Deve ser um caminho absoluto e permitido. Se o arquivo existir, ele será substituído. Os seguintes diretórios do lado do dispositivo e qualquer um de seus subdiretórios estão na lista de permissões: ${EXTERNAL_STORAGE}, /sdcard ou /storage ${ANDROID_DATA}/local/tmp ou /data/local/tmp Especificar um caminho fora dessas árvores de diretório é inválido. Os caminhos /sdcard e /data serão disponibilizados e tratados como substituições implícitas de caminho. Por exemplo, se /sdcard em um dispositivo específico não mapear para armazenamento externo, o sistema irá substituí-lo pelo prefixo do caminho de armazenamento externo para esse dispositivo e copiar o arquivo lá. É altamente recomendável usar a API de ambiente no aplicativo e testar o código para acessar arquivos no dispositivo de forma portátil. |
Apk
Um arquivo de pacote Android para instalar.
Representação JSON |
---|
{
"location": {
object ( |
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 ser instalado. O valor é determinado examinando o manifesto do aplicativo. |
Conta
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 na sua finalidade (por exemplo, Google) e qual é o seu mecanismo de login (por exemplo, nome de usuário e senha). account_type pode ser apenas um dos seguintes: | |
googleAuto | Uma conta de login automático do Google. |
GoogleAuto
Ativa o login automático na conta do Google. Se definido, o serviço gera automaticamente uma conta de teste do Google e a adiciona ao dispositivo, antes de executar o teste. Observe que as contas de teste podem ser reutilizadas. Muitos aplicativos mostram seu conjunto completo de funcionalidades quando uma conta está presente no dispositivo. O login no dispositivo com essas contas geradas permite testar mais funcionalidades.
Variável de ambiente
Um par chave-valor passado como uma variável de ambiente para o teste.
Representação JSON |
---|
{ "key": string, "value": string } |
Campos | |
---|---|
key | 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[] | Aplicativos iOS para instalar além daqueles que estão sendo testados diretamente. |
pushFiles[] | Lista de arquivos a serem enviados ao dispositivo antes de iniciar o teste. |
pullDirectories[] | Lista de diretórios no dispositivo para upload no Cloud Storage no final do teste. Os diretórios devem estar em um diretório compartilhado (como /private/var/mobile/Media) ou em um diretório acessível dentro do sistema de arquivos do aplicativo (como /Documents), especificando o ID do pacote. |
IosDeviceFile
Um arquivo ou diretório a ser instalado no dispositivo antes do início do teste.
Representação JSON |
---|
{
"content": {
object ( |
Campos | |
---|---|
content | O arquivo de origem |
bundleId | O ID do pacote do aplicativo onde esse arquivo reside. Os aplicativos iOS colocam em sandbox seu próprio sistema de arquivos, portanto, os arquivos do aplicativo devem especificar qual aplicativo está instalado no dispositivo. |
devicePath | Localização do arquivo no dispositivo, dentro do sistema de arquivos em área restrita do aplicativo |
AndroidInstrumentaçãoTeste
Um teste de um aplicativo Android que pode controlar um componente Android independentemente de seu ciclo de vida normal. Os testes de instrumentação do Android executam um APK de aplicativo e testam o APK dentro do mesmo processo em um AndroidDevice virtual ou físico. Eles também especificam uma classe de executor de teste, como com.google.GoogleTestRunner, que pode variar de acordo com a estrutura de instrumentação específica escolhida.
Consulte https://developer.android.com/training/testing/fundamentals para obter mais informações sobre os tipos de testes do Android.
Representação JSON |
---|
{ "testApk": { object ( |
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 examinando o manifesto do aplicativo. |
testPackageId | O pacote java para o teste ser executado. O valor padrão é determinado examinando o manifesto do aplicativo. |
testRunnerClass | A classe InstrumentationTestRunner. O valor padrão é determinado examinando o manifesto do aplicativo. |
testTargets[] | Cada destino deve ser totalmente qualificado com o nome do pacote ou nome da classe, em um destes formatos:
Se estiver vazio, todos os destinos no módulo serão executados. |
orchestratorOption | A opção de executar cada teste dentro de sua própria invocação de instrumentação com o Android Test Orchestrator ou não. ** O Orchestrator é compatível apenas com AndroidJUnitRunner versão 1.1 ou superior! **O Orchestrator oferece os seguintes benefícios:
Consulte https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator para obter mais informações sobre o Android Test Orchestrator. Se não for definido, o teste será executado sem o orquestrador. |
shardingOption | A opção de executar testes em vários fragmentos em paralelo. |
Campo de união app_under_test . Obrigatório. app_under_test pode ser apenas um dos seguintes: | |
appApk | O APK do aplicativo em teste. |
appBundle | Um pacote de aplicativos multi-apk para o aplicativo em teste. |
AppBundle
Um formato de arquivo Android App Bundle, contendo um arquivo BundleConfig.pb, um diretório de módulo base, zero ou mais diretórios de módulos de recursos dinâmicos.
Consulte https://developer.android.com/guide/app-bundle/build para obter orientação sobre como criar pacotes de aplicativos.
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
bundle de campos de união. Obrigatório. Informações de localização do pacote. bundle pode ser apenas um dos seguintes: | |
bundleLocation | Arquivo .aab que representa o pacote de aplicativos em teste. |
Opção Orquestrador
Especifica como executar o teste.
Enums | |
---|---|
ORCHESTRATOR_OPTION_UNSPECIFIED | Valor padrão: o servidor escolherá o modo. Atualmente implica que o teste será executado sem o orquestrador. No futuro, todos os testes de instrumentação serão executados com o orquestrador. O uso do orquestrador é altamente recomendado por causa de todos os benefícios que ele oferece. |
USE_ORCHESTRATOR | Execute o teste usando o orquestrador. ** Compatível apenas com AndroidJUnitRunner versão 1.1 ou superior! ** Recomendado. |
DO_NOT_USE_ORCHESTRATOR | Execute o teste sem usar o orquestrador. |
Opção de fragmentação
Opções para ativar a fragmentação.
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
| |
uniformSharding | Fragmenta uniformemente os casos de teste de acordo com um número total de fragmentos. |
manualSharding | Fragmenta casos de teste nos grupos especificados de pacotes, classes e/ou métodos. |
smartSharding | Teste de fragmentos com base em registros de tempo de casos de teste anteriores. |
Fragmentação Uniforme
Fragmenta uniformemente os casos de teste de acordo com um número total de fragmentos.
Para testes de instrumentação, ele será traduzido para os argumentos "-e numShard" e "-e shardIndex" do AndroidJUnitRunner. Com a fragmentação uniforme habilitada, a especificação de qualquer um desses argumentos de fragmentação por meio de environmentVariables
é inválida.
Com base no mecanismo de sharding que o AndroidJUnitRunner usa, não há garantia de que os casos de teste serão distribuídos uniformemente em todos os shards.
Representação JSON |
---|
{ "numShards": integer } |
Campos | |
---|---|
numShards | Obrigatório. O número total de fragmentos a serem criados. Deve ser sempre um número positivo que não seja maior que o número total de casos de teste. Ao selecionar um ou mais dispositivos físicos, o número de fragmentos deve ser <= 50. Ao selecionar um ou mais dispositivos virtuais ARM, deve ser <= 200. Ao selecionar apenas dispositivos virtuais x86, deve ser <= 500 . |
Fragmentação manual
Fragmenta casos de teste nos grupos especificados de pacotes, classes e/ou métodos.
Com a fragmentação manual habilitada, a especificação de alvos de teste por meio de EnvironmentVariables ou em InstrumentationTest é inválida.
Representação JSON |
---|
{
"testTargetsForShard": [
{
object ( |
Campos | |
---|---|
testTargetsForShard[] | Obrigatório. Grupo de pacotes, classes e/ou métodos de teste a serem executados para cada fragmento criado manualmente. Você deverá especificar pelo menos um fragmento se esse campo estiver presente. Ao selecionar um ou mais dispositivos físicos, o número de testTargetsForShard repetidos deve ser <= 50. Ao selecionar um ou mais dispositivos virtuais ARM, deve ser <= 200. Ao selecionar apenas dispositivos virtuais x86, deve ser <= 500. |
TestTargetsForShard
Alvos de teste para um fragmento.
Representação JSON |
---|
{ "testTargets": [ string ] } |
Campos | |
---|---|
testTargets[] | Grupo de pacotes, classes e/ou métodos de teste a serem executados para cada fragmento. Os destinos precisam ser especificados no formato de argumento AndroidJUnitRunner. Por exemplo, "pacote com.my.packages" "class com.my.package.MyClass". O número de testTargets deve ser maior que 0. |
Fragmentação inteligente
Teste de fragmentos com base em registros de tempo de casos de teste anteriores.
Representação JSON |
---|
{ "targetedShardDuration": string } |
Campos | |
---|---|
targetedShardDuration | A quantidade de tempo que os testes dentro de um fragmento devem levar. Padrão: 300 segundos (5 minutos). O mínimo permitido: 120 segundos (2 minutos). A contagem de fragmentos é definida dinamicamente com base no tempo, até o limite máximo de fragmentos (descrito abaixo). Para garantir pelo menos um caso de teste para cada fragmento, o número de fragmentos não excederá o número de casos de teste. A duração do fragmento será excedida se:
A duração do shard não é garantida porque o sharding inteligente usa histórico de casos de teste e durações padrão que podem não ser precisas. As regras para localizar os registros de tempo do caso de teste são:
Como a duração real do fragmento pode exceder a duração do fragmento desejada, recomendamos que você defina o valor desejado pelo menos 5 minutos a menos que o tempo limite máximo de teste permitido (45 minutos para dispositivos físicos e 60 minutos para dispositivos virtuais) ou que use o tempo limite personalizado valor de tempo limite de teste que você definiu. Essa abordagem evita o cancelamento do fragmento antes que todos os testes possam ser concluídos. Observe que há um limite para o número máximo de fragmentos. Ao selecionar um ou mais dispositivos físicos, o número de fragmentos deve ser <= 50. Ao selecionar um ou mais dispositivos virtuais ARM, deve ser <= 200. Ao selecionar apenas dispositivos virtuais x86, deve ser <= 500 . Para garantir pelo menos um caso de teste por fragmento, o número de fragmentos não excederá o número de casos de teste. Cada fragmento criado conta para a cota diária de testes. Uma duração em segundos com até nove dígitos fracionários, terminando com ' |
AndroidRoboTest
Um teste de um aplicativo Android que explora o aplicativo em um dispositivo Android virtual ou físico, encontrando culpados e falhas durante o processo.
Representação JSON |
---|
{ "appPackageId": string, "appInitialActivity": string, "maxDepth": integer, "maxSteps": integer, "roboDirectives": [ { object ( |
Campos | |
---|---|
appPackageId | O pacote java para o aplicativo em teste. O valor padrão é determinado examinando o manifesto do aplicativo. |
appInitialActivity | A atividade inicial que deve ser usada para iniciar o aplicativo. |
maxDepth | A profundidade máxima da pilha de travessia que o Robo pode explorar. Precisa ser pelo menos 2 para que o Robo explore o aplicativo além da primeira atividade. O padrão é 50. |
maxSteps | 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. Isso permite que os usuários personalizem o rastreamento. Por exemplo, o nome de usuário e a senha de uma conta de teste podem ser fornecidos. |
roboMode | O modo em que o Robo deve ser executado. A maioria dos clientes deve permitir que o servidor preencha este campo automaticamente. |
roboScript | Um arquivo JSON com uma sequência de ações que o Robo deve realizar como prólogo para o rastreamento. |
startingIntents[] | As intenções usadas para iniciar o aplicativo para rastreamento. Se nada for fornecido, a atividade principal do inicializador será iniciada. Se alguns forem fornecidos, apenas aqueles fornecidos serão iniciados (a atividade principal do iniciador deve ser fornecida explicitamente). |
Campo de união app_under_test . Obrigatório. app_under_test pode ser apenas um dos seguintes: | |
appApk | O APK do aplicativo em teste. |
appBundle | Um pacote de aplicativos multi-apk para o aplicativo em teste. |
RoboDirectiva
Direciona o Robo a interagir com um elemento de UI específico se ele for encontrado durante o rastreamento. Atualmente, o Robo pode realizar entrada de texto ou clique em elemento.
Representação JSON |
---|
{
"resourceName": string,
"inputText": string,
"actionType": enum ( |
Campos | |
---|---|
resourceName | Obrigatório. O nome do recurso Android do elemento da UI de destino. Por exemplo, em Java: R.string.foo em xml: @string/foo Somente a parte "foo" é necessária. Documento de referência: https://developer.android.com/guide/topics/resources/accessing-resources.html |
inputText | O texto que Robo deve definir. Se deixada em branco, a diretiva será tratada como um CLIQUE no elemento correspondente ao resourceName. |
actionType | Obrigatório. O tipo de ação que o Robo deve executar no elemento especificado. |
RoboActionType
Ações que o Robo pode executar nos elementos da UI.
Enums | |
---|---|
ACTION_TYPE_UNSPECIFIED | NÃO USE. Apenas para versionamento proto. |
SINGLE_CLICK | Direcione o Robo para clicar no elemento especificado. Não operacional se o elemento especificado não for clicável. |
ENTER_TEXT | Direcione o Robo para inserir texto no elemento especificado. No-op se o elemento especificado não estiver habilitado ou não permitir a entrada de texto. |
IGNORE | Direcione o Robo para ignorar as interações com um elemento específico. |
Modo Robo
O modo em que o Robo deve ser executado.
Enums | |
---|---|
ROBO_MODE_UNSPECIFIED | Isso significa que o servidor deve escolher o modo. Recomendado. |
ROBO_VERSION_1 | Executa o Robo no modo somente UIAutomator sem renunciar ao aplicativo |
ROBO_VERSION_2 | Executa o Robo no Espresso padrão com substituto do UIAutomator |
RoboStartingIntent
Mensagem para especificar as atividades iniciais a serem rastreadas.
Representação JSON |
---|
{ "timeout": string, // Union field |
Campos | |
---|---|
timeout | Tempo limite em segundos para cada intenção. Uma duração em segundos com até nove dígitos fracionários, terminando com ' |
Campo de união starting_intent . Obrigatório. Detalhes da intenção para iniciar uma atividade. starting_intent pode ser apenas um dos seguintes: | |
launcherActivity | Uma intenção que inicia a atividade principal do iniciador. |
startActivity | Uma intenção que inicia uma atividade com detalhes específicos. |
LauncherActivityIntent
Especifica uma intenção que inicia a atividade principal do inicializador.
StartActivityIntent
Uma intenção inicial especificada por uma ação, uri e categorias.
Representação JSON |
---|
{ "action": string, "uri": string, "categories": [ string ] } |
Campos | |
---|---|
action | Nome da ação. Obrigatório para START_ACTIVITY. |
uri | URI para a ação. |
categories[] | Categorias de intenção a serem definidas na intenção. |
AndroidTestLoop
Um teste de um aplicativo Android com um Test Loop. A intenção <intent-name> será adicionada implicitamente, já que Games é o único usuário desta API, por enquanto.
Representação JSON |
---|
{ "appPackageId": string, "scenarios": [ integer ], "scenarioLabels": [ string ], // Union field |
Campos | |
---|---|
appPackageId | O pacote java para o aplicativo em teste. O padrão é determinado examinando o manifesto do aplicativo. |
scenarios[] | A lista de cenários que devem ser executados durante o teste. O padrão são todos os loops de teste, derivados do manifesto do aplicativo. |
scenarioLabels[] | A lista de rótulos de cenário que devem ser executados durante o teste. Os rótulos do cenário devem ser mapeados para rótulos definidos no manifesto do aplicativo. Por exemplo, player_experiência e com.google.test.loops.player_experiência adicionam todos os loops rotulados no manifesto com o nome com.google.test.loops.player_ Experience à execução. Os cenários também podem ser especificados no campo cenários. |
Campo de união app_under_test . Obrigatório. O pacote Android a ser testado. app_under_test pode ser apenas um dos seguintes: | |
appApk | O APK do aplicativo em teste. |
appBundle | Um pacote de aplicativos multi-apk para o aplicativo em teste. |
Teste IosXc
Um teste de um aplicativo iOS que usa a estrutura XCTest. O Xcode suporta a opção "construir para teste", que gera um arquivo .xctestrun que contém uma especificação de teste (argumentos, métodos de teste, etc.). Este tipo de teste aceita um arquivo zip contendo o arquivo .xctestrun e o conteúdo correspondente do diretório Build/Products que contém todos os binários necessários para executar os testes.
Representação JSON |
---|
{ "testsZip": { object ( |
Campos | |
---|---|
testsZip | Obrigatório. O .zip que contém o arquivo .xctestrun e o conteúdo do diretório DerivedData/Build/Products. O arquivo .xctestrun neste zip será ignorado se o campo xctestrun for especificado. |
xctestrun | Um arquivo .xctestrun que substituirá o arquivo .xctestrun no zip de testes. Como o arquivo .xctestrun contém variáveis de ambiente junto com métodos de teste para executar e/ou ignorar, isso pode ser útil para testes de fragmentação. O padrão é obtido do zip de testes. |
xcodeVersion | A versão do Xcode que deve ser usada para o teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas. O padrão é a versão mais recente do Xcode compatível com o Firebase Test Lab. |
appBundleId | Somente saída. O ID do pacote configurável do aplicativo em teste. |
testSpecialEntitlements | A opção de testar direitos especiais de aplicativos. Definir isso assinaria novamente o aplicativo com direitos especiais com um identificador de aplicativo explícito. Atualmente oferece suporte para testar o direito do ambiente aps. |
IosTestLoop
Um teste de um aplicativo iOS que implementa um ou mais cenários de loop de jogo. Este tipo de teste aceita um aplicativo arquivado (arquivo .ipa) e uma lista de cenários inteiros que serão executados no aplicativo sequencialmente.
Representação JSON |
---|
{
"appIpa": {
object ( |
Campos | |
---|---|
appIpa | Obrigatório. O .ipa do aplicativo a ser testado. |
scenarios[] | A lista de cenários que devem ser executados durante o teste. O padrão é o cenário único 0 se não for especificado. |
appBundleId | Somente saída. O ID do pacote configurável do aplicativo em teste. |
Matriz Ambiental
A matriz de ambientes nos quais o teste será executado.
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de união environment_matrix . Obrigatório. A matriz ambiental. environment_matrix pode ser apenas um dos seguintes: | |
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 de dispositivos Android é definido pelo produto vetorial dos eixos fornecidos. Internamente, o AndroidMatrix fornecido será expandido para um conjunto de AndroidDevices.
Somente permutações suportadas serão instanciadas. Permutações inválidas (por exemplo, modelos/versões incompatíveis) são ignoradas.
Representação JSON |
---|
{ "androidModelIds": [ string ], "androidVersionIds": [ string ], "locales": [ string ], "orientations": [ string ] } |
Campos | |
---|---|
androidModelIds[] | Obrigatório. Os IDs do conjunto de dispositivos Android a serem usados. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
androidVersionIds[] | Obrigatório. Os IDs do conjunto de versão do sistema operacional Android a ser usado. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
locales[] | Obrigatório. O conjunto de localidades que o dispositivo de teste habilitará para teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
orientations[] | Obrigatório. O conjunto de orientações para testar. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
Lista de dispositivos Android
Uma lista de configurações de dispositivos Android nos quais o teste será executado.
Representação JSON |
---|
{
"androidDevices": [
{
object ( |
Campos | |
---|---|
androidDevices[] | Obrigatório. Uma lista de dispositivos Android. |
Dispositivo Android
Um único dispositivo Android.
Representação JSON |
---|
{ "androidModelId": string, "androidVersionId": string, "locale": string, "orientation": string } |
Campos | |
---|---|
androidModelId | Obrigatório. O ID do dispositivo Android a ser usado. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
androidVersionId | Obrigatório. O ID da versão do sistema operacional Android a ser usada. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
locale | Obrigatório. A localidade do dispositivo de teste usado para teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
orientation | Obrigatório. Como o dispositivo é orientado durante o teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
IosDeviceList
Uma lista de configurações de dispositivos iOS nos quais o teste será executado.
Representação JSON |
---|
{
"iosDevices": [
{
object ( |
Campos | |
---|---|
iosDevices[] | Obrigatório. Uma lista de dispositivos iOS. |
Dispositivo iOS
Um único dispositivo iOS.
Representação JSON |
---|
{ "iosModelId": string, "iosVersionId": string, "locale": string, "orientation": string } |
Campos | |
---|---|
iosModelId | Obrigatório. O ID do dispositivo iOS a ser usado. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
iosVersionId | Obrigatório. O ID da versão principal do software iOS a ser usada. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
locale | Obrigatório. A localidade do dispositivo de teste usado para teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
orientation | Obrigatório. Como o dispositivo é orientado durante o teste. Use o TestEnvironmentDiscoveryService para obter opções suportadas. |
Execução de Teste
Um único teste executado em um único ambiente.
Representação JSON |
---|
{ "id": string, "matrixId": string, "projectId": string, "testSpecification": { object ( |
Campos | |
---|---|
id | Somente saída. ID exclusivo definido pelo serviço. |
matrixId | Somente saída. ID do TestMatrix que contém. |
projectId | Somente saída. O projeto de nuvem que possui a execução do teste. |
testSpecification | Somente saída. Como executar o teste. |
shard | Somente saída. Detalhes sobre o fragmento. |
environment | Somente saída. Como as máquinas host estão configuradas. |
state | Somente saída. Indica o progresso atual da execução do teste (por exemplo, FINISHED). |
toolResultsStep | Somente saída. Onde estão escritos os resultados desta execução. |
timestamp | Somente saída. A hora em que esta execução de teste foi criada inicialmente. Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: |
testDetails | Somente saída. Detalhes adicionais sobre o teste em execução. |
Fragmento
Somente saída. Detalhes sobre o fragmento.
Representação JSON |
---|
{
"shardIndex": integer,
"numShards": integer,
"testTargetsForShard": {
object ( |
Campos | |
---|---|
shardIndex | Somente saída. O índice do fragmento entre todos os fragmentos. |
numShards | Somente saída. O número total de fragmentos. |
testTargetsForShard | Somente saída. Teste os alvos para cada fragmento. Definido apenas para fragmentação manual. |
estimatedShardDuration | Somente saída. A duração estimada do fragmento com base em registros de tempo de caso de teste anteriores, se disponíveis. Uma duração em segundos com até nove dígitos fracionários, terminando com ' |
Ambiente
O ambiente no qual o teste é executado.
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
environment de campo da União. Obrigatório. O ambiente. environment pode ser apenas um dos seguintes: | |
androidDevice | Um dispositivo Android que deve ser usado com um teste Android. |
iosDevice | Um dispositivo iOS que deve ser usado com um teste iOS. |
Estado de teste
O estado (ou seja, progresso) de uma execução ou matriz de teste.
Enums | |
---|---|
TEST_STATE_UNSPECIFIED | Não use. Apenas para versionamento proto. |
VALIDATING | A execução ou matriz está sendo validada. |
PENDING | A execução ou matriz está aguardando a disponibilização de recursos. |
RUNNING | A execução está sendo processada. Só pode ser definido em uma execução. |
FINISHED | A execução ou matriz terminou normalmente. Em uma matriz, isso significa que o processamento no nível da matriz foi concluído normalmente, mas as execuções individuais podem estar em estado de ERRO. |
ERROR | A execução ou matriz foi interrompida porque encontrou uma falha de infraestrutura. |
UNSUPPORTED_ENVIRONMENT | A execução não foi executada porque corresponde a um ambiente não suportado. Só pode ser definido em uma execução. |
INCOMPATIBLE_ENVIRONMENT | A execução não foi executada porque as entradas fornecidas são incompatíveis com o ambiente solicitado. Exemplo: AndroidVersion solicitada é inferior à minSdkVersion do APK Só pode ser definido em uma execução. |
INCOMPATIBLE_ARCHITECTURE | A execução não foi executada porque as entradas fornecidas são incompatíveis com a arquitetura solicitada. Exemplo: o dispositivo solicitado não suporta a execução do código nativo no APK fornecido Só pode ser definido em uma execução. |
CANCELLED | O usuário cancelou a execução. Só pode ser definido em uma execução. |
INVALID | A execução ou matriz não foi executada porque as entradas fornecidas não são válidas. Exemplos: o arquivo de entrada não é do tipo esperado, está malformado/corrompido ou foi sinalizado como malware |
Etapa de resultados da ferramenta
Representa um recurso da etapa de resultados da ferramenta.
Isso tem os resultados de um TestExecution.
Representação JSON |
---|
{ "projectId": string, "historyId": string, "executionId": string, "stepId": string } |
Campos | |
---|---|
projectId | Somente saída. O projeto de nuvem que possui a etapa de resultados da ferramenta. |
historyId | Somente saída. Um ID do histórico de resultados da ferramenta. |
executionId | Somente saída. Uma ferramenta resulta em ID de execução. |
stepId | Somente saída. Um ID da etapa de resultados da ferramenta. |
Detalhes do teste
Detalhes adicionais sobre o progresso do teste em execução.
Representação JSON |
---|
{ "progressMessages": [ string ], "errorMessage": string } |
Campos | |
---|---|
progressMessages[] | Somente saída. Descrições detalhadas e legíveis por humanos do progresso do teste. Por exemplo: "Provisionando um dispositivo", "Iniciando teste". Durante a execução, novos dados podem ser anexados ao final de progressMessages. |
errorMessage | Somente saída. Se TestState for ERROR, essa string conterá detalhes legíveis por humanos sobre o erro. |
Armazenamento de resultados
Locais onde os resultados da execução do teste são armazenados.
Representação JSON |
---|
{ "googleCloudStorage": { object ( |
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. Caso não seja fornecido, o serviço escolherá um valor adequado. |
toolResultsExecution | Somente saída. A ferramenta resulta na execução na qual os resultados são gravados. |
resultsUrl | Somente saída. URL para os resultados no Firebase Web Console. |
GoogleCloudStorage
Um local de armazenamento no armazenamento em nuvem do Google (GCS).
Representação JSON |
---|
{ "gcsPath": string } |
Campos | |
---|---|
gcsPath | Obrigatório. O caminho para um diretório no GCS que eventualmente conterá os resultados deste teste. O usuário solicitante deve ter acesso de gravação no bucket no caminho fornecido. |
Histórico de resultados da ferramenta
Representa um recurso de histórico de resultados da ferramenta.
Representação JSON |
---|
{ "projectId": string, "historyId": string } |
Campos | |
---|---|
projectId | Obrigatório. O projeto de nuvem que possui o histórico de resultados da ferramenta. |
historyId | Obrigatório. Um ID do histórico de resultados da ferramenta. |
FerramentaResultadosExecução
Representa um recurso de execução de resultados de ferramenta.
Isso tem os resultados de um TestMatrix.
Representação JSON |
---|
{ "projectId": string, "historyId": string, "executionId": string } |
Campos | |
---|---|
projectId | Somente saída. O projeto de nuvem que possui a ferramenta resulta na execução. |
historyId | Somente saída. Um ID do histórico de resultados da ferramenta. |
executionId | Somente saída. Uma ferramenta resulta em ID de execução. |
Detalhes de Matriz Inválidos
O motivo detalhado pelo qual uma Matriz foi considerada INVÁLIDA.
Enums | |
---|---|
INVALID_MATRIX_DETAILS_UNSPECIFIED | Não use. Apenas para versionamento proto. |
DETAILS_UNAVAILABLE | A matriz é INVÁLIDA, mas não há mais detalhes disponíveis. |
MALFORMED_APK | Não foi possível analisar o APK do aplicativo de entrada. |
MALFORMED_TEST_APK | Não foi possível analisar o APK de teste de entrada. |
NO_MANIFEST | O AndroidManifest.xml não foi encontrado. |
NO_PACKAGE_NAME | O manifesto do APK não declara um nome de pacote. |
INVALID_PACKAGE_NAME | O ID do aplicativo APK (também conhecido como nome do pacote) é inválido. Consulte também https://developer.android.com/build/configure-app-module#set-application-id |
TEST_SAME_AS_APP | O pacote de teste e o pacote de aplicativos são iguais. |
NO_INSTRUMENTATION | O apk de teste não declara uma instrumentação. |
NO_SIGNATURE | O apk do aplicativo de entrada não possui assinatura. |
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE | A classe do executor de teste especificada pelo usuário ou no arquivo de manifesto do APK de teste não é compatível com o Android Test Orchestrator. O Orchestrator é compatível apenas com AndroidJUnitRunner versão 1.1 ou superior. O orquestrador pode ser desativado usando DO_NOT_USE_ORCHESTRATOR OrchestratorOption. |
NO_TEST_RUNNER_CLASS | O APK de teste não contém a classe do executor de teste especificada pelo usuário ou no arquivo de manifesto. Isso pode ser causado por um dos seguintes motivos:
|
NO_LAUNCHER_ACTIVITY | Não foi possível encontrar uma atividade principal do iniciador. |
FORBIDDEN_PERMISSIONS | O aplicativo declara uma ou mais permissões que não são permitidas. |
INVALID_ROBO_DIRECTIVES | Há um conflito nas roboDirectives fornecidas. |
INVALID_RESOURCE_NAME | Há pelo menos um nome de recurso inválido nas diretivas robo fornecidas |
INVALID_DIRECTIVE_ACTION | Definição de ação inválida nas diretivas robo (por exemplo, uma ação de clicar ou ignorar inclui um campo de texto de entrada) |
TEST_LOOP_INTENT_FILTER_NOT_FOUND | Não há filtro de intenção de loop de teste ou o fornecido não está formatado corretamente. |
SCENARIO_LABEL_NOT_DECLARED | A solicitação contém um rótulo de cenário que não foi declarado no manifesto. |
SCENARIO_LABEL_MALFORMED | Ocorreu um erro ao analisar o valor de um rótulo. |
SCENARIO_NOT_DECLARED | A solicitação contém um número de cenário que não foi declarado no manifesto. |
DEVICE_ADMIN_RECEIVER | Aplicativos de administrador de dispositivos não são permitidos. |
MALFORMED_XC_TEST_ZIP | O XCTest compactado 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 construído para o simulador 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 destinos de teste definidos no arquivo .xctestrun especificam "UseDestinationArtifacts", que não é permitido. |
TEST_NOT_APP_HOSTED | Os testes XC executados em dispositivos físicos devem ter "IsAppHostedTestBundle" == "true" no arquivo xctestrun. |
PLIST_CANNOT_BE_PARSED | Um arquivo Info.plist no zip XCTest não pôde ser analisado. |
TEST_ONLY_APK | O APK está marcado como "testOnly". Obsoleto e não usado atualmente. |
MALFORMED_IPA | O IPA de entrada não pôde ser analisado. |
MISSING_URL_SCHEME | O aplicativo não registra o esquema de URL do loop de jogo. |
MALFORMED_APP_BUNDLE | O pacote de aplicativos iOS (.app) não pôde ser processado. |
NO_CODE_APK | APK não contém código. Consulte 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 acessá-lo. |
INVALID_APK_PREVIEW_SDK | O APK foi criado para um SDK de visualização incompatível |
MATRIX_TOO_LARGE | A matriz foi expandida para conter muitas execuções. |
TEST_QUOTA_EXCEEDED | Cota de teste insuficiente 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/continuous#requirements |
UNKNOWN_PERMISSION_ERROR | Houve um problema de permissão desconhecido ao executar este teste. |
Resumo do resultado
Resumo de resultados para uma matriz de teste concluída.
Enums | |
---|---|
OUTCOME_SUMMARY_UNSPECIFIED | Não use. Apenas para versionamento proto. |
SUCCESS | A execução da matriz de teste foi bem-sucedida, por exemplo:
|
FAILURE | Uma execução falhou, por exemplo:
|
INCONCLUSIVE | Algo inesperado aconteceu. A execução ainda deve ser considerada malsucedida, mas provavelmente é um problema transitório e a 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 fornecidas. |
| Verifica o status de uma matriz de teste e as execuções assim que são criadas. |