Esegui test con Google Cloud CLI

Questa guida descrive come eseguire un test XCTest o un test Ciclo di gioco utilizzando lo strumento gcloud nell'interfaccia a riga di comando.

Passaggio 1: configura l'ambiente locale di Google Cloud SDK

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

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

Passaggio 2: esegui il test

Esegui un XCTest

  1. Carica il file .zip del test eseguendo questo comando (se non hai ancora pacchettizzato la tua app, vedi 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 consente di eseguire test su una varietà di versioni di iOS, dispositivi, schermi orientamenti e impostazioni internazionali. Queste configurazioni sono note come dimensioni del test. Per visualizzare le opzioni per ogni dimensione (ad es. versioni Xcode supportate per la versione 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, dato che le sue 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 dei piani tariffari per scoprire il numero massimo di combinazioni che puoi eseguire al giorno.

  3. Dopo aver scelto un insieme di dimensioni di test, puoi eseguire Test Lab 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 e cui è stato creato il test e la versione Xcode predefinita utilizzata da Test Lab. Per specificare una versione 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 Console Firebase, in via facoltativa puoi etichettare la matrice di test utilizzando --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 diritti speciali

Per testare i diritti che richiedono un ID app esplicito, puoi farlo l'impostazione del flag --test-special-entitlements. Test Lab firma di nuovo l'applicazione con un nuovo identificatore-pacchetto per supportare dei diritti, quindi assicurati che non ci siano risorse nel tuo file ZIP contenente riferimenti diretti all'identificatore bundle dell'app.

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

Per autorizzare le richieste di notifiche push, gli utenti possono creare file web JSON di token utilizzando il token chiave di firma 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. Ulteriori informazioni su Stabilire una connessione basata su token agli APN.

Gruppi di app

Gli ID gruppo di app sono universalmente univoci. Ciò significa che quando Firmare nuovamente le app dell'utente, possiamo usare solo l'ID gruppo associato all'account sviluppatore Test Lab. Se il test si basa nei gruppi di app, il test non andrà a buon fine.

Esegui un test Ciclo di gioco

Esegui il comando gcloud beta firebase test ios run e usa questo per configurare l'esecuzione:

Flag per test del ciclo di gioco
--type

Obbligatorio: specifica il tipo di test su iOS che vuoi eseguire. Puoi inserire 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 durante l'esecuzione dei test del 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 rappresentano la durata in secondi o un numero intero e un'enumerazione per rappresentare come unità di tempo più lunga.

Ad esempio:

  • --timeout=200 forza la terminazione del test quando viene eseguito fino a 200 secondi.
  • --timeout=1h forza la terminazione del test al massimo di un'ora.

Ad esempio, il comando seguente esegue un test Ciclo di gioco 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ù sull'interfaccia a riga di comando gcloud, consulta la documentazione di riferimento.

(Facoltativo) Passaggio 3: automatizza i test che creerai in futuro

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 con la riga di comando gcloud. Questa bash di esempio lo script esegue un XCTest con un timeout di due minuti e segnala se il test viene eseguito completato 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 state superate.
1 Si è verificato un errore generale. Le cause possibili includono: un nome file che non esiste o si è verificato un errore di rete/HTTP.
2 Test terminato perché sono stati forniti comandi o argomenti sconosciuti.
10 Uno o più scenari di test (classi o metodi delle classi testati) all'interno di un test l'esecuzione non è stata superata.
15 Firebase Test Lab non può determinare se la matrice del test ha superato o non riuscita 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

All'avvio del test, riceverai un link alla pagina Risultati del test. I test possono l'esecuzione richiede diversi minuti, a seconda del numero di configurazioni selezionate e la durata del timeout del test impostata per test. Dopo aver eseguito i test, puoi esaminarne i risultati. Consulta Analisi dei risultati di Firebase Test Lab per scoprire di più su come interpretare i risultati del test.

Passaggio successivo

Leggi la documentazione di Google Cloud SDK per scoprire le opzioni di test che sono generalmente disponibile o in versione beta.