Esegui test con Google Cloud CLI

Questa guida descrive come eseguire un test XCTest o Game Loop utilizzando l'interfaccia a riga di comando gcloud.

Passaggio 1: configura l'ambiente Google Cloud SDK locale

  1. Scarica il Google Cloud SDK
  2. È incluso lo strumento gcloud CLI.

  3. Assicurati che l'installazione sia aggiornata e includa il comando gcloud firebase:
          gcloud components update
  4. Accedi a gcloud CLI utilizzando il tuo Account Google:
          gcloud auth login
  5. Imposta il progetto Firebase in gcloud, dove PROJECT_ID è l'ID del progetto Firebase:
         gcloud config set project PROJECT_ID

Passaggio 2: esegui il test

Eseguire un XCTest

  1. Carica il file ZIP del test eseguendo il seguente comando (se non hai ancora pacchettizzato l'app, consulta Pacchettizzazione di XCTest):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. Scegli le dimensioni del test.

    Test Lab ti consente di eseguire test su una serie di versioni, dispositivi, orientamenti dello schermo e impostazioni internazionali di iOS. Queste configurazioni sono note come dimensioni di test del test. Per visualizzare le opzioni per ogni dimensione (ad es. le versioni di Xcode supportate per la versione di iOS del dispositivo), sostituisci models, versions o locales per dimension nel seguente comando:

    gcloud firebase test ios dimension list

    L'orientamento dello schermo è un po' più semplice, poiché le uniche opzioni sono portrait e landscape.

    Esamina l'elenco delle dimensioni di test e seleziona alcune combinazioni su cui eseguire il test. Visita la pagina Prezzi per conoscere il numero massimo di combinazioni che puoi pubblicare ogni giorno.

  3. Dopo aver scelto un insieme di dimensioni di test, puoi chiedere a Test Lab di eseguire i test utilizzando il comando firebase test ios run. Per ogni combinazione di dimensioni di test su cui vuoi eseguire il test, includi un flag --device separato:

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

    È possibile che il test non vada a buon fine a causa di un'incompatibilità tra la versione di Xcode con cui è stato creato il test e la versione predefinita di Xcode utilizzata da Test Lab. Per specificare una versione di Xcode supportata per il test, utilizza il flag --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

    Per aiutarti a identificare e individuare le matrici di test nella console Firebase, puoi facoltativamente etichettare la matrice di test utilizzando il flag --client-details matrixLabel="<label>" nell'esempio seguente:

    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"

Testare i diritti speciali

Per testare i diritti che richiedono un ID app esplicito, puoi farlo impostando il flag --test-special-entitlements. Test Lab firma di nuovo l'applicazione con un nuovo identificatore gruppo per supportare i diritti speciali, quindi assicurati che nel file ZIP non siano presenti risorse contenenti riferimenti diretti all'identificatore gruppo dell'app.

Diritti supportati:
  1. Notifiche push apns-environment
  2. VPN personale com.apple.developer.networking.vpn.api
Notifiche push

Per autorizzare le richieste di notifica push, gli utenti possono creare token web JSON utilizzando la chiave di firma privata insieme all'ID chiave C7FD9DJAA8 e all'ID team 9CKCGNNUQN. I token generati saranno validi per un'ora e dovranno essere aggiornati ogni 60 minuti. Scopri di più su come stabilire una connessione basata su token agli APN.

Gruppi di app

Gli ID gruppo di app sono universalmente univoci. Ciò significa che quando dobbiamo eseguire nuovamente la firma delle app utente, possiamo utilizzare solo l'ID gruppo di app associato all'account sviluppatore Test Lab. Se il test si basa su gruppi di app, non andrà a buon fine.

Eseguire un test Ciclo di gioco

Esegui il comando gcloud beta firebase test ios run e utilizza i seguenti parametri per configurare l'esecuzione:

Flag per i test del ciclo di gioco
--type

Obbligatorio: specifica il tipo di test iOS che vuoi eseguire. Puoi inserire i tipi di test xctest (predefinito) o game-loop.

--app

Obbligatorio: percorso assoluto (GCS o file system) del file IPA dell'app. Questo flag è valido solo quando vengono eseguiti i test Ciclo di gioco.

--scenario-numbers

I cicli (ovvero gli scenari) che vuoi eseguire nella tua app. Puoi inserire un ciclo, un elenco di cicli o un intervallo di cicli. Il ciclo predefinito è 1.

Ad esempio, --scenario-numbers=1-3,5 esegue i loop 1, 2, 3 e 5.

--device-model

Il dispositivo fisico su cui vuoi eseguire il test (scopri quali dispositivi disponibili puoi utilizzare).

--timeout

La durata massima del test. Puoi inserire un numero intero per rappresentare la durata in secondi oppure un numero intero e un'enumerazione per rappresentare la durata come un'unità di tempo più lunga.

Ad esempio:

  • --timeout=200 forza l'interruzione del test dopo 200 secondi.
  • --timeout=1h forza il test a terminare quando viene eseguito per un massimo di un'ora.

Ad esempio, il seguente comando esegue un test Ciclo di gioco che esegue i loop 1, 4, 6, 7 e 8 su 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

Per saperne di più sulla CLI gcloud, consulta la documentazione di riferimento.

(Facoltativo) Passaggio 3: automatizza i test futuri che crei

Creazione di script dei comandi gcloud con Test Lab

Puoi utilizzare script shell o file batch per automatizzare i comandi di test delle app mobile che altrimenti eseguiresti utilizzando la riga di comando gcloud. Questo script bash di esempio esegue un XCTest con un timeout di due minuti e segnala se l'esecuzione del test è stata completata correttamente:

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

Codici di uscita dello script

Test Lab fornisce diversi codici di uscita che puoi utilizzare per comprendere meglio i risultati dei test eseguiti utilizzando script o file batch.

Codice di uscita Note
0 Tutte le esecuzioni del test sono passate.
1 Si è verificato un errore generico. Tra le possibili cause rientrano: un nome file che non esiste o un errore HTTP/di rete.
2 I test sono stati interrotti perché sono stati forniti comandi o argomenti sconosciuti.
10 Uno o più scenari di test (classi o metodi di classe testati) all'interno di un'esecuzione del test non sono stati superati.
15 Firebase Test Lab non è stato in grado di determinare se la matrice di test è stata superata o meno a causa di un errore imprevisto.
19 La matrice di test è stata annullata dall'utente.
20 Si è verificato un errore dell'infrastruttura di test.

Passaggio 4: esamina i risultati del test

Quando inizia il test, ricevi un link alla pagina Risultati test. L'esecuzione dei test può richiedere alcuni minuti, a seconda del numero di configurazioni diverse selezionate e della durata del timeout impostata per i test. Una volta eseguiti i test, puoi esaminarne i risultati. Per scoprire di più su come interpretare i risultati del test, consulta Analisi dei risultati di Firebase Test Lab.

Passaggio successivo

Leggi la documentazione di Google Cloud SDK per esplorare le opzioni di test generalmente disponibili o in versione beta.