REST Resource: projects.testMatrices

Recurso: TestMatrix

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

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),
  "flakyTestAttempts": integer,
  "outcomeSummary": enum (OutcomeSummary),
  "failFast": boolean
}
Campos
testMatrixId

string

Sólo salida. Identificación única establecida por el servicio.

projectId

string

El proyecto en la nube propietario de la matriz de prueba.

clientInfo

object ( ClientInfo )

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

testSpecification

object ( TestSpecification )

Requerido. Cómo ejecutar la prueba.

environmentMatrix

object ( EnvironmentMatrix )

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

testExecutions[]

object ( TestExecution )

Sólo salida. La lista de ejecuciones de prueba que el servicio crea para esta matriz.

resultStorage

object ( ResultStorage )

Requerido. Donde se escriben los resultados de la matriz.

state

enum ( TestState )

Sólo salida. Indica el progreso actual de la matriz de prueba.

timestamp

string ( Timestamp format)

Sólo salida. La hora en la que se creó inicialmente esta matriz de prueba.

Una marca de tiempo en formato RFC3339 UTC "Zulu", con 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 )

Sólo salida. Describe por qué la matriz se considera no válida. Solo es útil para matrices en estado NO VÁLIDO.

flakyTestAttempts

integer

El número de veces que se debe volver a intentar una TestExecution si uno o más de sus casos de prueba fallan por algún motivo. El número máximo de reposiciones permitidas es 10.

El valor predeterminado es 0, lo que implica que no se realizarán repeticiones.

outcomeSummary

enum ( OutcomeSummary )

Sólo salida. El resultado general de la prueba. Solo se establece cuando el estado de la matriz de prueba está FINALIZADO.

failFast

boolean

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

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

Esta característica es para cargas de trabajo sensibles a la latencia. La incidencia de fallas de ejecución puede ser significativamente mayor para las matrices rápidas y el soporte es más limitado debido a esa expectativa.

Información del cliente

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

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

string

Requerido. Nombre del cliente, como gcloud.

clientInfoDetails[]

object ( ClientInfoDetail )

La lista de información detallada sobre el cliente.

Información del clienteDetalle

Par clave-valor de información detallada sobre el cliente que invocó la prueba. Ejemplos: {'Versión', '1.0'}, {'Pista de lanzamiento', 'BETA'}.

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

string

Requerido. La clave de la información detallada del cliente.

value

string

Requerido. El valor de la información detallada del cliente.

Especificación de prueba

Una descripción de 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)
  }
  // End of list of possible types for union field test.
}
Campos
testTimeout

string ( Duration format)

Tiempo máximo que se permite ejecutar una ejecución de prueba antes de que se cancele automáticamente. El valor predeterminado es 5 min.

Una duración en segundos con hasta nueve dígitos fraccionarios, que termina en ' s '. Ejemplo: "3.5s" .

disableVideoRecording

boolean

Desactiva la grabación de vídeo. Puede reducir la latencia de la prueba.

disablePerformanceMetrics

boolean

Desactiva el registro de métricas de rendimiento. Puede reducir la latencia de la prueba.

setup del campo sindical. Requisitos de configuración de la prueba. setup puede ser sólo una de las siguientes:
testSetup

object ( TestSetup )

Pruebe los requisitos de configuración para Android, por ejemplo, archivos para instalar, scripts de arranque.

iosTestSetup

object ( IosTestSetup )

Requisitos de configuración de prueba para iOS.

test de campo de la unión. Requerido. El tipo de prueba a ejecutar. test puede ser sólo una de las 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, a través de un archivo .xctestrun.

iosTestLoop

object ( IosTestLoop )

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

Configuración de prueba

Una descripción de cómo configurar el dispositivo Android antes de ejecutar la prueba.

Representación JSON
{
  "filesToPush": [
    {
      object (DeviceFile)
    }
  ],
  "directoriesToPull": [
    string
  ],
  "additionalApks": [
    {
      object (Apk)
    }
  ],
  "account": {
    object (Account)
  },
  "networkProfile": string,
  "environmentVariables": [
    {
      object (EnvironmentVariable)
    }
  ],
  "systrace": {
    object (SystraceSetup)
  },
  "dontAutograntPermissions": boolean
}
Campos
filesToPush[]

object ( DeviceFile )

Lista de archivos para enviar al dispositivo antes de comenzar la prueba.

directoriesToPull[]

string

Lista de directorios en el dispositivo para cargar en GCS al final de la prueba; deben ser rutas absolutas en /sdcard, /storage o /data/local/tmp. Los nombres de ruta están restringidos a caracteres az AZ 0-9 _ - . + y /

Nota: Las rutas /sdcard y /data estarán disponibles y se tratarán como sustituciones de rutas implícitas. Por ejemplo, si /sdcard en un dispositivo en particular no se asigna al almacenamiento externo, el sistema lo reemplazará con el prefijo de ruta de almacenamiento externo para ese dispositivo.

additionalApks[]

object ( Apk )

APK para instalar además de los que se están probando directamente. Actualmente tiene un límite de 100.

