REST Resource: projects.testMatrices

Recurso: TestMatrix

TestMatrix captura todos los detalles de una prueba. Contiene la configuración del entorno, la especificación de la prueba, las ejecuciones de prueba y el estado general y el resultado.

Representación 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

Solo salida. ID único que el servicio determina.

projectId

string

Proyecto de Cloud al que pertenece la matriz de prueba.

clientInfo

object (ClientInfo)

Información sobre el cliente que invocó la prueba.

testSpecification

object (TestSpecification)

Obligatorio. Se refiere a cómo ejecutar la prueba.

environmentMatrix

object (EnvironmentMatrix)

Obligatorio. Los dispositivos en los que se ejecutan las pruebas.

testExecutions[]

object (TestExecution)

Solo salida. Es la lista de ejecuciones de prueba que crea el sistema para esta matriz.

resultStorage

object (ResultStorage)

Obligatorio. Es el lugar en el que se escriben los resultados de la matriz.

state

enum (TestState)

Solo salida. Indica el progreso actual de la matriz de prueba.

timestamp

string (Timestamp format)

Solo salida. Es la fecha y hora en que inicialmente se creó la matriz de prueba.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

invalidMatrixDetails

enum (InvalidMatrixDetails)

Solo salida. Describe por qué se consideró la matriz como no válida. Solamente es útil para las matrices en estado NO VÁLIDO.

extendedInvalidMatrixDetails[]

object (MatrixErrorDetail)

Solo salida. Detalles sobre por qué se consideró una matriz no válida. Si se pueden realizar varias verificaciones de forma segura, se informarán, pero no se deben hacer suposiciones sobre la longitud de esta lista.

flakyTestAttempts

integer

La cantidad de veces que se debe reintentar una Ejecución de prueba si uno o más de sus casos de prueba fallan por cualquier motivo. La cantidad máxima de repeticiones permitida es 10.

El valor predeterminado es 0, lo que implica que no hay repeticiones.

outcomeSummary

enum (OutcomeSummary)

Solo salida. El resultado general de la prueba. Solo se establece cuando el estado de la matriz de prueba es FINISHED.

failFast

boolean

Si es verdadero, solo se realizará un solo intento para ejecutar cada ejecución o fragmento en la matriz. Los intentos de prueba inestables no se ven afectados.

Por lo general, se realizan 2 o más intentos si se detecta un posible problema de infraestructura.

Esta función es para cargas de trabajo sensibles a la latencia. La incidencia de fallas de ejecución puede ser mucho mayor para las matrices con falla rápida, y la compatibilidad es más limitada debido a esa expectativa.

ClientInfo

Información sobre el cliente que invocó la prueba.

Representación JSON
{
  "name": string,
  "clientInfoDetails": [
    {
      object (ClientInfoDetail)
    }
  ]
}
Campos
name

string

Obligatorio. El nombre del cliente, como gcloud.

clientInfoDetails[]

object (ClientInfoDetail)

Lista de información detallada sobre el cliente.

ClientInfoDetail

Es el par clave-valor de la información detallada sobre el cliente que invocó la prueba. Ejemplos: {“Version”, “1.0”}, {“Release Track”, “BETA”}.

Representación JSON
{
  "key": string,
  "value": string
}
Campos
key

string

Obligatorio. Es la clave de la información detallada del cliente.

value

string

Obligatorio. Es el valor de la información detallada del cliente.

TestSpecification

Es una descripción sobre cómo ejecutar la prueba.

Representación 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)

Es el tiempo máximo para ejecutar una prueba antes de que se cancele automáticamente. El valor predeterminado es de 5 min.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

disableVideoRecording

boolean

Inhabilita la grabación de video. Puede reducir la latencia de la prueba.

disablePerformanceMetrics

boolean

Inhabilita la grabación de métricas de rendimiento. Puede reducir la latencia de la prueba.

Campo de unión setup. Requisitos de configuración de pruebas setup puede ser solo uno de los siguientes:
testSetup

object (TestSetup)

Requisitos de configuración de pruebas para Android, p. ej., los archivos que se deben instalar o la secuencia de comandos de un bootstrap.

iosTestSetup

object (IosTestSetup)

Requisitos de configuración de pruebas para iOS.

Campo de unión test. Obligatorio. Es el tipo de prueba que se ejecutará. test puede ser solo uno de los siguientes:
androidInstrumentationTest

object (AndroidInstrumentationTest)

Una prueba de instrumentación de Android.

androidRoboTest

object (AndroidRoboTest)

Una prueba de Robo de Android.

androidTestLoop

object (AndroidTestLoop)

Una aplicación de Android con un bucle de prueba.

iosXcTest

object (IosXcTest)

Un XCTest de iOS mediante un archivo .xctestrun.

iosTestLoop

object (IosTestLoop)

Una aplicación para iOS con un bucle de prueba

iosRoboTest

object (IosRoboTest)

Una prueba Robo de iOS.

TestSetup

Es una descripción sobre cómo configurar un dispositivo Android antes de ejecutar la prueba.

Representación 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)

Es una lista de archivos que se debe enviar al dispositivo antes de comenzar la prueba.

directoriesToPull[]

string

Lista de directorios en el dispositivo que se subirán a GCS al final de la prueba. Deben ser rutas de acceso absolutas en /sdcard, /storage o /data/local/tmp. Los nombres de las rutas de acceso se restringen a caracteres a-z A-Z 0-9 _ - . + y /

Nota: Se pondrán a disposición las rutas /sdcard y /data, y se tratarán como sustituciones implícitas. P. ej., si /sdcard en un dispositivo en particular no se asigna un almacenamiento externo, el sistema lo remplazará con el prefijo de la ruta del almacenamiento externo de ese dispositivo.

initialSetupApks[]

object (Apk)

Opcional. Son los APK de configuración iniciales que se deben instalar antes de que se instale la app en modo de prueba. El valor actual se limita a un máximo de 100.

additionalApks[]

object (Apk)

Son los APK que se deben instalar además de los que se prueban directamente. Estos se instalarán después de la app que estés probando. El valor actual se limita a un máximo de 100.

account

object (Account)

Se usará esta cuenta para acceder con el dispositivo por el tiempo que dure la prueba.

networkProfile

string

