Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Prueba con la CLI de gcloud

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Esta guía describe cómo ejecutar una prueba XCTest o Game Loop con la CLI de gcloud.

Paso 1 : Configure su entorno SDK local de Google Cloud

  1. Descarga el SDK de Google Cloud.
  2. Esto incluye la herramienta CLI de gcloud.

  3. Asegúrate de que tu instalación esté actualizada e incluya el comando gcloud firebase :
          gcloud components update
  4. Inicie sesión en la CLI de gcloud con su cuenta de Google:
          gcloud auth login
  5. Configure su proyecto de Firebase en gcloud, donde PROJECT_ID es el ID de su proyecto de Firebase:
         gcloud config set project PROJECT_ID

Paso 2 : Ejecute su prueba

Ejecutar una prueba XCT

  1. Cargue el archivo .zip de su prueba ejecutando el siguiente comando (si aún no ha empaquetado su aplicación, consulte Empaquetado de su XCTest ):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. Elija sus dimensiones de prueba.

    Test Lab le permite ejecutar pruebas en una variedad de versiones de iOS, dispositivos, orientaciones de pantalla y configuraciones regionales. Estas configuraciones se conocen como las dimensiones de prueba de la prueba. Para ver las opciones para cada dimensión (por ejemplo, versiones de Xcode admitidas para la versión de iOS del dispositivo), sustituya models , versions o locales por dimension en el siguiente comando:

    gcloud firebase test ios dimension list

    La orientación de la pantalla es algo más sencilla, ya que sus únicas opciones son portrait y landscape .

    Mire la lista de dimensiones de prueba y seleccione algunas combinaciones en las que le gustaría ejecutar su prueba. Visite Planes de precios para ver la cantidad máxima de combinaciones que puede ejecutar por día.

  3. Una vez que haya elegido un conjunto de dimensiones de prueba, puede hacer que Test Lab ejecute sus pruebas con el firebase test ios run . Para cada combinación de dimensiones de prueba que le gustaría probar, incluya una --device separada:

    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 su prueba falle debido a una incompatibilidad entre la versión de Xcode con la que se creó la prueba y la versión predeterminada de Xcode utilizada por Test Lab. Para especificar una versión compatible de Xcode para su prueba, use el --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=11.3

Prueba de derechos especiales

Para probar los derechos que requieren una ID de aplicación explícita, puede hacerlo configurando el --test-special-entitlements . Test Lab vuelve a firmar la aplicación con un nuevo identificador de paquete para admitir derechos especiales, así que asegúrese de que no haya recursos en su archivo zip que contengan referencias directas a la identificación del paquete de la aplicación.

Notificaciones push

Para autorizar solicitudes de notificaciones automáticas, los usuarios pueden crear tokens web JSON utilizando la clave de firma privada junto con el ID de clave: C7FD9DJAA8 y el ID de equipo: 9CKCGNNUQN . Los tokens generados serían válidos durante una hora y deben actualizarse cada 60 minutos. Obtenga más información sobre el establecimiento de una conexión basada en token a APN.

Grupos de aplicaciones

Los ID de grupos de aplicaciones son universalmente únicos. Esto significa que cuando volvemos a firmar aplicaciones de usuario, solo podemos usar el ID de grupo de aplicaciones que está asociado con la cuenta de desarrollador de Test Lab. Si su prueba se basa en grupos de aplicaciones, su prueba fallará.

Ejecutar una prueba de bucle de juego

Ejecute el gcloud beta firebase test ios run y use las siguientes marcas para configurar la ejecución:

Banderas para pruebas de Game Loop
--type

Obligatorio : especifica el tipo de prueba de iOS que desea ejecutar. Puede ingresar tipos de prueba xctest (predeterminado) o game-loop .

--app

Obligatorio : ruta absoluta (GCS o sistema de archivos) al archivo IPA de su aplicación. Esta bandera solo es válida cuando se ejecutan pruebas de Game Loop.

--scenario-numbers

Los bucles (también conocidos como escenarios) que desea ejecutar en su aplicación. Puede ingresar un bucle, una lista o bucles, o un rango de bucles. El bucle predeterminado es 1.

Por ejemplo, --scenario-numbers=1-3,5 ejecuta los bucles 1, 2, 3 y 5.

--device-model

El dispositivo físico en el que desea ejecutar su prueba (descubra qué dispositivos disponibles puede usar).

--timeout

La duración máxima que desea que se ejecute la prueba. Puede 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 mayor.

Por ejemplo:

  • --timeout=200 obliga a su prueba a terminar cuando se ejecuta hasta 200 segundos.
  • --timeout=1h obliga a que su prueba finalice cuando se ejecuta hasta una hora.

Por ejemplo, el siguiente comando ejecuta una prueba de Game Loop 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, consulte la documentación de referencia .

Paso 4 (opcional) : automatice las pruebas futuras que cree

Creación de secuencias de comandos de gcloud con Test Lab

Puede usar secuencias de comandos de shell o archivos por lotes para automatizar los comandos de prueba de aplicaciones móviles que, de otro modo, ejecutaría con la línea de comandos de gcloud. Este script bash de muestra ejecuta un XCTest con un tiempo de espera de dos minutos e informa 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 del script

Test Lab proporciona varios códigos de salida que puede usar para comprender mejor los resultados de las pruebas que ejecuta con scripts o archivos por lotes.

código de salida notas
0 Todas las ejecuciones de prueba pasaron.
1 Ocurrió una falla general. Las posibles causas incluyen: un nombre de archivo que no existe o un error de red/HTTP.
2 La prueba finalizó porque se proporcionaron comandos o argumentos desconocidos.
10 Uno o más casos de prueba (clases probadas o métodos de clase) dentro de una ejecución de prueba no pasaron.
15 Firebase Test Lab no pudo determinar si la matriz de prueba pasó o falló debido a un error inesperado.
19 La matriz de prueba fue cancelada por el usuario.
20 Se produjo un error de infraestructura de prueba.

Paso 5 : Investigue los resultados de las pruebas

Cuando comienza la prueba, recibe un enlace a la página Resultados de la prueba . Las pruebas pueden tardar varios minutos en ejecutarse, según la cantidad de configuraciones diferentes que haya seleccionado y la duración del tiempo de espera establecido para sus pruebas. Después de que se hayan ejecutado las pruebas, puede revisar los resultados de las pruebas. Consulta Análisis de los resultados del laboratorio de pruebas de Firebase para obtener más información sobre cómo interpretar los resultados de las pruebas.

Próximo paso

Lea la documentación del SDK de Google Cloud para explorar las opciones de prueba que generalmente están disponibles o en versión beta .