Questa guida descrive come eseguire un test XCTest o Game Loop utilizzando la CLI gcloud.
Passaggio 1 : configura il tuo ambiente Google Cloud SDK locale
- Scarica l' SDK di Google Cloud
- Assicurati che la tua installazione sia aggiornata e includa il comando
gcloud firebase
:gcloud components update
- Accedi alla CLI gcloud utilizzando il tuo account Google:
gcloud auth login
- Imposta il tuo progetto Firebase in gcloud, dove PROJECT_ID è l'ID del tuo progetto Firebase:
gcloud config set project PROJECT_ID
Ciò include lo strumento CLI gcloud.
Passaggio 2 : esegui il test
Esegui un XCTest
Carica il file .zip del tuo test eseguendo il seguente comando (se non hai ancora creato il pacchetto della tua app, vedi Packaging your XCTest ):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Scegli le dimensioni del tuo test.
Test Lab ti consente di eseguire test su una varietà di versioni iOS, dispositivi, orientamenti dello schermo e impostazioni internazionali. Queste configurazioni sono note come dimensioni di test del test. Per visualizzare le opzioni per ciascuna dimensione (ad esempio, versioni Xcode supportate per la versione iOS del dispositivo), sostituisci
models
,versions
olocales
perdimension
nel seguente comando:gcloud firebase test ios dimension list
L'orientamento dello schermo è leggermente più semplice, poiché le uniche opzioni sono
portrait
elandscape
.Esamina l'elenco delle dimensioni del test e seleziona alcune combinazioni su cui desideri eseguire il test. Visita Piani tariffari per vedere il numero massimo di combinazioni che puoi eseguire al giorno.
Dopo aver scelto una serie di dimensioni del test, puoi fare in modo che Test Lab esegua i 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 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>"
nel seguente esempio: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 nuovamente l'applicazione con un nuovo identificatore di bundle per supportare diritti speciali, quindi assicurati che non siano presenti risorse nel file zip contenente riferimenti diretti all'identificatore di bundle dell'app.
- Notifiche push
apns-environment
- VPN personale
com.apple.developer.networking.vpn.api
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 appGli 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 Test Lab. Se il test si basa su gruppi di app, il test fallirà.
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 Game Loop | |
---|---|
--type | Obbligatorio : specifica il tipo di test iOS che desideri eseguire. Puoi inserire i tipi di test |
--app | Obbligatorio : percorso assoluto (GCS o file system) del file IPA della tua app. Questo flag è valido solo durante l'esecuzione dei test Game Loop. |
--scenario-numbers | I loop (ovvero gli scenari) che desideri eseguire nella tua app. È possibile inserire un ciclo, un elenco o più cicli oppure un intervallo di cicli. Il ciclo 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 che desideri venga eseguita per il 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:
|
Ad esempio, il comando seguente 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 futuri test che creerai
Creazione di script di comandi gcloud con Test Lab
Puoi utilizzare script di shell o file batch per automatizzare i comandi di test delle app mobili 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 è possibile 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 guasto generale. Le possibili cause includono: un nome file che non esiste o un errore HTTP/rete. |
2 | Il test è stato interrotto perché sono stati forniti comandi o argomenti sconosciuti. |
10 | Uno o più casi di test (classi o metodi di classe testati) all'interno dell'esecuzione del test non sono stati superati. |
15 | Firebase Test Lab non è riuscito a determinare se la matrice del test è stata superata o meno a causa di un errore imprevisto. |
19 | La matrice del test è stata annullata dall'utente. |
20 | Si è verificato un errore nell'infrastruttura di test. |
Passaggio 4 : esaminare i risultati del test
All'inizio del test, riceverai un collegamento alla pagina dei 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. Una volta eseguiti i test, è possibile esaminarne i risultati. Consulta Analisi dei risultati di Firebase Test Lab per ulteriori informazioni su come interpretare i risultati dei test.
Passo successivo
Leggi la documentazione di Google Cloud SDK per esplorare le opzioni di test generalmente disponibili o in versione beta .