Es el perfil de tráfico de red que se usa para ejecutar la prueba. Cuando llames a TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog, puedes usar el tipo de entorno NETWORK_CONFIGURATION para realizar consultas en los perfiles de red disponibles.

environmentVariables[]

object (EnvironmentVariable)

Son las variables del entorno que se deben configurar en la prueba (solo es aplicable a las pruebas de instrumentación).

systrace
(deprecated)

object (SystraceSetup)

Configuración de Systrace para la ejecución. Obsoleto: Systrace usó Python 2, que se retiró el 1 de enero de 2020. Systrace ya no es compatible con la API de Cloud Testing, y no se proporcionará ningún archivo de Systrace en los resultados.

dontAutograntPermissions

boolean

Especifica si se deben impedir que se otorguen todos los permisos de tiempo de ejecución en la instalación de la app.

DeviceFile

Es la descripción del archivo de un solo dispositivo.

Representación 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ón device_file. Obligatorio. device_file puede ser solo uno de los siguientes:
obbFile

object (ObbFile)

Es una referencia a un archivo BLOB binario opaco.

regularFile

object (RegularFile)

Es una referencia a un archivo normal.

ObbFile

Es un archivo BLOB binario opaco que se debe instalar en el dispositivo antes de comenzar la prueba.

Representación JSON
{
  "obbFileName": string,
  "obb": {
    object (FileReference)
  }
}
Campos
obbFileName

string

Obligatorio. Es el nombre del archivo OBB que debe satisfacer el formato específico de Android, p. ej., [main|patch].0300110.com.example.android.obb, que se instalará en <shared-storage>/Android/obb/<package-name>/ en el dispositivo.

obb

object (FileReference)

Obligatorio. Son los archivos BLOB binarios opacos (OBB) que se deben instalar en el dispositivo.

FileReference

Es la referencia a un archivo que se usa en las entradas del usuario.

Representación 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ón file. Obligatorio. Es la referencia del archivo. file puede ser solo uno de los siguientes:
gcsPath

string

Es una ruta a un archivo en Google Cloud Storage. Ejemplo: gs://build-app-1414623860166/app%40debug-unaligned.apk Se espera que estas rutas de acceso se codifiquen en formato de URL (codificación porcentual).

RegularFile

Es un archivo o directorio que se debe instalar en el dispositivo antes de comenzar la prueba.

Representación JSON
{
  "content": {
    object (FileReference)
  },
  "devicePath": string
}
Campos
content

object (FileReference)

Obligatorio. Es el archivo de origen.

devicePath

string

Obligatorio. Es la ubicación en la que se colocará el contenido en el dispositivo. Debe ser una ruta absoluta que esté incluida en la lista de entidades permitidas. Si ya existe el archivo, se remplazará. Los siguientes directorios del dispositivo y cualquiera de sus subdirectorios están incluidos en la lista de entidades permitidas:

${EXTERNAL_STORAGE}, /sdcard o /storage

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

No es válido especificar una ruta que no pertenezca a este árbol de directorios.

Se pondrán a disposición las rutas /sdcard y /data, y se tratarán como sustituciones implícitas. P. ej., si /sdcard en un dispositivo en particular no se asigna un almacenamiento externo, el sistema lo remplazará con el prefijo de la ruta del almacenamiento externo de ese dispositivo y copiará el archivo.

Se recomienda que uses la API de Environment en la app y el código de prueba para acceder a los archivos del dispositivo de forma portátil.

APK

Es un archivo de paquetes de Android que se debe instalar.

Representación JSON
{
  "location": {
    object (FileReference)
  },
  "packageName": string
}
Campos
location

object (FileReference)

Es la ruta a un APK que se debe instalar en el dispositivo antes de comenzar la prueba.

packageName

string

Es el paquete Java del APK que se debe instalar. Para determinar su valor, se debe examinar el manifiesto de la aplicación.

Account

Permite identificar una cuenta y cómo acceder a ella.

Representación 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ón account_type. Obligatorio. Es el tipo de cuenta, según su uso (p.ej., Google) y cuál es su mecanismo de acceso (p.ej., nombre de usuario y contraseña). account_type puede ser solo uno de los siguientes:
googleAuto

object (GoogleAuto)

Cuenta de acceso a Google automática.

GoogleAuto

Este tipo no tiene campos.

Habilita el acceso automático a la Cuenta de Google. Si se establece, el servicio genera automáticamente una cuenta de prueba de Google y la agrega al dispositivo antes de ejecutar la prueba. Ten en cuenta que las cuentas de prueba pueden reutilizarse. Cuando hay una cuenta en el dispositivo, muchas aplicaciones muestran todo el conjunto de funcionalidades. Si accedes a un dispositivo con estas cuentas generadas, podrás probar más funcionalidades.

EnvironmentVariable

Se pasa un par clave-valor a la prueba como una variable de entorno.

Representación JSON
{
  "key": string,
  "value": string
}
Campos
key

string

Clave de la variable de entorno.

value

string

Valor de la variable de entorno.

Configuración de Systrace

Representación JSON
{
  "durationSeconds": integer
}
Campos
durationSeconds
(deprecated)

integer

Duración de Systrace en segundos Debe durar entre 1 y 30 segundos. 0 inhabilita Systrace.

IosTestSetup

Es una descripción de cómo configurar un dispositivo iOS antes de ejecutar la prueba.

Representación JSON
{
  "networkProfile": string,
  "additionalIpas": [
    {
      object (FileReference)
    }
  ],
  "pushFiles": [
    {
      object (IosDeviceFile)
    }
  ],
  "pullDirectories": [
    {
      object (IosDeviceFile)
    }
  ]
}
Campos
networkProfile

string

Es el perfil de tráfico de red que se usa para ejecutar la prueba. Cuando llames a TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog, puedes usar el tipo de entorno NETWORK_CONFIGURATION para realizar consultas en los perfiles de red disponibles.

additionalIpas[]

object (FileReference)

Son apps para iOS que se instalan, además de las que se prueban directamente.

pushFiles[]

object (IosDeviceFile)

Es una lista de archivos que se debe enviar al dispositivo antes de comenzar la prueba.

pullDirectories[]

object (IosDeviceFile)

Lista de directorios en el dispositivo que se subirán a Cloud Storage al final de la prueba.

