Recurso de REST: projects.testMatrices

Recurso: TestMatrix

Un grupo de uno o más TestExecutions compilados con un producto de valores superiores a un conjunto predeterminado de ejes.

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)
}
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. Se refiere a cómo las máquinas host están configuradas.

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 (p. ej., FINALIZADO).

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 el formato RFC3339 UTC "Zulu", con precisión de nanosegundos. Ejemplo: "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.

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,
  "autoGoogleLogin": boolean,
  "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)
  }
  // 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 un máximo de 9 dígitos decimales, que termina con “s”. Ejemplo: "3.5s".

autoGoogleLogin
(deprecated)

boolean

Habilita el acceso automático a la Cuenta de Google. Si se configura, el servicio generará automáticamente una cuenta de prueba de Google y la agregará al dispositivo antes de ejecutar la prueba. Ten presente que estas cuentas se pueden reutilizar. 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. El valor predeterminado es falso.

disableVideoRecording

boolean

Inhabilita la grabación de video, lo que puede reducir la latencia de la prueba.

disablePerformanceMetrics

boolean

Inhabilita el registro de las métricas de rendimiento, lo que puede reducir la latencia de la prueba.

El campo de unión setup es obligatorio.

setup solamente puede ser una de las siguientes opciones:

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.

El campo de unión test es obligatorio. El tipo de prueba para ejecutar test solamente puede ser una de las siguientes opciones:
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.

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
  ],
  "additionalApks": [
    {
      object(Apk)
    }
  ],
  "account": {
    object(Account)
  },
  "networkProfile": string,
  "environmentVariables": [
    {
      object(EnvironmentVariable)
    }
  ]
}
Campos
filesToPush[]

object(DeviceFile)

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

directoriesToPull[]

string

Es una lista de directorios en el dispositivo que deben subirse a GCS al final de la prueba. Deben ser rutas absolutas en /sdcard o /data/local/tmp. Los nombres de las rutas se restringen a los 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.

additionalApks[]

object(Apk)

Son los APK que se deben instalar además de los que se prueban directamente. 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. Los perfiles de red disponibles se pueden consultar con el tipo de entorno NETWORK_CONFIGURATION cuando llamas a TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

environmentVariables[]

object(EnvironmentVariable)

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

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
El campo de unión device_file es obligatorio. device_file solamente puede ser una de las siguientes opciones:
obbFile

object(ObbFile)

Es una referencia a un archivo BLOB binario opaco.

regularFile

object(RegularFile)

Es una referencia a un archivo regular.

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

{
  "gcsPath": string
}
Campos
gcsPath

string

Es una ruta a un archivo en Google Cloud Storage. Ejemplo: gs://build-app-1414623860166/app-debug-unaligned.apk

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 y que esté incluida en la lista blanca. Si ya existe el archivo, se remplazará. Los siguientes directorios del dispositivo y cualquiera de sus subdirectorios están incluidos en la lista blanca:

${EXTERNAL_STORAGE} o /sdcard

${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

{
  "googleAuto": {
    object(GoogleAuto)
  }
}
Campos
googleAuto

object(GoogleAuto)

Cuenta de acceso a Google automática.

GoogleAuto

Habilita el acceso automático a la Cuenta de Google. Si se configura, el servicio generará automáticamente una cuenta de prueba de Google y la agregará al dispositivo antes de ejecutar la prueba. Ten presente que estas cuentas se pueden reutilizar. 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.

IosTestSetup

Es una descripción sobre cómo configurar un dispositivo iOS antes de realizar una prueba.

Representación JSON

{
  "networkProfile": string
}
Campos
networkProfile

string

Es el perfil de tráfico de red que se usa para ejecutar la prueba. Los perfiles de red disponibles se pueden consultar con el tipo de entorno NETWORK_CONFIGURATION cuando llamas a TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.

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.

Consulta http://developer.android.com/tools/testing/testing_android.html 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),

  // 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

Se debe calificar totalmente cada objetivo con un nombre de paquete o de clase que tenga uno de los siguientes formatos: “paquete packageName”, “clase packageName.class_name” o “clase packageName.class_name#method_name”.

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.0 de AndroidJUnitRunner o versiones más recientes. ** Orchestrator ofrece los siguientes beneficios: no tiene estado compartido, se aíslan las fallas y 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.

El campo de unión app_under_test es obligatorio. app_under_test solamente puede ser una de las siguientes opciones:
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

{
  "bundleLocation": {
    object(FileReference)
  }
}
Campos
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, lo que actualmente significa 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 la versión 1.0 de AndroidJUnitRunner o versiones más recientes. ** Sugerencia recomendada.
DO_NOT_USE_ORCHESTRATOR Ejecuta la prueba sin usar Orchestrator.

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": number,
  "maxSteps": number,
  "roboDirectives": [
    {
      object(RoboDirective)
    }
  ],
  "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)

number

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)

number

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 debería aplicar durante el rastreo para que los usuarios puedan personalizarlo. Por ejemplo, se pueden proporcionar el nombre de usuario y la contraseña de una cuenta de prueba.

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).

El campo de unión app_under_test es obligatorio. app_under_test solamente puede ser una de las siguientes opciones:
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

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.

RoboStartingIntent

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

Representación JSON

{

  // 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

El campo de unión starting_intent es obligatorio.

starting_intent solamente puede ser una de las siguientes opciones:

launcherActivity

object(LauncherActivityIntent)

startActivity

object(StartActivityIntent)

LauncherActivityIntent

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.

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": [
    number
  ],
  "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[]

number

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

Es la lista de etiquetas de situaciones que se deberían ejecutar durante la prueba. Estas etiquetas deberían asignar las etiquetas definidas en el manifiesto de la aplicación. Por ejemplo, player_experience y com.google.test.loops.player_experien