Firebase Test Lab is deprecated and will be fully shut down on September 30, 2027. To
maintain your testing workflows, you can migrate to the Developer Device Platform on Google
Cloud. See the
Developer Device Platform Migration Guide
and FAQ for more
details.
Google utilizza la tecnologia AI per tradurre i contenuti nella tua lingua preferita. Le traduzioni generate dall'AI potrebbero contenere errori.
Risoluzione dei problemi di Test Lab e DOMANDE FREQUENTI
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questa pagina fornisce assistenza per la risoluzione dei problemi e risposte alle domande frequenti sull'esecuzione dei test con Firebase Test Lab. Sono documentati anche i problemi noti. Se non riesci a trovare quello che cerchi o hai bisogno di ulteriore assistenza, unisciti al canale #test-lab su Firebase Slack o contatta l'assistenza Firebase.
Risoluzione dei problemi
Perché l'esecuzione del test richiede così tanto tempo?
Quando selezioni un dispositivo con un livello di capacità elevato nel catalogo Test Lab, i test potrebbero avviarsi più velocemente. Quando un dispositivo ha una capacità ridotta, l'esecuzione dei test potrebbe richiedere più tempo. Se il numero di test richiamati è molto maggiore della capacità dei dispositivi selezionati, i test possono richiedere più tempo per essere completati.
I test eseguiti su qualsiasi livello di capacità del dispositivo potrebbero richiedere più tempo a causa dei seguenti fattori:
Traffico, che influisce sulla disponibilità dei dispositivi e sulla velocità dei test.
Guasti ai dispositivi o all'infrastruttura, che possono verificarsi in qualsiasi momento. Per verificare se è stata segnalata un'infrastruttura per Test Lab, consulta la dashboard dello stato di Firebase.
Per scoprire di più sulla capacità dei dispositivi in Test Lab, consulta le informazioni sulla capacità dei dispositivi per Android e iOS.
Perché ricevo risultati del test indeterminati?
I risultati dei test non conclusivi si verificano comunemente a causa di esecuzioni di test annullate o di errori dell'infrastruttura.
Gli errori di infrastruttura sono causati da problemi interni di Test Lab, come errori di rete o comportamenti imprevisti del dispositivo. Test Lab ritira internamente le esecuzioni di test che generano errori di infrastruttura più volte prima di segnalare un risultato non definitivo; tuttavia, puoi disattivare questi nuovi tentativi utilizzando failFast.
Per determinare la causa dell'errore, segui questi passaggi:
Riprova il test in Test Lab per verificare che sia riproducibile.
Se possibile, prova a eseguire il test su un altro dispositivo o tipo di dispositivo.
Se il problema persiste, contatta il team di Test Lab nel canale#test-lab su Firebase Slack.
Perché lo sharding ha prolungato i tempi di esecuzione dei miei test?
Lo sharding può prolungare l'esecuzione dei test quando il numero di shard specificato supera il numero di dispositivi disponibili per l'utilizzo in Test Lab. Per evitare questa situazione, prova a passare a un altro dispositivo. Per saperne di più
sulla scelta di un dispositivo diverso, consulta
Capacità del dispositivo.
Perché l'avvio del test richiede molto tempo?
Quando invii una richiesta di test, l'app viene prima convalidata, firmata di nuovo e così via in preparazione all'esecuzione dei test su un dispositivo. In genere, questa procedura viene completata in meno di qualche secondo, ma può essere influenzata da fattori come le dimensioni dell'app.
Dopo aver preparato l'app, le esecuzioni dei test vengono pianificate e rimangono in coda finché un dispositivo non è pronto per eseguirle. Fino al termine di tutte le esecuzioni dei test, lo stato della matrice sarà "In attesa" (indipendentemente dal fatto che le esecuzioni dei test siano in coda o in esecuzione attiva).
Perché il mio test richiede molto tempo per essere completato?
Al termine dell'esecuzione del test, gli artefatti del test vengono scaricati dal
dispositivo, elaborati e caricati su Cloud Storage. La durata di questo passaggio può essere influenzata dalla quantità e dalle dimensioni degli artefatti.
Risoluzione dei problemi specifici di Android
L'app non restituisce dati e non riesce a trovare gli screenshot
Gli artefatti dell'esecuzione del test (come screenshot e file di log) vengono archiviati in Google Cloud Storage e visualizzati direttamente nella console Firebase. Se l'esecuzione del test è stata eseguita negli ultimi 90 giorni, verifica di aver assegnato i ruoli a livello di progetto (Project Owner, Project Editor o Project Viewer).
Assicurati inoltre che Cloud Audit Logging non sia abilitato per il tuo progetto o la tua organizzazione.
Se l'esecuzione è stata eseguita più di 90 giorni fa, molto probabilmente gli artefatti di test sono stati eliminati automaticamente. Puoi controllare la configurazione del bucket dei risultati facendo clic sulla scheda Risultati del test nella dashboard di Test Lab. Il bucket dei risultati predefinito è configurato per conservare gli oggetti per 90 giorni.
Per conservare gli artefatti di test più a lungo, esegui il comando
gcloud firebase test android run con il flag --results-bucket e passa
il nome del bucket dei risultati. Per saperne di più, consulta la documentazione di riferimento di gcloud firebase test android run.
Perché ricevo risultati parziali o mancanti per gli scenari di test di instrumentazione?
Quando esegui i test di instrumentazione, potresti visualizzare errori di test che indicano risultati parziali contenenti messaggi come Test run failed to complete. Expected
x tests, received y (dove y è inferiore a x).
Questo errore indica che Test Lab non è riuscito ad analizzare il logcat per gli indicatori di inizio o fine dello scenario di test che vengono solitamente generati da AndroidJUnitRunner.
Di seguito sono riportate le cause più comuni di questo problema:
Descrizione del problema
Possibile risoluzione
Lo scenario di test non è stato eseguito a causa di un timeout. Se la durata totale dei test è superiore a un timeout specificato o a un timeout massimo, Test Lab annulla il resto degli scenari di test.
Aumenta il timeout della matrice per assicurarti che tutti i test possano essere completati.
Se non l'hai già fatto, esegui lo sharding dei test in modo che ogni shard esegua un sottoinsieme dei test e venga completato in un periodo di tempo più breve.
Se hai già attivato lo sharding, aumenta il numero di shard.
Impossibile completare lo scenario di test perché è stato chiuso prematuramente o si è bloccato.
Lo scenario di test potrebbe terminare prematuramente a causa di un'eccezione non rilevata o di un errore di asserzione. Gli scenari di test possono rimanere bloccati in un loop infinito o potrebbero non essere in grado di procedere, ad esempio se l'app non mostra la visualizzazione corretta e lo scenario di test non può eseguire l'azione sulla UI.
Controlla il video e il logcat per capire dove si è interrotto il test.
Un test runner personalizzato (inclusa l'estensione di AndroidJUnitRunner) ha avuto un arresto anomalo imprevisto o ha scritto indicatori di inizio o fine dello scenario di test imprevisti in logcat.
Controlla il codice del test runner.
Sono stati scritti troppi log in logcat, il che ha sovraccaricato il buffer o causato l'arresto anomalo del processo logcat.
Riduci le scritture a logcat.
L'app in fase di test ha subito un arresto anomalo.
Esegui il debug dell'app.
Domande frequenti
Quali sono le quote senza costi per Test Lab? Cosa devo fare se le esaurisco?
Firebase Test Lab offre quote senza costi per i test sui dispositivi e per l'utilizzo delle API Cloud. Tieni presente che la quota di test utilizza il piano tariffario standard di Firebase, mentre le quote delle API Cloud no.
Quota di test
Le quote di test sono determinate dal numero di dispositivi utilizzati per eseguire i test.
Il piano Firebase Spark prevede una quota di test fissa senza costi per gli utenti. Per il piano Blaze, le quote potrebbero aumentare se l'utilizzo di Google Cloud aumenta nel tempo. Se raggiungi la quota di test, attendi il giorno successivo o esegui l'upgrade al piano Blaze se al momento utilizzi il piano Spark.
Se hai già il piano Blaze, puoi richiedere un aumento della quota.
Per saperne di più, consulta Quota di test.
L'API Cloud Testing prevede due limiti di quota: richieste al giorno per progetto e richieste ogni 100 secondi per progetto. Puoi monitorare l'utilizzo nella console Google Cloud.
Quota dell'API Cloud Tool Results
L'API Cloud Tool Results prevede due limiti di quota: query al giorno per progetto e query ogni 100 secondi per progetto. Puoi monitorare l'utilizzo nella console Google Cloud.
Invia una richiesta di aumento delle quote modificando le quote direttamente nella console Google Cloud (tieni presente che la maggior parte dei limiti è impostata sul valore massimo per impostazione predefinita) oppure
Richiedi quote API più elevate compilando un modulo di richiesta nella console Google Cloud o contattando l'assistenza Firebase.
Come faccio a sapere se il traffico che raggiunge il mio backend proviene da Test Lab?
Dal tuo backend, puoi determinare se il traffico proviene da dispositivi di test ospitati su Firebase confrontando l'indirizzo IP di origine con i nostri intervalli IP.
Test Lab funziona con i Controlli di servizio VPC?
Test Lab non funziona con i Controlli di servizio VPC, che bloccano la copia di app e altri artefatti di test tra lo spazio di archiviazione interno di Test Lab e i bucket dei risultati degli utenti.
Come faccio a rilevare i test instabili in
Test Lab?
Per rilevare comportamenti instabili nei test, ti consigliamo di utilizzare l'opzione
--num-flaky-test-attempts
. Le nuove esecuzioni per la risoluzione dei problemi di instabilità vengono fatturate o conteggiate nella quota giornaliera allo stesso modo delle normali esecuzioni dei test.
Tieni presente che:
L'intera esecuzione del test viene eseguita di nuovo quando viene rilevato un errore. Non è previsto il supporto per riprovare solo gli scenari di test non riusciti.
Le esecuzioni dei nuovi tentativi di deflake sono programmate per essere eseguite contemporaneamente, ma non è garantito che vengano eseguite in parallelo, ad esempio quando il traffico supera il numero di dispositivi disponibili.
Domande frequenti specifiche per iOS
Test Lab supporta Appium, Flutter/FlutterDriver, ReactNative/Jest o Cucumber?
Sebbene alcuni di questi elementi siano nella nostra roadmap, al momento non siamo in grado di garantire il supporto di queste piattaforme di test e sviluppo di app.
Dove posso trovare i dettagli del dispositivo, come la risoluzione e così via?
Le informazioni dettagliate sul dispositivo sono disponibili tramite l'API e sono accessibili dal client gcloud utilizzando il comando describe:
gcloud firebase test ios models describe MODEL
Posso utilizzare lo sharding con i test per iOS?
Lo sharding non è supportato in modo nativo in Test Lab per iOS. Tuttavia, puoi utilizzare il client Flank per suddividere gli scenari di test iOS.
Per farlo, imposta la chiave e i valori OnlyTestIdentifiers nel file .xctestrun.
Per ulteriori dettagli, consulta la pagina man per xcodebuild.xctestrun.
Perché nel mio test per iOS non sono presenti video nei risultati?
Per iOS 18 o versioni successive, non siamo in grado di supportare i video nei risultati.
Domande frequenti specifiche per Android
Test Lab supporta i dispositivi indossabili?
Sì! Test Lab supporta Google Pixel Watch. Ora puoi eseguire test sulla tua app per Wear OS autonoma su Google Pixel Watch. Per scoprire di più sui dispositivi Test Lab, consulta Esegui test sui dispositivi disponibili.
Test Lab supporta gli ultimi dispositivi Google?
Sì! Test Lab supporta Google Pixel Tablet e Google Pixel Fold. Puoi eseguire i test sui tuoi dispositivi fisici autonomi.
Per scoprire di più sui dispositivi Test Lab, consulta Esegui test sui dispositivi disponibili.
Come faccio a rilevare un test in esecuzione
in Test Lab?
Se stai testando la tua app in Firebase o eseguendo test per un report pre-lancio in Play Console, puoi rilevare se un test viene eseguito su un dispositivo ospitato su Firebase controllando la proprietà di sistema firebase.test.lab nel file MainActivity. Puoi quindi eseguire istruzioni aggiuntive in base al valore booleano di testLabSetting. Per saperne di più, consulta Comportamenti dei test modificati.
Test Lab supporta Appium, Flutter/FlutterDriver, ReactNative/Jest o Cucumber?
Sebbene alcuni di questi elementi siano nella nostra roadmap, al momento non siamo in grado di garantire il supporto di queste piattaforme di test e sviluppo di app. Tuttavia, se hai creato l'app con un framework che supporta Espresso (ad esempio Flutter), puoi scrivere un test di instrumentazione utilizzando Espresso e poi eseguire il test in Test Lab.
Test Lab supporta i test delle app offuscate, ad esempio con ProGuard o R8?
Test Lab non supporta esplicitamente l'offuscamento o il deoffuscamento. Anche se l'app probabilmente verrà eseguita, tutti i dati dell'app offuscati, come le analisi dello stack, verranno visualizzati come offuscati nei log.
Posso utilizzare il mio dispositivo pieghevole in
diversi stati e posizioni di piegatura durante i test su Test Lab?
I dispositivi pieghevoli possono trovarsi in vari stati di piegatura, ad esempio FLAT (completamente aperto) o HALF_OPENED (tra completamente aperto e completamente chiuso).
Le posture, invece, consistono in un orientamento specifico del dispositivo e in uno stato pieghevole. Ad esempio, la posizione da tavolo, che è uno stato di HALF_OPENED con orientamento orizzontale, o la posizione a libro, che è uno stato di HALF_OPENED con orientamento verticale.
Se esegui test di instrumentazione, puoi utilizzare la libreria Jetpack WindowManager e seguire la documentazione relativa ai test dell'app su pieghevoli per eseguire test su stati e posizioni diversi.
In alternativa, gli stati disponibili sono specifici del dispositivo e puoi interagirci utilizzando adb
shell command cmd device_state.
Per elencare lo stato attuale, esegui adb shell cmd device_state state.
Per impostare o eseguire l'override dello stato attuale, esegui adb shell cmd device_state state <IDENTIFIER>.
Per reimpostare lo stato, esegui adb shell cmd device_state state reset.
Per controllare gli stati disponibili, esegui il comando adb shell cmd device_state print-states sul dispositivo pieghevole.
A differenza di altri prodotti Firebase, non è necessario aggiungere un SDK Firebase per utilizzare Test Lab. Se non hai ancora un'app, puoi scaricare un APK online o creare un'app e un APK di test da uno degli esempi nel repository GitHub AndroidX.
Tieni presente che per eseguire un test Robo è necessario solo il file APK dell'app, mentre un test di instrumentazione richiede sia un'app sia un APK di test creati dal codice sorgente. Per saperne di più, consulta la sezione Test strumentati.
Quali sono i dispositivi migliori per i test di screenshot-diff?
Il test di confronto degli screenshot prevede che le asserzioni del test si basino sul confronto delle immagini dello schermo ottenute durante l'esecuzione di un test con le immagini golden che rappresentano il comportamento previsto. Questi test potrebbero essere più fragili su alcuni tipi di dispositivi rispetto ad altri. Per questi tipi di test, ti consigliamo di scegliere come target i dispositivi emulatori Arm (*.arm). I dispositivi emulatore Arm utilizzano immagini molto simili o identiche agli emulatori "generici" di Android Studio.
Ti consigliamo inoltre di esaminare le librerie di test che possono contribuire a rendere i test degli screenshot più efficaci in presenza di modifiche previste.
Test Lab aggiorna i dispositivi virtuali?
Sì! I dispositivi virtuali vengono aggiornati quando vengono apportate le seguenti modifiche:
Aggiornamenti alle immagini esistenti
Ritiro dei livelli API precedenti
Vengono aggiunti nuovi livelli API Android
Come faccio ad attivare i report sulla copertura?
Per attivare i report sulla copertura, aggiungi coverage=true al campo environmentVariables.
Se utilizzi Android Test Orchestrator, devi fornire una directory in cui archiviare i risultati della copertura:
Dove posso trovare i dettagli del dispositivo, come
risoluzione, ABI supportate e così via?
Le informazioni dettagliate sul dispositivo sono disponibili tramite l'API e sono accessibili dal client gcloud utilizzando il comando describe:
gcloud firebase test android models describe MODEL
Come faccio ad accedere a un'app per Wear senza smartphone?
Se la tua app supporta Accedi con Google, questa operazione dovrebbe funzionare automaticamente con un account di test. In caso contrario, se la tua app richiede normalmente uno smartphone per l'accesso, puoi creare una variante di compilazione che salta l'accesso e utilizza un token incorporato nella build di test o legge i file sul disco, in genere inviati tramite --other-files option. Per scoprire di più, consulta Accesso personalizzato e inserimento di testo con i test Robo.
Problemi noti
CAPTCHA di accesso
Il test Robo non può bypassare le schermate di accesso che richiedono
un'azione aggiuntiva dell'utente oltre all'inserimento delle credenziali per l'accesso, ad esempio
il completamento di un CAPTCHA.
Problemi noti specifici di iOS
Accesso automatico
L'accesso automatico con un Account Google non è supportato
nei test Robo per iOS+ (beta).
Problemi noti specifici di Android
Supporto dei framework UI
Il test Robo funziona meglio con le app che utilizzano elementi UI del framework UI di Android (inclusi gli oggetti View, ViewGroup e WebView). Se utilizzi il test Robo per testare app che utilizzano altri framework UI, incluse le app che utilizzano il motore grafico Unity, il test potrebbe terminare senza esplorare oltre la prima schermata.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2026-10-16 UTC."],[],[]]