Los directorios deben estar en un directorio compartido (como /private/var/mobile/Media) o dentro de un directorio accesible dentro del sistema de archivos de la app (como /Documents) especificando el ID del paquete.

Archivo de dispositivo iOS

Es un archivo o directorio que se debe instalar en el dispositivo antes de comenzar la prueba.

Representación JSON
{
  "content": {
    object (FileReference)
  },
  "bundleId": string,
  "devicePath": string
}
Campos
content

object (FileReference)

El archivo fuente

bundleId

string

El ID del paquete de la app en la que se encuentra este archivo.

Las apps para iOS hacen una zona de pruebas de su propio sistema de archivos, por lo que los archivos de apps deben especificar qué app está instalada en el dispositivo.

devicePath

string

Ubicación del archivo en el dispositivo, dentro del sistema de archivos de zona de pruebas de la app

AndroidInstrumentationTest

Es una prueba de una aplicación para Android que puede controlar un componente independientemente de su ciclo de vida normal. Las pruebas de instrumentación de Android ejecutan el APK de la aplicación y lo prueban en el mismo proceso en un dispositivo Android virtual o físico. También especifican la clase de un ejecutor de pruebas, como com.google.GoogleTestRunner, que puede variar según el marco de trabajo específico de instrumentación que elijas.

Para obtener más información sobre los tipos de pruebas de Android, consulta https://developer.android.com/training/testing/fundamentals.

Representación 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)

Obligatorio. Es el APK que contiene el código de prueba que se ejecutará.

appPackageId

string

Es el paquete Java de la aplicación de prueba. Para determinar su valor predeterminado, se debe examinar el manifiesto de la aplicación.

testPackageId

string

Es el paquete Java que se ejecutará en la prueba. Para determinar su valor predeterminado, se debe examinar el manifiesto de la aplicación.

testRunnerClass

string

Es la clase InstrumentationTestRunner. Para determinar su valor predeterminado, se debe examinar el manifiesto de la aplicación.

testTargets[]

string

Cada destino debe estar completamente calificado con el nombre de paquete o de clase en uno de estos formatos:

  • “paquete packageName”
  • “class packageName.class_name”
  • “class packageName.class_name#methodName”

Si estos valores están vacíos, se ejecutarán todos los objetivos del módulo.

orchestratorOption

enum (OrchestratorOption)

Esta opción indica si debes ejecutar cada prueba en su propia invocación de instrumentación con Android Test Orchestrator. ** Orchestrator solo es compatible con la versión 1.1 de AndroidJUnitRunner o versiones posteriores. ** Orchestrator ofrece los siguientes beneficios:

  • Sin estado compartido
  • Las fallas están aisladas
  • El alcance de los registros se define por prueba

Consulta https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator para obtener más información sobre Android Test Orchestrator.

Si no se configuran, se ejecutará la prueba sin Orchestrator.

shardingOption

object (ShardingOption)

La opción de ejecutar pruebas en varios fragmentos en paralelo.

Campo de unión app_under_test. Obligatorio. app_under_test puede ser solo uno de los siguientes:
appApk

object (FileReference)

Es el APK de la aplicación de prueba.

appBundle

object (AppBundle)

Es el paquete de aplicación con múltiples APK de la app de prueba.

AppBundle

Es un archivo de formato Android App Bundle que contiene un archivo BundleConfig.pb, un directorio de módulo base y cero o más directorios de módulo de características dinámicas.

Consulta https://developer.android.com/guide/app-bundle/build para obtener más orientación sobre cómo crear paquetes de aplicación.

Representación 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ón bundle. Obligatorio. Información de ubicación del paquete. bundle puede ser solo uno de los siguientes:
bundleLocation

object (FileReference)

Es un archivo .aab que representa el paquete de aplicación de prueba.

OrchestratorOption

Permite especificar cómo ejecutar la prueba.

Enums
ORCHESTRATOR_OPTION_UNSPECIFIED Valor predeterminado: el servidor elegirá el modo. Actualmente implica que la prueba se ejecutará sin Orchestrator. En el futuro, todas las pruebas de instrumentación se ejecutarán con Orchestrator. Te recomendamos que uses esta herramienta por todos los beneficios que ofrece.
USE_ORCHESTRATOR Ejecuta la prueba con Orchestrator. ** Solo es compatible con AndroidJUnitRunner versión 1.1 o posterior. ** Sugerencia recomendada.
DO_NOT_USE_ORCHESTRATOR Ejecuta la prueba sin usar Orchestrator.

Opción de fragmentación

Opciones para habilitar la fragmentación.

Representación 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ón option.

option puede ser una de las siguientes opciones:

uniformSharding

object (UniformSharding)

Fragmenta de manera uniforme los casos de prueba a partir de una cantidad total de fragmentos.

manualSharding

object (ManualSharding)

Fragmenta los casos de prueba en los grupos especificados de paquetes, clases o métodos.

smartSharding

object (SmartSharding)

Prueba de fragmentos según los registros de tiempo de casos de prueba anteriores.

Fragmentación uniforme

Fragmenta de manera uniforme los casos de prueba a partir de una cantidad total de fragmentos.

Para las pruebas de instrumentación, se traducirá a "-e numShard" y "-e shardIndex" Argumentos de AndroidJUnitRunner. Con la fragmentación uniforme habilitada, no es válido especificar cualquiera de estos argumentos de fragmentación a través de environmentVariables.

Según el mecanismo de fragmentación que usa AndroidJUnitRunner, no hay garantía de que los casos de prueba se distribuyan de manera uniforme entre todos los fragmentos.

Representación JSON
{
  "numShards": integer
}
Campos
numShards

integer

Obligatorio. La cantidad total de fragmentos que se crearán. Siempre debe ser un número positivo que no sea mayor que la cantidad total de casos de prueba. Cuando seleccionas uno o más dispositivos físicos, la cantidad de fragmentos debe ser menor o igual que 50. Cuando seleccionas uno o más dispositivos virtuales ARM, el valor debe ser <= 200. Cuando seleccionas solo dispositivos virtuales x86, el valor debe ser <= 500.

Fragmentación manual

Fragmenta los casos de prueba en los grupos especificados de paquetes, clases o métodos.

