- Recurso: TestMatrix
- Información del cliente
- Información del clienteDetalle
- Especificación de prueba
- Configuración de prueba
- Archivo de dispositivo
- Archivo Obb
- Referencia de archivo
- Archivo regular
- apk
- Cuenta
- GoogleAuto
- Variable ambiental
- Configuración de Systrace
- Configuración de prueba de iOS
- Archivo de dispositivo iOS
- Prueba de instrumentación de Android
- Paquete de aplicaciones
- Opción de orquestador
- Opción de fragmentación
- fragmentación uniforme
- Fragmentación manual
- Objetivos de prueba para fragmentos
- Fragmentación inteligente
- AndroidRoboPrueba
- RoboDirectiva
- Tipo de acción Robo
- Modo Robo
- RoboIntención inicial
- LanzadorActividadIntento
- InicioActividadIntento
- Bucle de prueba de Android
- Prueba IosXc
- IosTestLoop
- Matriz Ambiental
- AndroidMatrix
- Lista de dispositivos Android
- Dispositivo Android
- Lista de dispositivos iOS
- Dispositivo iOS
- Ejecución de pruebas
- Casco
- Ambiente
- Estado de prueba
- HerramientaResultadosPaso
- Detalles de la prueba
- Almacenamiento de resultados
- Almacenamiento en la nube de Google
- HerramientaResultadosHistorial
- HerramientaResultadosEjecución
- Detalles de matriz no válidos
- Resumen de resultados
- Métodos
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 ( |
Campos | |
---|---|
testMatrixId | Sólo salida. Identificación única establecida por el servicio. |
projectId | El proyecto en la nube propietario de la matriz de prueba. |
clientInfo | Información sobre el cliente que invocó la prueba. |
testSpecification | Requerido. Cómo ejecutar la prueba. |
environmentMatrix | Requerido. Los dispositivos en los que se ejecutan las pruebas. |
testExecutions[] | Sólo salida. La lista de ejecuciones de prueba que el servicio crea para esta matriz. |
resultStorage | Requerido. Donde se escriben los resultados de la matriz. |
state | Sólo salida. Indica el progreso actual de la matriz de prueba. |
timestamp | 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: |
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 | 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 | Sólo salida. El resultado general de la prueba. Solo se establece cuando el estado de la matriz de prueba está FINALIZADO. |
failFast | 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 ( |
Campos | |
---|---|
name | Requerido. Nombre del cliente, como gcloud. |
clientInfoDetails[] | 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 | Requerido. La clave de la información detallada del cliente. |
value | 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 |
Campos | |
---|---|
testTimeout | 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 ' |
disableVideoRecording | Desactiva la grabación de vídeo. Puede reducir la latencia de la prueba. |
disablePerformanceMetrics | 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 | Pruebe los requisitos de configuración para Android, por ejemplo, archivos para instalar, scripts de arranque. |
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 | Una prueba de instrumentación de Android. |
androidRoboTest | Una prueba de robo de Android. |
androidTestLoop | Una aplicación de Android con un bucle de prueba. |
iosXcTest | Un XCTest de iOS, a través de un archivo .xctestrun. |
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 ( |
Campos | |
---|---|
filesToPush[] | Lista de archivos para enviar al dispositivo antes de comenzar la prueba. |
directoriesToPull[] | 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[] | APK para instalar además de los que se están probando directamente. Actualmente tiene un límite de 100. |
account | El dispositivo iniciará sesión en esta cuenta durante la duración de la prueba. |
networkProfile | 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[] | Variables de entorno a configurar para la prueba (solo aplicable para pruebas de instrumentación). |
systrace | 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 | 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 |
Campos | |
---|---|
Campo de unión device_file . Requerido. device_file puede ser solo uno de los siguientes: | |
obbFile | Referencia a un archivo blob binario opaco. |
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 ( |
Campos | |
---|---|
obbFileName | 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 | 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 |
Campos | |
---|---|
file de campo sindical. Requerido. La referencia del archivo. file puede ser sólo uno de los siguientes: | |
gcsPath | 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 ( |
Campos | |
---|---|
content | Requerido. El archivo fuente. |
devicePath | 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 ( |
Campos | |
---|---|
location | La ruta a un APK que se instalará en el dispositivo antes de que comience la prueba. |
packageName | 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 |
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 | 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 | Clave para la variable de entorno. |
value | Valor de la variable de entorno. |
Configuración de Systrace
Representación JSON |
---|
{ "durationSeconds": integer } |
Campos | |
---|---|
durationSeconds | 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 ( |
Campos | |
---|---|
networkProfile | 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[] | Aplicaciones de iOS para instalar además de las que se están probando directamente. |
pushFiles[] | Lista de archivos para enviar al dispositivo antes de comenzar la prueba. |
pullDirectories[] | 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 ( |
Campos | |
---|---|
content | El archivo fuente |
bundleId | 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 | 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 ( |
Campos | |
---|---|
testApk | Requerido. El APK que contiene el código de prueba que se ejecutará. |
appPackageId | El paquete java para la aplicación bajo prueba. El valor predeterminado se determina examinando el manifiesto de la aplicación. |
testPackageId | El paquete java para que se ejecute la prueba. El valor predeterminado se determina examinando el manifiesto de la aplicación. |
testRunnerClass | La clase InstrumentationTestRunner. El valor predeterminado se determina examinando el manifiesto de la aplicación. |
testTargets[] | Cada destino debe estar completamente calificado con el nombre del paquete o el nombre de la clase, en uno de estos formatos:
Si está vacío, se ejecutarán todos los objetivos del módulo. |
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:
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 | 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 | El APK de la aplicación bajo prueba. |
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 |
Campos | |
---|---|
bundle de campo sindical. Requerido. Información de ubicación del paquete. bundle puede ser sólo uno de los siguientes: | |
bundleLocation | 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 |
Campos | |
---|---|
| |
uniformSharding | Fragmenta uniformemente los casos de prueba dado un número total de fragmentos. |
manualSharding | Fragmenta los casos de prueba en los grupos especificados de paquetes, clases y/o métodos. |
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 | 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 ( |
Campos | |
---|---|
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[] | 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 | 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:
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:
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 ' |
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 ( |
Campos | |
---|---|
appPackageId | El paquete java para la aplicación bajo prueba. El valor predeterminado se determina examinando el manifiesto de la aplicación. |
appInitialActivity | La actividad inicial que se debe utilizar para iniciar la aplicación. |
maxDepth | 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 | El número máximo de pasos que Robo puede ejecutar. El valor predeterminado no es límite. |
roboDirectives[] | 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 | 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 | Un archivo JSON con una secuencia de acciones que Robo debe realizar como prólogo del rastreo. |
startingIntents[] | 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 | El APK de la aplicación bajo prueba. |
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 ( |
Campos | |
---|---|
resourceName | 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 | 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 | 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 |
Campos | |
---|---|
timeout | Tiempo de espera en segundos para cada intención. Una duración en segundos con hasta nueve dígitos fraccionarios, que termina en ' |
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 | Una intención que inicia la actividad principal del iniciador. |
startActivity | 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 | Nombre de la acción. Requerido para START_ACTIVITY. |
uri | URI para la acción. |
categories[] | 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 |
Campos | |
---|---|
appPackageId | El paquete java para la aplicación bajo prueba. El valor predeterminado se determina examinando el manifiesto de la aplicación. |
scenarios[] | 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[] | 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 | El APK de la aplicación bajo prueba. |
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 ( |
Campos | |
---|---|
testsZip | 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 | 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 | 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 | Sólo salida. El ID del paquete de la aplicación bajo prueba. |
testSpecialEntitlements | 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 ( |
Campos | |
---|---|
appIpa | Requerido. El .ipa de la aplicación a probar. |
scenarios[] | La lista de escenarios que se deben ejecutar durante la prueba. El valor predeterminado es el escenario único 0 si no se especifica. |
appBundleId | 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 |
Campos | |
---|---|
Campo de unión environment_matrix . Requerido. La matriz ambiental. environment_matrix puede ser solo uno de los siguientes: | |
androidMatrix | Una matriz de dispositivos Android. |
androidDeviceList | Una lista de dispositivos Android; la prueba se ejecutará solo en los dispositivos especificados. |
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[] | Requerido. Los identificadores del conjunto de dispositivos Android que se utilizarán. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles. |
androidVersionIds[] | Requerido. Los identificadores del conjunto de versiones del sistema operativo Android que se utilizarán. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles. |
locales[] | Requerido. El conjunto de configuraciones regionales que el dispositivo de prueba habilitará para realizar pruebas. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles. |
orientations[] | 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 ( |
Campos | |
---|---|
androidDevices[] | 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 | Requerido. La identificación del dispositivo Android que se utilizará. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles. |
androidVersionId | Requerido. La identificación de la versión del sistema operativo Android que se utilizará. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles. |
locale | Requerido. La configuración regional que utilizó el dispositivo de prueba para la prueba. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles. |
orientation | 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 ( |
Campos | |
---|---|
iosDevices[] | 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 | Requerido. La identificación del dispositivo iOS que se utilizará. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles. |
iosVersionId | Requerido. La identificación de la versión principal del software iOS que se utilizará. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles. |
locale | Requerido. La configuración regional que utilizó el dispositivo de prueba para la prueba. Utilice TestEnvironmentDiscoveryService para obtener opciones compatibles. |
orientation | 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 ( |
Campos | |
---|---|
id | Sólo salida. Identificación única establecida por el servicio. |
matrixId | Sólo salida. Id. del TestMatrix que lo contiene. |
projectId | Sólo salida. El proyecto en la nube propietario de la ejecución de la prueba. |
testSpecification | Sólo salida. Cómo ejecutar la prueba. |
shard | Sólo salida. Detalles sobre el fragmento. |
environment | Sólo salida. Cómo están configuradas las máquinas host. |
state | Sólo salida. Indica el progreso actual de la ejecución de la prueba (por ejemplo, FINALIZADO). |
toolResultsStep | Sólo salida. Donde se escriben los resultados de esta ejecución. |
timestamp | 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: |
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 ( |
Campos | |
---|---|
shardIndex | Sólo salida. El índice del fragmento entre todos los fragmentos. |
numShards | Sólo salida. El número total de fragmentos. |
testTargetsForShard | Sólo salida. Objetivos de prueba para cada fragmento. Solo configurado para fragmentación manual. |
estimatedShardDuration | 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 ' |
Ambiente
El entorno en el que se ejecuta la prueba.
Representación JSON |
---|
{ // Union field |
Campos | |
---|---|
environment de campo sindical. Requerido. El entorno. environment puede ser sólo uno de los siguientes: | |
androidDevice | Un dispositivo Android que debe usarse con una prueba de Android. |
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 | Sólo salida. El proyecto de nube propietario del paso de resultados de la herramienta. |
historyId | Sólo salida. Un ID del historial de resultados de la herramienta. |
executionId | Sólo salida. Un ID de ejecución de resultados de herramienta. |
stepId | 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[] | 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 | 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 ( |
Campos | |
---|---|
googleCloudStorage | Requerido. |
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 | Sólo salida. La herramienta produce la ejecución en la que se escriben los resultados. |
resultsUrl | 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 | 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 | Requerido. El proyecto en la nube propietario del historial de resultados de la herramienta. |
historyId | 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 | Sólo salida. El proyecto en la nube propietario de la herramienta resulta en la ejecución. |
historyId | Sólo salida. Un ID del historial de resultados de la herramienta. |
executionId | 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:
|
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:
|
FAILURE | Falló una ejecución, por ejemplo:
|
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:
|
Métodos | |
---|---|
| Cancela las ejecuciones de prueba sin terminar en una matriz de prueba. |
| Crea y ejecuta una matriz de pruebas de acuerdo con las especificaciones dadas. |
| Comprueba el estado de una matriz de prueba y las ejecuciones una vez que se crean. |