En esta guía, se describe cómo ejecutar una XCTest o una prueba de bucle de juego con la CLI de gcloud.
Paso 1: Configura el entorno local del SDK de Google Cloud
- Descarga el SDK de Google Cloud.
- Asegúrate de que la instalación esté actualizada y que incluya el comando
gcloud firebase
:gcloud components update
- Accede a la CLI de gcloud con tu Cuenta de Google:
gcloud auth login
- Configura tu proyecto de Firebase en gcloud. Para ello, usa el siguiente comando y reemplaza PROJECT_ID por el ID del proyecto:
gcloud config set project PROJECT_ID
Esto incluye la herramienta de CLI de gcloud.
Paso 2: Ejecuta la prueba
Ejecuta una XCTest
Ejecuta el siguiente comando para subir el archivo ZIP de tu prueba (si aún no empaquetas la app, consulta Empaqueta tu XCTest):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Selecciona las dimensiones de tu prueba.
Test Lab te permite ejecutar pruebas en una gran variedad de versiones de iOS, dispositivos, orientaciones de pantalla y opciones de configuración regional. Estas configuraciones se conocen como dimensiones de prueba. Para ver las opciones de cada dimensión (p. ej., las versiones de Xcode compatibles con la versión de iOS del dispositivo), reemplaza
models
,versions
olocales
pordimension
en el siguiente comando:gcloud firebase test ios dimension list
La orientación de la pantalla es un poco más sencilla, ya que sus únicas opciones son
portrait
ylandscape
.Revisa la lista de dimensiones de prueba y selecciona algunas combinaciones sobre las que te gustaría ejecutar la prueba. Consulta los planes de precios para ver la cantidad máxima de combinaciones que puedes ejecutar por día.
Cuando elijas un conjunto de dimensiones de prueba, puedes hacer que Test Lab ejecute las pruebas con el comando
firebase test ios run
. Para cada combinación de dimensiones de prueba que quieras probar, incluye una marca--device
individual:gcloud firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \ etc...
Es posible que la prueba falle debido a una incompatibilidad entre la versión de Xcode con la que se compiló la prueba y la versión de Xcode predeterminada que usa Test Lab. Para especificar una versión de Xcode compatible con tu prueba, usa la marca
--xcode-version
:gcloud firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --xcode-version=15
Para ayudarte a identificar y ubicar las matrices de pruebas en Firebase console, puedes etiquetar la matriz de pruebas de manera opcional con la marca
--client-details matrixLabel="<label>"
del siguiente ejemplo:gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --client-details matrixLabel="my label"
Prueba autorizaciones especiales
Para probar las autorizaciones que requieren un ID de app explícito, puedes
configurar la marca --test-special-entitlements
. Test Lab
vuelve a firmar la aplicación con un nuevo identificador de paquete para admitir
derechos especiales. Por lo tanto, asegúrate de que no haya ningún recurso en tu archivo ZIP
que contenga referencias directas al identificador de paquete de la app.
- Notificaciones push
apns-environment
- VPN personal
com.apple.developer.networking.vpn.api
Para autorizar las solicitudes de notificaciones push, los usuarios pueden crear tokens web JSON con la clave de firma privada, el ID de clave C7FD9DJAA8 y el ID de equipo 9CKCGNNUQN. Los tokens generados serían válidos por una hora y se deben actualizar cada 60 min. Obtén más información en Establishing a Token‑Based Connection to APNs.
Grupos de appsLos IDs de grupos de apps son únicos a nivel universal. Esto significa que, cuando volvemos a firmar las apps de los usuarios, solo podemos usar el ID del grupo de apps asociado con la cuenta de desarrollador de Test Lab. La prueba fallará si se basa en grupos de apps.
Ejecuta una prueba de bucle de juego
Ejecuta el comando gcloud beta firebase test ios run
y usa las siguientes marcas para configurar la ejecución:
Marcas para ejecutar pruebas de bucle de juego | |
---|---|
--type
|
Obligatorio: Especifica el tipo de prueba de iOS que deseas ejecutar. Puedes ingresar los tipos de prueba |
--app
|
Obligatorio: Ruta absoluta (GCS o sistema de archivos) al archivo IPA de la app. Esta marca solo es válida cuando se ejecutan pruebas de bucle de juego. |
--scenario-numbers
|
Los bucles o situaciones que deseas ejecutar en tu app. Puedes ingresar un solo bucle, o bien una lista o un rango. La cantidad predeterminada de bucles es 1. Por ejemplo, |
--device-model
|
El dispositivo físico en el que quieres ejecutar la prueba (descubre cuáles son los dispositivos disponibles). |
--timeout
|
La duración máxima de ejecución de la prueba. Puedes ingresar un número entero para representar la duración en segundos o un número entero y una enumeración para representar la duración como una unidad de tiempo más extensa. Por ejemplo:
|
Por ejemplo, en el siguiente comando se ejecuta una prueba de bucle de juego que ejecuta los bucles 1, 4, 6, 7 y 8 en un iPhone 8 Plus:
gcloud beta firebase test ios run --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8 --device-model=iphone8plus
Para obtener más información sobre la CLI de gcloud, consulta la documentación de referencia.
Paso 3 (opcional): Automatiza las pruebas futuras que compiles
Crea secuencias de comandos de gcloud con Test Lab
Puedes usar secuencias de comandos de shell o archivos de lote para automatizar los comandos de prueba de apps para dispositivos móviles que, de otro modo, tendrías que ejecutar mediante la línea de comandos de gcloud. Este ejemplo de secuencia de comandos de Bash se ejecuta como XCTest con un tiempo de espera máximo de dos minutos y sirve para informar si la ejecución de la prueba se completó correctamente:
if gcloud firebase test ios run --test MyTest.zip --timeout 2m then echo "Test matrix successfully finished" else echo "Test matrix exited abnormally with non-zero exit code: " $? fi
Códigos de salida de secuencias de comandos
Test Lab ofrece varios códigos de salida que puedes usar para comprender mejor los resultados de las pruebas que ejecutas con secuencias de comandos o archivos por lotes.
Código de salida | Notas |
---|---|
0 | Se aprobaron todas las ejecuciones de pruebas. |
1 | Hubo una falla general. Las causas posibles incluyen: un nombre de archivo que no existe o un error de HTTP/red. |
2 | Se salió de la prueba debido a que se proporcionaron comandos o argumentos desconocidos. |
10 | Uno o más casos de prueba (clases o métodos de clase evaluados) de una prueba no se aprobaron. |
15 | Firebase Test Lab no pudo determinar si la matriz de pruebas se aprobó o falló debido a un error inesperado. |
19 | El usuario canceló la matriz de pruebas. |
20 | Se produjo un error con la infraestructura de pruebas. |
Paso 4: Investiga los resultados de las pruebas
Cuando comience la prueba, recibirás un vínculo a la página Resultados de la prueba. Las pruebas pueden tardar varios minutos en ejecutarse según la cantidad de configuraciones diferentes que hayas seleccionado y la duración del tiempo de espera que se haya configurado para tus pruebas. Una vez ejecutadas, podrás revisar los resultados. Consulta Analiza los resultados de Firebase Test Lab para obtener más información sobre cómo interpretar los resultados de las pruebas.
Próximo paso
Consulta la documentación del SDK de Google Cloud para explorar las opciones de prueba que están disponibles de manera general o en versión beta.