Con la fragmentación manual habilitada, no es válido especificar objetivos de prueba a través de variables de entorno o en InstrumentationTest.

Representación JSON
{
  "testTargetsForShard": [
    {
      object (TestTargetsForShard)
    }
  ]
}
Campos
testTargetsForShard[]

object (TestTargetsForShard)

Obligatorio. Grupo de paquetes, clases o métodos de prueba que se ejecutarán para cada fragmento creado manualmente. Si este campo está presente, debes especificar al menos un fragmento. Cuando seleccionas uno o más dispositivos físicos, la cantidad de testTargetsForShard repetidas debe ser menor o igual que 50. Cuando seleccionas uno o más dispositivos virtuales ARM, el valor debe ser <= 200. Cuando seleccionas solo dispositivos virtuales x86, el valor debe ser <= 500.

TestTargetsForShard

Destinos de prueba de un fragmento.

Representación JSON
{
  "testTargets": [
    string
  ]
}
Campos
testTargets[]

string

Grupo de paquetes, clases o métodos de prueba que se ejecutarán para cada fragmento. Los destinos deben especificarse en formato de argumento AndroidJUnitRunner. Por ejemplo, “paquete com.my.packages” “class com.my.package.MyClass”.

La cantidad de testTargets debe ser superior a 0.

Fragmentación inteligente

Prueba de fragmentos según los registros de tiempo de casos de prueba anteriores.

Representación JSON
{
  "targetedShardDuration": string
}
Campos
targetedShardDuration

string (Duration format)

La cantidad de tiempo que deberían tardar las pruebas dentro de un fragmento.

Valor predeterminado: 300 segundos (5 minutos). El mínimo permitido: 120 segundos (2 minutos).

El recuento de fragmentos se establece dinámicamente en función del tiempo, hasta el límite máximo de fragmentos (descrito a continuación). A fin de garantizar al menos un caso de prueba para cada fragmento, la cantidad de fragmentos no superará la cantidad de casos de prueba. Se superará la duración de fragmentación en los siguientes casos:

  • Se alcanza el límite máximo de fragmentos y hay un tiempo de prueba más calculado para asignar a los fragmentos.
  • Se estima que cualquier prueba individual será más larga que la duración objetivo del fragmento.

No se garantiza la duración de la fragmentación porque la fragmentación inteligente utiliza el historial de casos de prueba y las duraciones predeterminadas que podrían no ser precisas. Las reglas para encontrar los registros de tiempo de casos de prueba son las siguientes:

  • Si el servicio procesó un caso de prueba en los últimos 30 días, se utilizará el registro del último caso de prueba exitoso.
  • Para los casos de prueba nuevos, se usará la duración promedio de otros casos de prueba conocidos.
  • Si no hay registros de tiempo de casos de prueba anteriores disponibles, la duración predeterminada de los casos de prueba es de 15 segundos.

Debido a que la duración real del fragmento puede superar la duración objetivo, te recomendamos que establezcas el valor objetivo al menos 5 minutos menos que el tiempo de espera máximo de la prueba permitido (45 minutos para los dispositivos físicos y 60 minutos para los virtuales) o que uses el valor de tiempo de espera de la prueba personalizado que estableciste. Este enfoque evita que se cancele el fragmento antes de que puedan finalizar todas las pruebas.

Ten en cuenta que hay un límite para la cantidad máxima de fragmentos. Cuando seleccionas uno o más dispositivos físicos, la cantidad de fragmentos debe ser menor o igual que 50. Cuando seleccionas uno o más dispositivos virtuales ARM, el valor debe ser <= 200. Cuando seleccionas solo dispositivos virtuales x86, el valor debe ser <= 500. Para garantizar al menos un caso de prueba por fragmento, la cantidad de fragmentos no superará la cantidad de casos de prueba. Cada fragmento creado se considera en la cuota de prueba diaria.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

AndroidRoboTest

Es una prueba de una aplicación para Android que permite explorarla en un dispositivo Android virtual o físico. Encuentra las fallas y sus causantes durante el proceso.

Representación 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

Es el paquete Java de la aplicación de prueba. Para determinar su valor predeterminado, se debe examinar el manifiesto de la aplicación.

appInitialActivity

string

La primera actividad que debería usarse para iniciar la app.

maxDepth
(deprecated)

integer

Es la máxima profundidad que el Robo de pila trasversal puede explorar. Debe tener un valor de al menos 2 para que Robo explore la app después de la primera actividad. El valor predeterminado es 50.

maxSteps
(deprecated)

integer

Es la cantidad máxima de pasos que Robo puede ejecutar. El valor predeterminado es sin límite.

roboDirectives[]

object (RoboDirective)

Es un conjunto de directivas que Robo debe aplicar durante el rastreo. Esto permite que los usuarios personalicen el rastreo. Por ejemplo, se pueden proporcionar el nombre de usuario y la contraseña de una cuenta de prueba.

roboMode

enum (RoboMode)

El modo en el que se debe ejecutar Robo. La mayoría de los clientes deben permitir que el servidor complete este campo automáticamente.

roboScript

object (FileReference)

Es un archivo JSON con una secuencia de acciones que Robo debería realizar antes del rastreo.

startingIntents[]

object (RoboStartingIntent)

Son los intent usados para iniciar la app a fin de rastrearla. Si no se proporciona ninguno, se comenzará la actividad iniciadora principal. Solo se iniciarán los intent proporcionados (se debe señalar explícitamente la actividad iniciadora principal).

Campo de unión app_under_test. Obligatorio. app_under_test puede ser solo uno de los siguientes:
appApk

object (FileReference)

Es el APK de la aplicación de prueba.

appBundle

object (AppBundle)

Es el paquete de aplicación con múltiples APK de la app de prueba.

RoboDirective

Indica a Robo que debe interactuar con un elemento específico de la IU si lo encuentra durante el rastreo. Por el momento, Robo puede realizar entradas de texto o clics en elementos.

Representación JSON
{
  "resourceName": string,
  "inputText": string,
  "actionType": enum (RoboActionType)
}
Campos
resourceName

string

Obligatorio. Es el nombre del recurso de Android del elemento objetivo de la IU. Por ejemplo: en Java, R.string.foo y en xml: @string/foo. Solo la parte “foo” es necesaria. Consulta el siguiente documento de referencia https://developer.android.com/guide/topics/resources/accessing-resources.html.