account

object ( Account )

El dispositivo iniciará sesión en esta cuenta durante la duración de la prueba.

networkProfile

string

El perfil de tráfico de red utilizado para ejecutar la prueba. Los perfiles de red disponibles se pueden consultar utilizando el tipo de entorno NETWORK_CONFIGURATION al llamar a TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

environmentVariables[]

object ( EnvironmentVariable )

Variables de entorno a configurar para la prueba (solo aplicable para pruebas de instrumentación).

systrace
(deprecated)

object ( SystraceSetup )

Configuración de Systrace para la ejecución. En desuso: Systrace usó Python 2, que dejó de funcionar 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

Si se debe evitar que se otorguen todos los permisos de tiempo de ejecución durante la instalación de la aplicación

Archivo de dispositivo

Una única descripción de archivo de 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 . Requerido. device_file puede ser solo uno de los siguientes:
obbFile

object ( ObbFile )

Referencia a un archivo blob binario opaco.

regularFile

object ( RegularFile )

Una referencia a un archivo normal.

Archivo Obb

Un archivo blob binario opaco para instalar en el dispositivo antes de que comience la prueba.

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

string

Requerido. Nombre del archivo OBB que debe ajustarse al formato especificado por Android, por ejemplo, [main|patch].0300110.com.example.android.obb que se instalará en <almacenamiento-compartido>/Android/obb/<nombre-del-paquete>/ en el dispositivo.

obb

object ( FileReference )

Requerido. Archivo(s) opaco Binary Blob (OBB) para instalar en el dispositivo.

Referencia de archivo

Una referencia a un archivo, utilizada para 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
file de campo sindical. Requerido. La referencia del archivo. file puede ser sólo uno de los siguientes:
gcsPath

string

Una ruta a un archivo en Google Cloud Storage. Ejemplo: gs://build-app-1414623860166/app%40debug-unaligned.apk Se espera que estas rutas estén codificadas en URL (codificación porcentual)

Archivo regular

Un archivo o directorio para instalar en el dispositivo antes de que comience la prueba.

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

object ( FileReference )

Requerido. El archivo fuente.

devicePath

string

Requerido. Dónde colocar el contenido en el dispositivo. Debe ser una ruta absoluta incluida en la lista de permitidos. Si el archivo existe, será reemplazado. Los siguientes directorios del lado del dispositivo y cualquiera de sus subdirectorios están incluidos en la lista permitida:

${EXTERNAL_STORAGE}, /sdcard o /storage

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

No es válido especificar una ruta fuera de estos árboles de directorios.

Las rutas /sdcard y /data estarán disponibles y se tratarán como sustituciones de rutas implícitas. Por ejemplo, si /sdcard en un dispositivo en particular no se asigna al almacenamiento externo, el sistema lo reemplazará con el prefijo de ruta de almacenamiento externo para ese dispositivo y copiará el archivo allí.

Se recomienda encarecidamente utilizar la API de entorno en la aplicación y el código de prueba para acceder a los archivos del dispositivo de forma portátil.

apk

Un archivo de paquete de Android para instalar.

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

object ( FileReference )

La ruta a un APK que se instalará en el dispositivo antes de que comience la prueba.

packageName

string

El paquete java para el APK que se instalará. El valor se determina examinando el manifiesto de la aplicación.

Cuenta

Identifica una cuenta y cómo iniciar sesión en 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 . Requerido. El tipo de cuenta, según para qué sirve (por ejemplo, Google) y cuál es su mecanismo de inicio de sesión (por ejemplo, nombre de usuario y contraseña). account_type puede ser solo uno de los siguientes:
googleAuto

object ( GoogleAuto )

Una cuenta de inicio de sesión automática de Google.

GoogleAuto

Habilita el inicio de sesión automático de la cuenta de Google. Si se configura, el servicio genera automáticamente una cuenta de prueba de Google y la agrega al dispositivo antes de ejecutar la prueba. Tenga en cuenta que es posible que se reutilicen las cuentas de prueba. Muchas aplicaciones muestran su conjunto completo de funcionalidades cuando hay una cuenta presente en el dispositivo. Iniciar sesión en el dispositivo con estas cuentas generadas permite probar más funcionalidades.

Variable ambiental

Un par clave-valor pasado como variable de entorno a la prueba.

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

string

Clave para 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 ser entre 1 y 30 segundos. 0 deshabilita la ruta del sistema.

Configuración de prueba de iOS

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

El perfil de tráfico de red utilizado para ejecutar la prueba. Los perfiles de red disponibles se pueden consultar utilizando el tipo de entorno NETWORK_CONFIGURATION al llamar a TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

additionalIpas[]

object ( FileReference )

Aplicaciones de iOS para instalar además de las que se están probando directamente.

pushFiles[]

object ( IosDeviceFile )

Lista de archivos para enviar al dispositivo antes de comenzar la prueba.

pullDirectories[]

object ( IosDeviceFile )

Lista de directorios en el dispositivo para cargar en 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 aplicación (como /Documentos) especificando el ID del paquete.

