了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Prova con l'interfaccia a riga di comando di Google Cloud

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

Passaggio 1 : configura il tuo ambiente Google Cloud SDK locale

  1. Scarica l' SDK di Google Cloud.
  2. Ciò include lo strumento CLI gcloud.

  3. Assicurati che l'installazione sia aggiornata e includa il comando gcloud firebase :
          gcloud components update
  4. Accedi alla CLI gcloud 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

Eseguire un XCTest

  1. Carica il file .zip del tuo test eseguendo il seguente comando (se non hai ancora impacchettato la tua app, vedi Impacchettare il tuo 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 varietà di versioni iOS, dispositivi, orientamenti dello schermo e impostazioni locali. Queste configurazioni sono note come dimensioni di prova del test. Per visualizzare le opzioni per ogni dimensione (ad esempio, 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 è in qualche modo più semplice, poiché le sue uniche opzioni sono portrait e landscape .

    Esamina l'elenco delle dimensioni del test e seleziona alcune combinazioni su cui desideri eseguire il test. Visita Piani a pagamento per vedere il numero massimo di combinazioni che puoi eseguire al giorno.

  3. Dopo aver scelto un set di dimensioni di test, puoi fare in modo che Test Lab esegua i tuoi test utilizzando il comando firebase test ios run . Per ogni combinazione di dimensioni di test su cui desideri 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 fallisca a causa di un'incompatibilità tra la versione Xcode con cui è stato creato il test e la versione Xcode predefinita utilizzata da Test Lab. Per specificare una versione Xcode supportata per il tuo 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=11.3

    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"

Prova i diritti speciali

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

Le 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 sarebbero validi per un'ora e dovranno essere aggiornati ogni 60 minuti. Ulteriori informazioni 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 firmiamo nuovamente le app utente, possiamo utilizzare solo l'ID del gruppo di app associato all'account sviluppatore di Test Lab. Se il test si basa su gruppi di app, il test avrà esito negativo.

Esegui un test del ciclo di gioco

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

Flag per i test di Game Loop
--type

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

--app

Obbligatorio : percorso assoluto (GCS o filesystem) al file IPA della tua app. Questo flag è valido solo durante l'esecuzione dei test Game Loop.

--scenario-numbers

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

Ad esempio, --scenario-numbers=1-3,5 esegue i cicli 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 dell'esecuzione del test. È possibile immettere un numero intero per rappresentare la durata in secondi oppure un numero intero e un'enumerazione per rappresentare la durata come unità di tempo più lunga.

Per esempio:

  • --timeout=200 forza il test a terminare quando viene eseguito fino a 200 secondi.
  • --timeout=1h forza la chiusura del test quando dura fino a un'ora.

Ad esempio, il seguente comando esegue un test Game Loop 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 ulteriori informazioni sulla CLI gcloud, consulta la documentazione di riferimento .

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

Scripting di comandi gcloud con Test Lab

Puoi utilizzare script della shell o file batch per automatizzare i comandi di test delle app per dispositivi mobili che altrimenti eseguiresti utilizzando la riga di comando di 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 Appunti
0 Tutte le esecuzioni dei test sono state superate.
1 Si è verificato un errore generale. Le possibili cause includono: un nome file che non esiste o un errore HTTP/di rete.
2 Il test è terminato perché sono stati forniti comandi o argomenti sconosciuti.
10 Uno o più casi di test (classi testate o metodi di classe) all'interno di un'esecuzione di test non sono stati superati.
15 Firebase Test Lab non è stato in grado di determinare se la matrice di test ha superato 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 : esaminare i risultati del test

All'avvio del test, si riceve un collegamento alla pagina Risultati del test . L'esecuzione dei test può richiedere alcuni minuti, a seconda del numero di diverse configurazioni selezionate e della durata del timeout del test impostata per i test. Dopo che i test sono stati eseguiti, puoi rivedere i risultati dei test. Consulta Analisi dei risultati del laboratorio di test Firebase per ulteriori informazioni su come interpretare i risultati del test.

Passo successivo

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