inputText

string

El texto que Robo debe configurar. Si se deja en blanco, se entenderá la instrucción como un CLIC en el elemento que coincida con resourceName.

actionType

enum (RoboActionType)

Obligatorio. Es el tipo de acción que Robo debería realizar en el elemento especificado.

RoboActionType

Acciones que Robo puede realizar en los elementos de la IU.

Enums
ACTION_TYPE_UNSPECIFIED NO SE DEBE USAR. Solo puedes hacerlo en el control de versiones proto.
SINGLE_CLICK Instruye a Robo para que haga clic en el elemento especificado. No funcionará si no se puede hacer clic en el elemento especificado.
ENTER_TEXT Instruye a Robo para que ingrese texto en el elemento especificado. No funcionará si este elemento no está habilitado o no permite la entrada de texto.
IGNORE Indica a Robo que ignore las interacciones con un elemento específico.

Modo Robo

El modo en el que se debe ejecutar Robo.

Enums
ROBO_MODE_UNSPECIFIED Esto significa que el servidor debe elegir el modo. Recomendado.
ROBO_VERSION_1 Ejecuta Robo en el modo de solo UIAutomator sin tener que volver a firmar la app.
ROBO_VERSION_2 Ejecuta Robo en Espresso estándar con resguardo de UIAutomator

RoboStartingIntent

Es un mensaje que permite especificar las actividades de inicio para el rastreo.

Representación 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)

Tiempo de espera en segundos para cada intent.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

Campo de unión starting_intent. Obligatorio. Detalles del intent para iniciar una actividad. starting_intent puede ser solo uno de los siguientes:
launcherActivity

object (LauncherActivityIntent)

Es un intent que inicia la actividad iniciadora principal.

startActivity

object (StartActivityIntent)

Es un intent que inicia una actividad con detalles específicos.

noActivity

object (NoActivityIntent)

Omite la actividad inicial

LauncherActivityIntent

Este tipo no tiene campos.

Permite especificar un intent que comienza la actividad iniciadora principal.

StartActivityIntent

Es un intent de inicio especificado por acción, URI o categorías.

Representación JSON
{
  "action": string,
  "uri": string,
  "categories": [
    string
  ]
}
Campos
action

string

Es el nombre de la acción. Es obligatorio para START_ACTIVITY.

uri

string

Es el URI de la acción.

categories[]

string

Son las categorías que se deben establecer en el intent.

NoActivityIntent

Este tipo no tiene campos.

Omite la actividad inicial

AndroidTestLoop

Es una prueba de una aplicación para Android con un bucle de prueba. Se agregará el intent <intent-name> de forma implícita, ya que, por el momento, Games es el único usuario de esta API.

Representación 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

Es el paquete Java de la aplicación de prueba. Para determinar su valor predeterminado, se debe examinar el manifiesto de la aplicación.

scenarios[]

integer

Es la lista de situaciones que se deberían ejecutar durante la prueba. El valor predeterminado corresponde a todos los bucles de prueba que aparecen en el manifiesto de la aplicación.

scenarioLabels[]

string

La lista de etiquetas de situación que se deben ejecutar durante la prueba. Las etiquetas de situación deben asignarse a etiquetas definidas en el manifiesto de la aplicación. Por ejemplo, player_experience y com.google.test.loops.player_experience permiten agregar a la ejecución todos los bucles etiquetados en el manifiesto con el nombre com.google.test.loops.player_experience. Las situaciones también se deben especificar en el campo Situaciones.

Campo de unión app_under_test. Obligatorio. Es el paquete de Android que se probará. app_under_test puede ser solo uno de los siguientes:
appApk

object (FileReference)

Es el APK de la aplicación de prueba.

appBundle

object (AppBundle)

Es el paquete de aplicación con múltiples APK de la app de prueba.

IosXcTest

Es una prueba de una aplicación para iOS que usa un marco de trabajo XCTest. Xcode es compatible con la opción de “compilar para pruebas”, que genera un archivo .xctestrun con una especificación de pruebas (argumentos, métodos de prueba, etc.). Este tipo de prueba admite un archivo ZIP que contenga el archivo .xctestrun y los contenidos pertinentes del directorio Build/Products con todos los objetos binarios necesarios para ejecutar las pruebas.

Representación JSON
{
  "testsZip": {
    object (FileReference)
  },
  "xctestrun": {
    object (FileReference)
  },
  "xcodeVersion": string,
  "appBundleId": string,
  "testSpecialEntitlements": boolean
}
Campos
testsZip

object (FileReference)

Obligatorio. Es el archivo ZIP que contiene el archivo .xctestrun y los contenidos del directorio DerivedData/Build/Products. Se ignora el archivo .xctestrun en el ZIP si se especifica el campo xctestrun.

xctestrun

object (FileReference)

Es un archivo .xctestrun que anulará al mismo archivo en los ZIP de pruebas. Ya que contiene variables de entorno junto con métodos de prueba que se pueden ejecutar o ignorar, puede ser útil en pruebas de fragmentación. El archivo predeterminado se obtiene del archivo ZIP de pruebas.

xcodeVersion

string

La versión de Xcode que se debe usar para la prueba. Usa TestEnvironmentDiscoveryService para obtener opciones compatibles. De forma predeterminada, usa la versión de Xcode más reciente que es compatible con Firebase Test Lab.

appBundleId

string

Solo salida. Es el ID del paquete de la aplicación de prueba.

testSpecialEntitlements

boolean

La opción de probar derechos especiales de la app La configuración volvería a firmar la app con derechos especiales con un identificador de aplicación explícito. Actualmente, admite pruebas de la autorización de Aps-environment.

IosTestLoop

Es una prueba de una aplicación para iOS que implementa una o más situaciones de bucle de juego. Este tipo de prueba acepta una aplicación archivada (archivo .ipa) y una lista de situaciones de números enteros que se ejecutarán en la app de manera secuencial.

Representación JSON
{
  "appIpa": {
    object (FileReference)
  },
  "scenarios": [
    integer
  ],
  "appBundleId": string
}
Campos
appIpa

object (FileReference)