Archivo de dispositivo iOS

Un archivo o directorio para instalar en el dispositivo antes de que comience la prueba.

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

object ( FileReference )

El archivo fuente

bundleId

string

La identificación del paquete de la aplicación donde se encuentra este archivo.

Las aplicaciones de iOS tienen su propio sistema de archivos en un espacio aislado, por lo que los archivos de la aplicación deben especificar qué aplicación está instalada en el dispositivo.

devicePath

string

Ubicación del archivo en el dispositivo, dentro del sistema de archivos aislado de la aplicación

Prueba de instrumentación de Android

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

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

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 )

Requerido. El APK que contiene el código de prueba que se ejecutará.

appPackageId

string

El paquete java para la aplicación bajo prueba. El valor predeterminado se determina examinando el manifiesto de la aplicación.

testPackageId

string

El paquete java para que se ejecute la prueba. El valor predeterminado se determina examinando el manifiesto de la aplicación.

testRunnerClass

string

La clase InstrumentationTestRunner. El valor predeterminado se determina examinando el manifiesto de la aplicación.

testTargets[]

string

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

  • "paquete nombre del paquete"
  • "clase nombrepaquete.nombre_clase"
  • "clase nombre_paquete.nombre_clase#nombre_método"

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

orchestratorOption

enum ( OrchestratorOption )

La opción de ejecutar cada prueba dentro de su propia invocación de instrumentación con Android Test Orchestrator o no. ** ¡Orchestrator solo es compatible con AndroidJUnitRunner versión 1.1 o superior! ** Orchestrator ofrece los siguientes beneficios:

  • Sin estado compartido
  • Los accidentes están aislados
  • Los registros tienen un alcance por prueba

Consulte 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 establece, la prueba se ejecutará sin el orquestador.

shardingOption

object ( ShardingOption )

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

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

object ( FileReference )

El APK de la aplicación bajo prueba.

appBundle

object ( AppBundle )

Un paquete de aplicaciones multiapk para la aplicación que se está probando.

Paquete de aplicaciones

Un formato de archivo de Android App Bundle, que contiene un archivo BundleConfig.pb, un directorio de módulo base, cero o más directorios de módulo de funciones dinámicas.

Consulte https://developer.android.com/guide/app-bundle/build para obtener orientación sobre cómo crear paquetes de aplicaciones.

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
bundle de campo sindical. Requerido. Información de ubicación del paquete. bundle puede ser sólo uno de los siguientes:
bundleLocation

object ( FileReference )

Archivo .aab que representa el paquete de aplicaciones bajo prueba.

Opción de orquestador

Especifica cómo ejecutar la prueba.

Enumeraciones
ORCHESTRATOR_OPTION_UNSPECIFIED Valor por defecto: el servidor elegirá el modo. Actualmente implica que la prueba se ejecutará sin el orquestador. En el futuro, todas las pruebas de instrumentación se ejecutarán con el orquestador. Se recomienda encarecidamente utilizar el orquestador debido a todos los beneficios que ofrece.
USE_ORCHESTRATOR Ejecute la prueba usando el orquestador. ** ¡Solo compatible con AndroidJUnitRunner versión 1.1 o superior! ** Recomendado.
DO_NOT_USE_ORCHESTRATOR Ejecute la prueba sin utilizar el orquestador.

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

option de campo de unión.

option puede ser sólo una de las siguientes:

uniformSharding

object ( UniformSharding )

Fragmenta uniformemente los casos de prueba dado un número total de fragmentos.

manualSharding

object ( ManualSharding )

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

smartSharding

object ( SmartSharding )

Prueba de fragmentos basada en registros de tiempo de casos de prueba anteriores.

fragmentación uniforme

Fragmenta uniformemente los casos de prueba dado un número total de fragmentos.

Para las pruebas de instrumentación, se traducirá a los argumentos AndroidJUnitRunner "-e numShard" y "-e shardIndex". 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 utiliza AndroidJUnitRunner, no hay garantía de que los casos de prueba se distribuyan uniformemente en todos los fragmentos.

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

integer

Requerido. El número total de fragmentos que se van a crear. Siempre debe ser un número positivo que no sea mayor que el número total de casos de prueba. Cuando selecciona uno o más dispositivos físicos, la cantidad de fragmentos debe ser <= 50. Cuando selecciona uno o más dispositivos virtuales ARM, debe ser <= 200. Cuando selecciona solo dispositivos virtuales x86, debe ser <= 500 .

Fragmentación manual

Fragmenta los casos de prueba en los grupos especificados de paquetes, clases y/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 )

Requerido. Grupo de paquetes, clases y/o métodos de prueba que se ejecutarán para cada fragmento creado manualmente. Debe especificar al menos un fragmento si este campo está presente. Cuando selecciona uno o más dispositivos físicos, el número de testTargetsForShard repetidos debe ser <= 50. Cuando selecciona uno o más dispositivos virtuales ARM, debe ser <= 200. Cuando selecciona solo dispositivos virtuales x86, debe ser <= 500.

