Questa guida descrive come eseguire un test XCTest o Ciclo di gioco utilizzando gcloud CLI.
Passaggio 1: configura l'ambiente Google Cloud SDK locale
- Scarica il Google Cloud SDK
- Assicurati che l'installazione sia aggiornata e includa
il
gcloud firebasecomando:gcloud components update - Accedi a gcloud CLI utilizzando il tuo Account Google:
gcloud auth login - Imposta il progetto Firebase in gcloud, dove PROJECT_ID è
l'ID del tuo progetto Firebase:
gcloud config set project PROJECT_ID
È incluso lo strumento gcloud CLI.
Passaggio 2: esegui il test
Esegui un XCTest
Carica il file .zip del test eseguendo il comando seguente (se non hai ancora creato il pacchetto dell'app, consulta Creare il pacchetto di XCTest):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Scegli le dimensioni del test.
Test Lab ti consente di eseguire test su una varietà di versioni di iOS, dispositivi, orientamenti dello schermo e impostazioni internazionali. Queste configurazioni sono note come dimensioni 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,versionsolocalescondimensionnel comando seguente:gcloud firebase test ios dimension list
L'orientamento dello schermo è un po' più semplice, in quanto le uniche opzioni sono
portraitelandscape.Esamina l'elenco delle dimensioni del test e seleziona alcune combinazioni su cui vuoi eseguire il test. Visita Piani tariffari per visualizzare il numero massimo di combinazioni che puoi eseguire al giorno.
Dopo aver scelto un insieme di dimensioni del test, puoi chiedere a Test Lab di eseguire i test utilizzando il comando
firebase test ios run. Per ogni combinazione di dimensioni del test su cui vuoi eseguire il test, includi un flag--deviceseparato: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 Firebase console, puoi etichettare facoltativamente la matrice di test utilizzando il
--client-details matrixLabel="<label>"flag 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 --test-special-entitlements flag. Test Lab firma nuovamente l'applicazione con un nuovo identificatore pacchetto per supportare i diritti speciali, quindi assicurati che nel file ZIP non siano presenti risorse contenenti riferimenti diretti all'identificatore pacchetto dell'app.
- Notifiche push
apns-environment - VPN personale
com.apple.developer.networking.vpn.api
Per autorizzare le richieste di notifiche 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 Stabilire una connessione basata su token ad APN.
Gruppi di appGli ID dei gruppi di app sono univoci a livello universale. Ciò significa che quando firmiamo nuovamente le app degli utenti, possiamo utilizzare solo l'ID del gruppo di app associato all'account sviluppatore.Test Lab Se il test si basa sui gruppi di app, non andrà a buon fine.
Esegui un test 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 Ciclo di gioco | |
|---|---|
--type
|
Obbligatorio: specifica il tipo di test iOS che vuoi eseguire. Puoi inserire
tipi di test |
--app
|
Obbligatorio: percorso assoluto (GCS o file system) al file IPA dell'app. Questo flag è valido solo quando si eseguono test Ciclo di gioco. |
--scenario-numbers
|
I loop (ovvero gli scenari) che vuoi eseguire nell'app. Puoi inserire un loop, un elenco di loop o un intervallo di loop. Il loop predefinito è 1.
Ad esempio, |
--device-model
|
Il dispositivo fisico su cui vuoi eseguire il test (scopri quali dispositivi disponibili puoi utilizzare). |
--timeout
|
La durata massima di esecuzione 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:
|
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ù su gcloud CLI, consulta la documentazione di riferimento.
Passaggio 3 (facoltativo): automatizza i test futuri che crei
Creare 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 eseguirai 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 degli 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 dei test sono state superate. |
| 1 | Si è verificato un errore generale. Le possibili cause includono: un nome file inesistente o un errore HTTP/di rete. |
| 2 | Il test è stato interrotto 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 di test non sono stati superati. |
| 15 | Firebase Test Lab non è riuscito a 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 dei test
All'avvio del test, riceverai un link alla pagina Risultati dei test. L'esecuzione dei test può richiedere alcuni minuti, a seconda del numero di configurazioni diverse selezionate e della durata del timeout del test impostata per i test. Una volta eseguiti i test, puoi esaminare i risultati. Consulta Analizzare i risultati per scoprire di più su come interpretare i risultati dei test.Firebase Test Lab
Passaggio successivo
Leggi la documentazione di Google Cloud SDK per esplorare le opzioni di test che sono disponibili a livello generale o in versione beta.