Obligatorio. El archivo .ipa de la aplicación que se probará.

scenarios[]

integer

Es la lista de situaciones que se deben ejecutar durante la prueba. Si no se especifica, el valor predeterminado es la única situación 0.

appBundleId

string

Solo salida. Es el ID del paquete de la aplicación de prueba.

Prueba de IosRobo

Es una prueba que explora una aplicación para iOS en un dispositivo iOS.

Representación JSON
{
  "appIpa": {
    object (FileReference)
  },
  "appBundleId": string,
  "roboScript": {
    object (FileReference)
  }
}
Campos
appIpa

object (FileReference)

Obligatorio. Para ejecutar la prueba, se debe utilizar el IAP almacenado en este archivo.

appBundleId

string

Es el ID del paquete de la app que está a prueba. Esto se determina examinando el archivo "Info.plist" de la aplicación .

roboScript

object (FileReference)

Una secuencia de comandos de Robo opcional para personalizar el rastreo Para obtener más información sobre Roboscript, consulta https://firebase.google.com/docs/test-lab/android/robo-scripts-reference.

EnvironmentMatrix

Es la matriz de entornos en la que se ejecutará la prueba.

Representación 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ón environment_matrix. Obligatorio. La matriz de entorno. environment_matrix puede ser solo uno de los siguientes:
androidMatrix

object (AndroidMatrix)

Es una matriz para los dispositivos Android.

androidDeviceList

object (AndroidDeviceList)

Es una lista de los dispositivos Android. La prueba solamente se ejecutará en los dispositivos especificados.

iosDeviceList

object (IosDeviceList)

Es una lista de los dispositivos iOS.

AndroidMatrix

Se define un conjunto de permutaciones de la configuración de dispositivos Android con el producto cruzado de un eje determinado. De manera interna, el AndroidMatrix pertinente se ampliará a un conjunto de dispositivos Android.

Solo se creará una instancia para las permutaciones compatibles y se ignorarán las no válidas (p. ej., modelos o versiones incompatibles).

Representación JSON
{
  "androidModelIds": [
    string
  ],
  "androidVersionIds": [
    string
  ],
  "locales": [
    string
  ],
  "orientations": [
    string
  ]
}
Campos
androidModelIds[]

string

Obligatorio. Son los ID del conjunto de dispositivos Android que se usará. Usa TestEnvironmentDiscoveryService para obtener opciones compatibles.

androidVersionIds[]

string

Obligatorio. Son los ID del conjunto de las versiones del SO Android que se usará. Usa TestEnvironmentDiscoveryService para obtener opciones compatibles.

locales[]

string

Obligatorio. Es el conjunto de configuraciones regionales que un dispositivo habilitará para realizar la prueba. Usa TestEnvironmentDiscoveryService para obtener opciones compatibles.

orientations[]

string

Obligatorio. Es el conjunto de orientaciones que se probarán. Usa TestEnvironmentDiscoveryService para obtener opciones compatibles.

AndroidDeviceList

Es una lista de configuraciones de dispositivos Android en la que se ejecutará la prueba.

Representación JSON
{
  "androidDevices": [
    {
      object (AndroidDevice)
    }
  ]
}
Campos
androidDevices[]

object (AndroidDevice)

Obligatorio. Es una lista de los dispositivos Android.

IosDeviceList

Es una lista de configuraciones de dispositivos iOS en la que se ejecutará la prueba.

Representación JSON
{
  "iosDevices": [
    {
      object (IosDevice)
    }
  ]
}
Campos
iosDevices[]

object (IosDevice)

Obligatorio. Es una lista de los dispositivos iOS.

IosDevice

Es un solo dispositivo iOS.

Representación JSON
{
  "iosModelId": string,
  "iosVersionId": string,
  "locale": string,
  "orientation": string
}
Campos
iosModelId

string

Obligatorio. Es el ID del dispositivo iOS que se usará. Usa TestEnvironmentDiscoveryService para obtener opciones compatibles.

iosVersionId

string

Obligatorio. Es el ID de la versión principal del software de iOS que se usará. Usa TestEnvironmentDiscoveryService para obtener opciones compatibles.

locale

string

Obligatorio. Es la configuración regional que usó el dispositivo durante la prueba. Usa TestEnvironmentDiscoveryService para obtener opciones compatibles.

orientation

string

Obligatorio. Cómo se orientó el dispositivo durante la prueba Usa TestEnvironmentDiscoveryService para obtener opciones compatibles.

TestExecution

Una única prueba ejecutada en un único entorno.

Representación 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

Solo salida. ID único que el servicio determina.

matrixId

string

Solo salida. Es el ID del TestMatrix pertinente.

projectId

string

Solo salida. Es el proyecto de Cloud al que pertenece la ejecución de prueba.

testSpecification

object (TestSpecification)

Solo salida. Se refiere a cómo ejecutar la prueba.

shard

object (Shard)

Solo salida. Detalles sobre el fragmento.

environment

object (Environment)

Solo salida. Se refiere a cómo las máquinas host están configuradas.

state

enum (TestState)

Solo salida. Indica el progreso actual de la ejecución de prueba (p.ej., TERMINADO).

toolResultsStep

object (ToolResultsStep)

Solo salida. Es el lugar en el que se escriben los resultados de la ejecución.

timestamp

string (Timestamp format)

Solo salida. Es la fecha y hora en que inicialmente se creó la ejecución de prueba.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

testDetails

object (TestDetails)

Solo salida. Son los detalles adicionales sobre la prueba en ejecución.

Fragmento

Solo salida. Detalles sobre el fragmento.

Representación JSON
{
  "shardIndex": integer,
  "numShards": integer,
  "testTargetsForShard": {
    object (TestTargetsForShard)
  },
  "estimatedShardDuration": string
}
Campos
shardIndex

integer

Solo salida. El índice del fragmento entre todos los fragmentos.

numShards

integer

Solo salida. La cantidad total de fragmentos.

testTargetsForShard

object (TestTargetsForShard)

Solo salida. Destinos de prueba para cada fragmento. Solo se configuró para la fragmentación manual.

estimatedShardDuration

string (Duration format)

Solo salida. La duración estimada de la fragmentación según los registros de tiempo de casos de prueba anteriores, si están disponibles.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

Entorno