Objetivos de prueba para fragmentos

Objetivos de prueba para un fragmento.

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

string

Grupo de paquetes, clases y/o métodos de prueba que se ejecutarán para cada fragmento. Los objetivos deben especificarse en el formato de argumento de AndroidJUnitRunner. Por ejemplo, "paquete com.mis.paquetes" "clase com.mi.paquete.MiClase".

El número de testTargets debe ser mayor que 0.

Fragmentación inteligente

Prueba de fragmentos basada en 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 tomar 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 (que se describe a continuación). Para garantizar al menos un caso de prueba para cada fragmento, la cantidad de fragmentos no excederá la cantidad de casos de prueba. La duración del fragmento se excederá si:

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

La duración de la fragmentación no está garantizada porque la fragmentación inteligente utiliza el historial de casos de prueba y duraciones predeterminadas que pueden no ser precisas. Las reglas para encontrar los registros de tiempo del caso de prueba son:

  • Si el servicio ha procesado un caso de prueba en los últimos 30 días, se utilizará el registro del último caso de prueba exitoso.
  • Para casos de prueba nuevos, se utilizará 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 del caso de prueba es de 15 segundos.

Debido a que la duración real del fragmento puede exceder la duración del fragmento objetivo, le recomendamos que establezca el valor objetivo al menos 5 minutos menos que el tiempo de espera de prueba máximo permitido (45 minutos para dispositivos físicos y 60 minutos para virtuales), o que use el tiempo de espera de prueba personalizado. valor de tiempo de espera de prueba que usted estableció. Este enfoque evita cancelar el fragmento antes de que puedan finalizar todas las pruebas.

Tenga en cuenta que existe un límite para la cantidad máxima de fragmentos. Cuando selecciona uno o más dispositivos físicos, la cantidad de fragmentos debe ser <= 50. Cuando selecciona uno o más dispositivos virtuales ARM, debe ser <= 200. Cuando selecciona solo dispositivos virtuales x86, debe ser <= 500 Para garantizar al menos un caso de prueba por fragmento, el número de fragmentos no excederá el número de casos de prueba. Cada fragmento creado cuenta para la cuota de prueba diaria.

Una duración en segundos con hasta nueve dígitos fraccionarios, que termina en ' s '. Ejemplo: "3.5s" .

AndroidRoboPrueba

Una prueba de una aplicación de Android que explora la aplicación en un dispositivo Android virtual o físico, encontrando culpables y fallas a medida que avanza.

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

El paquete java para la aplicación bajo prueba. El valor predeterminado se determina examinando el manifiesto de la aplicación.

appInitialActivity

string

La actividad inicial que se debe utilizar para iniciar la aplicación.

maxDepth
(deprecated)

integer

La profundidad máxima de la pila transversal que Robo puede explorar. Deben ser al menos 2 para que Robo explore la aplicación más allá de la primera actividad. El valor predeterminado es 50.

maxSteps
(deprecated)

integer

El número máximo de pasos que Robo puede ejecutar. El valor predeterminado no es límite.

roboDirectives[]

object ( RoboDirective )

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

roboMode

enum ( RoboMode )

El modo en el que debe ejecutarse Robo. La mayoría de los clientes deberían permitir que el servidor complete este campo automáticamente.

roboScript

object ( FileReference )

Un archivo JSON con una secuencia de acciones que Robo debe realizar como prólogo del rastreo.

startingIntents[]

object ( RoboStartingIntent )

Los intents utilizados para iniciar la aplicación para el rastreo. Si no se proporciona ninguno, se inicia la actividad del iniciador principal. Si se proporcionan algunos, solo se inician los proporcionados (la actividad principal del iniciador debe proporcionarse explícitamente).

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

object ( FileReference )

El APK de la aplicación bajo prueba.

appBundle

object ( AppBundle )

Un paquete de aplicaciones multiapk para la aplicación que se está probando.

RoboDirectiva

Indica a Robo que interactúe con un elemento específico de la interfaz de usuario si se encuentra durante el rastreo. Actualmente, Robo puede realizar entrada de texto o hacer clic en elementos.

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

string

Requerido. El nombre del recurso de Android del elemento de la interfaz de usuario de destino. Por ejemplo, en Java: R.string.foo en xml: @string/foo Solo se necesita la parte "foo". Documento de referencia: https://developer.android.com/guide/topics/resources/accessing-resources.html

inputText

string

El texto que Robo debe establecer. Si se deja vacía, la directiva se tratará como un CLIC en el elemento que coincide con el nombre del recurso.

actionType

enum ( RoboActionType )

Requerido. El tipo de acción que Robo debe realizar en el elemento especificado.

Tipo de acción Robo

Acciones que Robo puede realizar en elementos de la interfaz de usuario.

Enumeraciones
ACTION_TYPE_UNSPECIFIED NO UTILICE. Solo para versiones proto.
SINGLE_CLICK Dirige a Robo para que haga clic en el elemento especificado. No operativo si no se puede hacer clic en el elemento especificado.
ENTER_TEXT Dirige a Robo para que ingrese texto en el elemento especificado. No operativo si el elemento especificado no está habilitado o no permite la entrada de texto.
IGNORE Dirige a Robo para que ignore las interacciones con un elemento específico.

Modo Robo

El modo en el que debe ejecutarse Robo.

Enumeraciones
ROBO_MODE_UNSPECIFIED Esto significa que el servidor debe elegir el modo. Recomendado.
ROBO_VERSION_1 Ejecuta Robo en modo UIAutomator únicamente sin que la aplicación abandone
ROBO_VERSION_2 Ejecuta Robo en Espresso estándar con respaldo de UIAutomator

RoboIntención inicial

Mensaje para especificar las actividades de inicio a rastrear.

Representación JSON
{
  "timeout": string,

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

string ( Duration format)

Tiempo de espera en segundos para cada intención.

Una duración en segundos con hasta nueve dígitos fraccionarios, que termina en ' s '. Ejemplo: "3.5s" .

Campo de unión starting_intent . Requerido. Detalles de la intención para iniciar una actividad. starting_intent puede ser solo uno de los siguientes:
launcherActivity

object ( LauncherActivityIntent )

Una intención que inicia la actividad principal del iniciador.

startActivity

object ( StartActivityIntent )

Una intención que inicia una actividad con detalles específicos.

LanzadorActividadIntento

Especifica una intención que inicia la actividad del iniciador principal.

InicioActividadIntento

Una intención inicial especificada por una acción, uri y categorías.

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

string

Nombre de la acción. Requerido para START_ACTIVITY.

uri

string

URI para la acción.

categories[]

string

Categorías de intención para establecer según la intención.

Bucle de prueba de Android

Una prueba de una aplicación de Android con un bucle de prueba. La intención <intent-name> se agregará implícitamente, ya que Games es el único usuario de esta API, por el momento.

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

El paquete java para la aplicación bajo prueba. El valor predeterminado se determina examinando el manifiesto de la aplicación.

scenarios[]

integer

La lista de escenarios que se deben ejecutar durante la prueba. El valor predeterminado son todos los bucles de prueba, derivados del manifiesto de la aplicación.

scenarioLabels[]

string

La lista de etiquetas de escenario que se deben ejecutar durante la prueba. Las etiquetas del escenario deben asignarse a las etiquetas definidas en el manifiesto de la aplicación. Por ejemplo, player_experience y com.google.test.loops.player_experience agregan a la ejecución todos los bucles etiquetados en el manifiesto con el nombre com.google.test.loops.player_experience. Los escenarios también se pueden especificar en el campo de escenarios.

Campo de unión app_under_test . Requerido. El paquete de Android para probar. app_under_test puede ser solo uno de los siguientes:
appApk

object ( FileReference )

El APK de la aplicación bajo prueba.

appBundle

object ( AppBundle )

Un paquete de aplicaciones multiapk para la aplicación que se está probando.

Prueba IosXc

Una prueba de una aplicación de iOS que utiliza el marco XCTest. Xcode admite la opción de "compilar para pruebas", que genera un archivo .xctestrun que contiene una especificación de prueba (argumentos, métodos de prueba, etc.). Este tipo de prueba acepta un archivo zip que contiene el archivo .xctestrun y el contenido correspondiente del directorio Build/Products que contiene todos los archivos 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 )

Requerido. El .zip que contiene el archivo .xctestrun y el contenido del directorio DerivedData/Build/Products. El archivo .xctestrun en este zip se ignora si se especifica el campo xctestrun.

xctestrun

object ( FileReference )

Un archivo .xctestrun que anulará el archivo .xctestrun en el zip de pruebas. Debido a que el archivo .xctestrun contiene variables de entorno junto con métodos de prueba para ejecutar y/o ignorar, esto puede resultar útil para pruebas de fragmentación. El valor predeterminado se toma del zip de las pruebas.

xcodeVersion

string

La versión de Xcode que se debe utilizar para la prueba. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles. El valor predeterminado es la última versión de Xcode que admite Firebase Test Lab.

appBundleId

string

Sólo salida. El ID del paquete de la aplicación bajo prueba.

testSpecialEntitlements

boolean

La opción de probar derechos de aplicaciones especiales. Configurar esto volvería a firmar la aplicación que tiene derechos especiales con un identificador de aplicación explícito. Actualmente admite pruebas de derechos de entorno aps.

IosTestLoop

Una prueba de una aplicación de iOS que implementa uno o más escenarios de bucle de juego. Este tipo de prueba acepta una aplicación archivada (archivo .ipa) y una lista de escenarios enteros que se ejecutarán en la aplicación de forma secuencial.

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

object ( FileReference )

Requerido. El .ipa de la aplicación a probar.

scenarios[]

integer

La lista de escenarios que se deben ejecutar durante la prueba. El valor predeterminado es el escenario único 0 si no se especifica.

appBundleId

string

Sólo salida. El ID del paquete de la aplicación bajo prueba.

Matriz Ambiental