Es el entorno en el que se ejecutará la prueba.

Representación 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ón environment. Obligatorio. El entorno environment puede ser solo uno de los siguientes:
androidDevice

object (AndroidDevice)

Es el dispositivo Android que se debe usar en una prueba de Android.

iosDevice

object (IosDevice)

Es el dispositivo iOS que se debe usar en una prueba de iOS.

TestState

El estado (o progreso) de una ejecución o matriz de prueba.

Enums
TEST_STATE_UNSPECIFIED No se debe usar. Solo puedes hacerlo en el control de versiones proto.
VALIDATING Se está validando la ejecución o matriz.
PENDING La ejecución o matriz está esperando que los recursos estén disponibles.
RUNNING

Se está procesando la ejecución.

Solo se puede configurar en una ejecución.

FINISHED

Se finalizó la ejecución o matriz correctamente.

En una matriz, significa que se completó el procesamiento a nivel de la matriz correctamente. Sin embargo, pueden haber ejecuciones individuales con un estado de ERROR.

ERROR Se detuvo la ejecución o matriz porque se encontró una falla en la infraestructura.
UNSUPPORTED_ENVIRONMENT

No se realizó la ejecución porque corresponde a un entorno no compatible.

Solo se puede configurar en una ejecución.

INCOMPATIBLE_ENVIRONMENT

No se realizó la ejecución porque las entradas son incompatibles con el entorno solicitado.

Ejemplo: El AndroidVersion solicitado es menor que el minSdkVersion del APK

Solo se puede configurar en una ejecución.

INCOMPATIBLE_ARCHITECTURE

No se realizó la ejecución porque las entradas son incompatibles con la arquitectura solicitada.

Ejemplo: El dispositivo solicitado no admite la ejecución del código nativo en el APK proporcionado.

Solo se puede configurar en una ejecución.

CANCELLED

El usuario canceló la ejecución.

Solo se puede configurar en una ejecución.

INVALID

No se realizó la ejecución o matriz porque las entradas proporcionadas no son válidas.

Ejemplos: El archivo de entrada no es del tipo esperado, tiene un formato incorrecto, está dañado o se marcó como software malicioso.

ToolResultsStep

Representa el paso de los resultados de una herramienta, que es un recurso.

Contiene los resultados de un TestExecution.

Representación JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string,
  "stepId": string
}
Campos
projectId

string

Solo salida. Es el proyecto de Cloud al que pertenece el paso de los resultados de la herramienta.

historyId

string

Solo salida. Es el ID del historial de los resultados de la herramienta.

executionId

string

Solo salida. Es el ID de la ejecución de los resultados de la herramienta.

stepId

string

Solo salida. Es el ID del paso de los resultados de la herramienta.

TestDetails

Son los detalles adicionales sobre el progreso de la prueba en ejecución.

Representación JSON
{
  "progressMessages": [
    string
  ],
  "errorMessage": string
}
Campos
progressMessages[]

string

Solo salida. Son descripciones detalladas y legibles del progreso de la prueba. Por ejemplo: “Aprovisionando un dispositivo” o “comenzando la prueba”.

Durante la ejecución, se pueden agregar datos nuevos al final de progressMessages.

errorMessage

string

Solo salida. Si TestState muestra un ERROR, esta string contendrá detalles legibles sobre el error.

ResultStorage

Son las ubicaciones en las que se almacenan los resultados de la ejecución de la prueba.

Representación JSON
{
  "googleCloudStorage": {
    object (GoogleCloudStorage)
  },
  "toolResultsHistory": {
    object (ToolResultsHistory)
  },
  "toolResultsExecution": {
    object (ToolResultsExecution)
  },
  "resultsUrl": string
}
Campos
googleCloudStorage

object (GoogleCloudStorage)

Obligatorio.

toolResultsHistory

object (ToolResultsHistory)

Es el historial de resultados de la herramienta que contiene la ejecución de los resultados de la herramienta en el que se escriben tales resultados.

Si no se proporciona, el servicio elegirá un valor apropiado.

toolResultsExecution

object (ToolResultsExecution)

Solo salida. Es la ejecución de resultados de la herramienta en la que se escriben los resultados.

resultsUrl

string

Solo salida. URL de los resultados en Firebase Web Console.

GoogleCloudStorage

Es una ubicación de almacenamiento en Google Cloud Storage (GCS).

Representación JSON
{
  "gcsPath": string
}
Campos
gcsPath

string

Obligatorio. La ruta de acceso a un directorio en GCS que contendrá los resultados de esta prueba. El usuario solicitante debe tener acceso de escritura en el bucket de la ruta de acceso proporcionada.

ToolResultsHistory

Representa el historial de los resultados de una herramienta, que es un recurso.

Representación JSON
{
  "projectId": string,
  "historyId": string
}
Campos
projectId

string

Obligatorio. Es el proyecto de Cloud al que pertenece el historial de los resultados de la herramienta.

historyId

string

Obligatorio. Es el ID del historial de los resultados de la herramienta.

ToolResultsExecution

Representa la ejecución de los resultados de una herramienta, que es un recurso.

Contiene los resultados de un TestMatrix.

Representación JSON
{
  "projectId": string,
  "historyId": string,
  "executionId": string
}
Campos
projectId

string

Solo salida. Es el proyecto de Cloud al que pertenece la ejecución de los resultados de la herramienta.

historyId

string

Solo salida. Es el ID del historial de los resultados de la herramienta.

executionId

string

Solo salida. Es el ID de la ejecución de los resultados de la herramienta.

InvalidMatrixDetails

Es el motivo detallado por el que se consideró una matriz como NO VÁLIDA.