La matriz de entornos en los 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 . Requerido. La matriz ambiental. environment_matrix puede ser solo uno de los siguientes:
androidMatrix

object ( AndroidMatrix )

Una matriz de dispositivos Android.

androidDeviceList

object ( AndroidDeviceList )

Una lista de dispositivos Android; la prueba se ejecutará solo en los dispositivos especificados.

iosDeviceList

object ( IosDeviceList )

Una lista de dispositivos iOS.

AndroidMatrix

Un conjunto de permutaciones de configuración de dispositivos Android se define mediante el producto cruzado de los ejes dados. Internamente, el AndroidMatrix dado se expandirá a un conjunto de dispositivos Android.

Sólo se crearán instancias de las permutaciones admitidas. Las permutaciones no válidas (por ejemplo, modelos/versiones incompatibles) se ignoran.

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

string

Requerido. Los identificadores del conjunto de dispositivos Android que se utilizarán. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

androidVersionIds[]

string

Requerido. Los identificadores del conjunto de versiones del sistema operativo Android que se utilizarán. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

locales[]

string

Requerido. El conjunto de configuraciones regionales que el dispositivo de prueba habilitará para realizar pruebas. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

orientations[]

string

Requerido. El conjunto de orientaciones con las que realizar la prueba. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

Lista de dispositivos Android

Una lista de configuraciones del dispositivo Android en las que se ejecutará la prueba.

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

object ( AndroidDevice )

Requerido. Una lista de dispositivos Android.

Dispositivo Android

Un único dispositivo Android.

Representación JSON
{
  "androidModelId": string,
  "androidVersionId": string,
  "locale": string,
  "orientation": string
}
Campos
androidModelId

string

Requerido. La identificación del dispositivo Android que se utilizará. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

androidVersionId

string

Requerido. La identificación de la versión del sistema operativo Android que se utilizará. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

locale

string

Requerido. La configuración regional que utilizó el dispositivo de prueba para la prueba. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

orientation

string

Requerido. Cómo se orienta el dispositivo durante la prueba. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

Lista de dispositivos iOS

Una lista de configuraciones de dispositivos iOS en las que se ejecutará la prueba.

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

object ( IosDevice )

Requerido. Una lista de dispositivos iOS.

Dispositivo iOS

Un único dispositivo iOS.

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

string

Requerido. La identificación del dispositivo iOS que se utilizará. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

iosVersionId

string

Requerido. La identificación de la versión principal del software iOS que se utilizará. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

locale

string

Requerido. La configuración regional que utilizó el dispositivo de prueba para la prueba. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

orientation

string

Requerido. Cómo se orienta el dispositivo durante la prueba. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles.

Ejecución de pruebas

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

Sólo salida. Identificación única establecida por el servicio.

matrixId

string

Sólo salida. Id. del TestMatrix que lo contiene.

projectId

string

Sólo salida. El proyecto en la nube propietario de la ejecución de la prueba.

testSpecification

object ( TestSpecification )

Sólo salida. Cómo ejecutar la prueba.

shard

object ( Shard )

Sólo salida. Detalles sobre el fragmento.

environment

object ( Environment )

Sólo salida. Cómo están configuradas las máquinas host.

state

enum ( TestState )

Sólo salida. Indica el progreso actual de la ejecución de la prueba (por ejemplo, FINALIZADO).

toolResultsStep

object ( ToolResultsStep )

Sólo salida. Donde se escriben los resultados de esta ejecución.

timestamp

string ( Timestamp format)

Sólo salida. La hora a la que se creó inicialmente esta ejecución de prueba.

Una marca de tiempo en formato RFC3339 UTC "Zulu", con 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 )

Sólo salida. Detalles adicionales sobre la prueba en ejecución.

Casco

Sólo salida. Detalles sobre el fragmento.

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

integer

Sólo salida. El índice del fragmento entre todos los fragmentos.

numShards

integer

Sólo salida. El número total de fragmentos.

testTargetsForShard

object ( TestTargetsForShard )

Sólo salida. Objetivos de prueba para cada fragmento. Solo configurado para fragmentación manual.

estimatedShardDuration

string ( Duration format)

Sólo salida. La duración estimada del fragmento basada en registros de tiempo de casos de prueba anteriores, si están disponibles.

Una duración en segundos con hasta nueve dígitos fraccionarios, que termina en ' s '. Ejemplo: "3.5s" .

Ambiente

El entorno en el que se ejecuta 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
environment de campo sindical. Requerido. El entorno. environment puede ser sólo uno de los siguientes:
androidDevice

object ( AndroidDevice )

Un dispositivo Android que debe usarse con una prueba de Android.

iosDevice

object ( IosDevice )

Un dispositivo iOS que debe usarse con una prueba de iOS.

Estado de prueba

El estado (es decir, el progreso) de una matriz o ejecución de prueba.

Enumeraciones
TEST_STATE_UNSPECIFIED No utilice. Solo para versiones proto.
VALIDATING La ejecución o matriz está siendo validada.
PENDING La ejecución o matriz está esperando que los recursos estén disponibles.
RUNNING

La ejecución se encuentra actualmente en trámite.

Sólo se puede configurar en una ejecución.

FINISHED

La ejecución o matriz ha terminado normalmente.

En una matriz, esto significa que el procesamiento a nivel de matriz se completó normalmente, pero las ejecuciones individuales pueden estar en un estado de ERROR.

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

La ejecución no se ejecutó porque corresponde a un entorno no compatible.

Sólo se puede configurar en una ejecución.

INCOMPATIBLE_ENVIRONMENT

La ejecución no se ejecutó porque las entradas proporcionadas son incompatibles con el entorno solicitado.

Ejemplo: la versión de Android solicitada es inferior a la versión minSdk del APK

Sólo se puede configurar en una ejecución.

INCOMPATIBLE_ARCHITECTURE

La ejecución no se ejecutó porque las entradas proporcionadas son incompatibles con la arquitectura solicitada.

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

Sólo se puede configurar en una ejecución.

CANCELLED

El usuario canceló la ejecución.

Sólo se puede configurar en una ejecución.

INVALID

La ejecución o matriz no se ejecutó porque las entradas proporcionadas no son válidas.

Ejemplos: el archivo de entrada no es del tipo esperado, está mal formado/está dañado o fue marcado como malware

HerramientaResultadosPaso

Representa un recurso de paso de resultados de herramienta.

Esto tiene los resultados de una TestExecution.

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

string

Sólo salida. El proyecto de nube propietario del paso de resultados de la herramienta.

historyId

string

Sólo salida. Un ID del historial de resultados de la herramienta.

executionId

string

Sólo salida. Un ID de ejecución de resultados de herramienta.

stepId

string

Sólo salida. Una herramienta da como resultado el ID del paso.

Detalles de la prueba

Detalles adicionales sobre el progreso de la prueba en ejecución.

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

string

Sólo salida. Descripciones detalladas y legibles por humanos del progreso de la prueba. Por ejemplo: "Aprovisionando un dispositivo", "Iniciando prueba".

Durante el curso de la ejecución se pueden agregar nuevos datos al final de los mensajes de progreso.

errorMessage

string

Sólo salida. Si TestState es ERROR, entonces esta cadena contendrá detalles legibles por humanos sobre el error.

Almacenamiento de resultados

Ubicaciones donde 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 )

Requerido.

toolResultsHistory

object ( ToolResultsHistory )

El historial de resultados de la herramienta que contiene la ejecución de los resultados de la herramienta en la que se escriben los resultados.

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

toolResultsExecution

object ( ToolResultsExecution )

Sólo salida. La herramienta produce la ejecución en la que se escriben los resultados.

resultsUrl

string

Sólo salida. URL de los resultados en Firebase Web Console.

Almacenamiento en la nube de Google

Una ubicación de almacenamiento dentro del almacenamiento en la nube de Google (GCS).

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

string

Requerido. La ruta a un directorio en GCS que eventualmente contendrá los resultados de esta prueba. El usuario solicitante debe tener acceso de escritura en el depósito en la ruta proporcionada.

HerramientaResultadosHistorial

Representa un recurso del historial de resultados de la herramienta.

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

string

Requerido. El proyecto en la nube propietario del historial de resultados de la herramienta.

historyId

string

Requerido. Un ID del historial de resultados de la herramienta.

HerramientaResultadosEjecución

Representa un recurso de ejecución de resultados de herramienta.

Esto tiene los resultados de un TestMatrix.

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

string

Sólo salida. El proyecto en la nube propietario de la herramienta resulta en la ejecución.

historyId

string

Sólo salida. Un ID del historial de resultados de la herramienta.

executionId

string

Sólo salida. Un ID de ejecución de resultados de herramienta.

Detalles de matriz no válidos

La razón detallada por la que una Matriz se consideró NO VÁLIDA.

Enumeraciones
INVALID_MATRIX_DETAILS_UNSPECIFIED No utilice. Solo para versiones proto.
DETAILS_UNAVAILABLE La matriz no es válida, pero no hay más detalles disponibles.
MALFORMED_APK No se pudo analizar el APK de la aplicación de entrada.
MALFORMED_TEST_APK No se pudo analizar el APK de prueba de entrada.
NO_MANIFEST No se pudo encontrar AndroidManifest.xml.
NO_PACKAGE_NAME El manifiesto APK no declara un nombre de paquete.
INVALID_PACKAGE_NAME El ID de la aplicación APK (también conocido como nombre del paquete) no es válido. Consulte también https://developer.android.com/build/configure-app-module#set-application-id
TEST_SAME_AS_APP El paquete de prueba y el paquete de aplicación son iguales.
NO_INSTRUMENTATION La aplicación de prueba no declara una instrumentación.
NO_SIGNATURE La aplicación de entrada apk no tiene firma.
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE La clase del ejecutor de pruebas especificada por el usuario o en el archivo de manifiesto del APK de prueba no es compatible con Android Test Orchestrator. Orchestrator solo es compatible con AndroidJUnitRunner versión 1.1 o superior. Orchestrator se puede desactivar utilizando DO_NOT_USE_ORCHESTRATOR OrchestratorOption.
NO_TEST_RUNNER_CLASS