Enums
INVALID_MATRIX_DETAILS_UNSPECIFIED No se debe usar. Solo puedes hacerlo en el control de versiones proto.
DETAILS_UNAVAILABLE La matriz es NO VÁLIDA, pero no hay detalles adicionales disponibles.
MALFORMED_APK No se pudo analizar el APK de la app de entrada.
MALFORMED_TEST_APK No se pudo analizar el APK de la prueba de entrada.
NO_MANIFEST No se pudo encontrar el archivo AndroidManifest.xml.
NO_PACKAGE_NAME El manifiesto del APK no declara el nombre del paquete.
INVALID_PACKAGE_NAME El ID de aplicación del APK (también conocido como nombre del paquete) no es válido. Consulta también https://developer.android.com/studio/build/application-id
TEST_SAME_AS_APP El paquete de la prueba y la app son los mismos.
NO_INSTRUMENTATION El APK de prueba no declara una instrumentación.
NO_SIGNATURE El APK de la app de entrada no tiene una firma.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE La clase del ejecutor de pruebas que el usuario especificó o que aparece en el archivo de manifiesto de prueba del APK no es compatible con Android Test Orchestrator. Orchestrator solo es compatible con la versión 1.1 de AndroidJUnitRunner o versiones posteriores. Puedes usar la OrchestratorOption DO_NOT_USE_ORCHESTRATOR para inhabilitar esta herramienta.
NO_TEST_RUNNER_CLASS

El APK de prueba no contiene la clase de ejecutor de pruebas que especificó el usuario o en el archivo de manifiesto. Esto puede deberse a alguno de los siguientes motivos:

  • el usuario proporcionó un nombre de clase de Runner que es incorrecto.
  • El ejecutor de pruebas no está integrado en el APK de prueba (es posible que esté en el APK de la app).
NO_LAUNCHER_ACTIVITY No se pudo encontrar una actividad iniciadora principal.
FORBIDDEN_PERMISSIONS La app declara uno o más permisos no permitidos.
INVALID_ROBO_DIRECTIVES Existe un conflicto entre las roboDirectives proporcionadas.
INVALID_RESOURCE_NAME Hay al menos un nombre de recurso no válido en las directivas de Robo proporcionadas
INVALID_DIRECTIVE_ACTION Definición no válida de la acción en las directivas de Robo (p.ej., una acción de hacer clic o ignorar incluye un campo de texto de entrada)
TEST_LOOP_INTENT_FILTER_NOT_FOUND No hay un filtro de intents de bucle de prueba o el que se proporciona no tiene el formato correcto.
SCENARIO_LABEL_NOT_DECLARED La solicitud contiene una etiqueta de situación no declarada en el manifiesto.
SCENARIO_LABEL_MALFORMED Hubo un problema durante el análisis del valor de una etiqueta.
SCENARIO_NOT_DECLARED La solicitud contiene un número de situación no declarado en el manifiesto.
DEVICE_ADMIN_RECEIVER No pueden utilizarse las aplicaciones del administrador del dispositivo.
MALFORMED_XC_TEST_ZIP El XCTest comprimido tiene un formato incorrecto. El archivo ZIP no incluyó un archivo .xctestrun ni el contenido del directorio DerivedData/Build/Products.
BUILT_FOR_IOS_SIMULATOR El XCTest del archivo zip se compiló para el simulador de iOS y no para un dispositivo físico.
NO_TESTS_IN_XC_TEST_ZIP El archivo .xctestrun no especificó ningún objetivo de prueba.
USE_DESTINATION_ARTIFACTS Uno o más de los objetivos de prueba definidos en el archivo .xctestrun especifica “UseDestinationArtifacts”, que no está permitido.
TEST_NOT_APP_HOSTED Las XCTest que se ejecutan en dispositivos físicos deben tener el valor “IsAppHostedTestBundle” == “true” en el archivo xctestrun.
PLIST_CANNOT_BE_PARSED No se pudo analizar el archivo Info.plist en el archivo XCTest.zip.
TEST_ONLY_APK

El APK está marcado como “testOnly”. Está obsoleto y no se usa en este momento.

MALFORMED_IPA No se pudo analizar el IPA de la app de entrada.
MISSING_URL_SCHEME La aplicación no registra el esquema de URL del bucle de juego.
MALFORMED_APP_BUNDLE No se pudo procesar el paquete de aplicación para iOS (.app).
NO_CODE_APK El APK no tiene códigos. Consulta también https://developer.android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK Ocurrió una de las siguientes opciones: El APK de entrada proporcionado tiene un formato incorrecto, no existe un archivo APK o el usuario no tiene permiso para acceder al archivo APK.
INVALID_APK_PREVIEW_SDK Se compiló el APK para un SDK de vista previa que no es compatible.
MATRIX_TOO_LARGE Se expandió la matriz para contener demasiadas ejecuciones.
TEST_QUOTA_EXCEEDED No hay cuota de prueba suficiente para ejecutar las ejecuciones en esta matriz.
SERVICE_NOT_ACTIVATED Una API de servicio en la nube obligatoria no está activada. Consulta: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR Se produjo un error de permisos desconocido cuando se ejecutaba esta prueba.

MatrixErrorDetail

Describe un error o problema individual con una matriz.

Representación JSON
{
  "reason": string,
  "message": string
}
Campos
reason

string

Solo salida. Es el motivo del error. Este es un valor constante en UPPER_SNAKE_CASE que identifica la causa del error.

message

string

Solo salida. Un mensaje legible sobre el error en la matriz de pruebas. Expande el campo reason con detalles adicionales y posibles opciones para solucionar el problema.

Resumen de resultados

Resumen de los resultados de una matriz de prueba terminada.

Enums
OUTCOME_SUMMARY_UNSPECIFIED No se debe usar. Solo puedes hacerlo en el control de versiones proto.
SUCCESS

La ejecución de la matriz de pruebas se realizó correctamente, por ejemplo:

  • Todos los casos de prueba fueron aprobados.
  • Robo no detectó una falla en la aplicación que se estaba probando.
FAILURE

Una ejecución falló, por ejemplo:

  • Se produjo un error en uno o más casos de prueba.
  • Se agotó el tiempo de espera de la prueba.
  • La aplicación sometida a prueba falló.
INCONCLUSIVE Se produjo un error inesperado. La ejecución se debe considerar no exitosa, pero es probable que sea un problema transitorio y que se pueda volver a ejecutar la prueba con éxito.
SKIPPED

Se omitieron todas las pruebas, por ejemplo:

  • Ninguna configuración del dispositivo era compatible.

Métodos

cancel

Permite cancelar las ejecuciones de prueba sin terminar en una matriz de prueba.

create

Permite crear y ejecutar una matriz de pruebas según las especificaciones correspondientes.

get

Verifica el estado de una matriz de pruebas y las ejecuciones una vez que se crean.