El APK de prueba no contiene la clase del ejecutor de pruebas especificada por el usuario o en el archivo de manifiesto. Esto puede deberse a una de las siguientes razones:

  • el usuario proporcionó un nombre de clase de corredor que es incorrecto, o
  • el ejecutor de pruebas no está integrado en el APK de prueba (en su lugar, podría estar en el APK de la aplicación).
NO_LAUNCHER_ACTIVITY No se pudo encontrar una actividad del iniciador principal.
FORBIDDEN_PERMISSIONS La aplicación declara uno o más permisos que no están permitidos.
INVALID_ROBO_DIRECTIVES Hay un conflicto en las roboDirectives proporcionadas.
INVALID_RESOURCE_NAME Hay al menos un nombre de recurso no válido en las directivas robo proporcionadas
INVALID_DIRECTIVE_ACTION Definición no válida de acción en las directivas de robo (por ejemplo, una acción de hacer clic o ignorar incluye un campo de texto de entrada)
TEST_LOOP_INTENT_FILTER_NOT_FOUND No hay ningún filtro de intención de bucle de prueba o el que se proporciona no tiene el formato correcto.
SCENARIO_LABEL_NOT_DECLARED La solicitud contiene una etiqueta de escenario que no se declaró en el manifiesto.
SCENARIO_LABEL_MALFORMED Se produjo un error al analizar el valor de una etiqueta.
SCENARIO_NOT_DECLARED La solicitud contiene un número de escenario que no fue declarado en el manifiesto.
DEVICE_ADMIN_RECEIVER No se permiten aplicaciones de administrador de dispositivos.
MALFORMED_XC_TEST_ZIP El XCTest comprimido estaba mal formado. El zip no contenía un solo archivo .xctestrun ni el contenido del directorio DerivedData/Build/Products.
BUILT_FOR_IOS_SIMULATOR El XCTest comprimido se creó para el simulador de iOS en lugar de 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 especifican "UseDestinationArtifacts", lo cual no está permitido.
TEST_NOT_APP_HOSTED Las pruebas XC que se ejecutan en dispositivos físicos deben tener "IsAppHostedTestBundle" == "true" en el archivo xctestrun.
PLIST_CANNOT_BE_PARSED No se pudo analizar un archivo Info.plist en el zip XCTest.
TEST_ONLY_APK

El APK está marcado como "testOnly". En desuso y no utilizado actualmente.

MALFORMED_IPA No se pudo analizar la IPA de entrada.
MISSING_URL_SCHEME La aplicación no registra el esquema de URL del bucle del juego.
MALFORMED_APP_BUNDLE No se pudo procesar el paquete de aplicaciones de iOS (.app).
NO_CODE_APK APK no contiene código. Consulte también https://developer.android.com/guide/topics/manifest/application-element.html#code
INVALID_INPUT_APK O la ruta del APK de entrada proporcionada tenía un formato incorrecto, el archivo APK no existe o el usuario no tiene permiso para acceder al archivo APK.
INVALID_APK_PREVIEW_SDK APK está creado para un SDK de vista previa que no es compatible
MATRIX_TOO_LARGE La matriz se expandió para contener demasiadas ejecuciones.
TEST_QUOTA_EXCEEDED No hay suficiente cuota de prueba para ejecutar las ejecuciones en esta matriz.
SERVICE_NOT_ACTIVATED Una API de servicio en la nube requerida no está activada. Ver: https://firebase.google.com/docs/test-lab/android/continuous#requirements
UNKNOWN_PERMISSION_ERROR Hubo un problema de permiso desconocido al ejecutar esta prueba.

Resumen de resultados

Resumen de resultados para una matriz de prueba terminada.

Enumeraciones
OUTCOME_SUMMARY_UNSPECIFIED No utilice. Solo para versiones proto.
SUCCESS

La ejecución de la matriz de prueba fue exitosa, por ejemplo:

  • Todos los casos de prueba pasaron.
  • Robo no detectó un bloqueo de la aplicación bajo prueba.
FAILURE

Falló una ejecución, por ejemplo:

  • Uno o más casos de prueba fallaron.
  • Una prueba programada.
  • La aplicación bajo la prueba se bloqueó.
INCONCLUSIVE Algo inesperado sucedió. La ejecución aún debe considerarse infructuosa, pero esto es probable que sea un problema transitorio y volver a ejecutar la prueba podría ser exitoso.
SKIPPED

Todas las pruebas fueron omitidas, por ejemplo:

  • Todas las configuraciones del dispositivo fueron incompatibles.

Métodos

cancel

Cancela las ejecuciones de prueba sin terminar en una matriz de prueba.

create

Crea y ejecuta una matriz de pruebas de acuerdo con las especificaciones dadas.

get

Comprueba el estado de una matriz de prueba y las ejecuciones una vez que se crean.