Risoluzione dei problemi di Test Lab e DOMANDE FREQUENTI
Questa pagina fornisce assistenza per la risoluzione dei problemi e risposte alle domande frequenti sull'esecuzione di test con Firebase Test Lab. I problemi noti sono inoltre documentati. Se non riesci a trovare ciò che stai cercando o hai bisogno di ulteriore assistenza, partecipa al canale #test-lab su Firebase Slack o contatta l'assistenza Firebase.
Risoluzione dei problemi
Perché l'esecuzione del mio test richiede così tanto tempo?
Se nel catalogo Test Lab
selezioni un dispositivo con un livello di capacità elevato, i test potrebbero iniziare più velocemente. Quando
dispositivo ha una capacità ridotta, l'esecuzione dei test potrebbe richiedere più tempo. Se il numero
i test richiamati è molto superiore alla capacità dei dispositivi selezionati,
il completamento dell'operazione può richiedere più tempo.
I test eseguiti su qualsiasi livello di capacità del dispositivo potrebbero richiedere più tempo a causa dei seguenti fattori:
Traffico, che influisce sulla disponibilità del dispositivo e sulla velocità del test.
Guasti del dispositivo o dell'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à del dispositivo in Test Lab, consulta le informazioni sulla capacità del dispositivo per Android e iOS.
Perché ricevo risultati di test inconcludenti?
I risultati dei test inconcludenti di solito si verificano a causa di esecuzioni dei test annullate
o errori dell'infrastruttura.
Gli errori di infrastruttura sono causati da problemi interni di Test Lab, ad esempio la rete
errori o comportamenti imprevisti del dispositivo. Test Lab ritira internamente le esecuzioni di test
che producono più volte errori di infrastruttura prima di segnalare
risultati inconcludenti; ma puoi disabilitare questi nuovi tentativi utilizzando
failFast.
Riprova a eseguire il test in Test Lab per verificare che sia riproducibile.
Prova a eseguire il test su un altro dispositivo o tipo di dispositivo, se applicabile.
Se il problema persiste, contatta il team di Test Lab nel
Canale#test-lab attivo
Firebase Slack.
Perché lo sharding ha eseguito i miei test
più a lungo?
Lo sharding può comportare una durata maggiore dei test se il numero di shard che
specificato supera il numero di dispositivi disponibili per l'uso in Test Lab. A
evitare questa situazione, prova a passare a un altro dispositivo. Per ulteriori informazioni sulla scelta di un altro dispositivo, consulta
Capacità del dispositivo.
Perché la mia azienda richiede molto tempo
prima del test?
Quando invii una richiesta di test, l'app viene prima convalidata, rifirmata e così via
preparazione all'esecuzione di test su un dispositivo. Normalmente, questo processo viene completato
in meno di pochi secondi, ma può dipendere da fattori come le dimensioni del
dell'app.
Una volta preparata l'app, le esecuzioni dei test vengono programmate e rimangono in coda
finché il dispositivo non è pronto a eseguirlo. Fino al termine di tutte le esecuzioni del test,
lo stato della matrice sarà "In attesa" (indipendentemente dal fatto che le esecuzioni dei test siano
in coda o in esecuzione).
Perché la mia azienda richiede molto tempo
per completare il test?
Al termine dell'esecuzione del test, gli artefatti del test vengono scaricati
dispositivo, elaborato e caricato su Cloud Storage. La durata di questo passaggio può essere influenzata dalla quantità e dalle dimensioni degli elementi.
L'app non restituisce dati e non trova screenshot
Gli elementi di esecuzione dei test (ad esempio 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, controlla di avere assegnati
ruoli a livello di progetto (proprietario del progetto, editor del progetto o visualizzatore del progetto).
Assicurati inoltre che l'audit logging di Cloud non sia abilitato per il tuo progetto
o all'organizzazione.
Se l'esecuzione è stata eseguita più di 90 giorni fa, la maggior parte
probabilmente gli artefatti del test
sono stati eliminati automaticamente. Puoi controllare la configurazione del bucket dei risultati facendo clic sulla scheda Risultati del test nella dashboard Test Lab. Il bucket risultati predefinito è configurato per conservare gli oggetti per 90 giorni.
Per conservare più a lungo gli artefatti di test, esegui il comando
gcloud firebase test android run con la bandiera --results-bucket e passa
il nome del bucket dei risultati. Per ulteriori informazioni, visita il
documentazione di riferimento di gcloud firebase test android run.
Perché ricevo risultati parziali o mancanti dello scenario di test della strumentazione?
Quando esegui i test di strumentazione, potresti vedere errori di test che indicano una
risultati che contengono messaggi simili a Test run failed to complete. Expected
x tests, received y (dove y è inferiore a x).
Questo errore significa che Test Lab non è riuscito ad analizzare il logcat per l'avvio dello scenario di test
o indicatori di fine, generalmente generati
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
è più lungo di un timeout da te specificato o maggiore di un
timeout massimo,
Test Lab annulla gli altri scenari di test.
Aumenta il timeout per la matrice per assicurarti che tutti i test possano essere completati.
Se non lo hai già fatto, esegui lo sharding dei test, in modo che ogni shard esegua un
sottoinsieme di test e viene 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é è uscito prematuramente o si è bloccato.
Lo scenario di test potrebbe uscire prematuramente a causa di un'eccezione non rilevata o
di asserzione. I casi di test possono bloccarsi in un ciclo infinito o non essere in grado di procedere, ad esempio se l'app non mostra la visualizzazione corretta e il caso di test non può eseguire l'azione nell'interfaccia utente.
Controlla il video e logcat per scoprire dove si trova il test
è stata interrotta.
Si è verificato un arresto anomalo di un test personalizzato (compresa l'estensione di AndroidJUnitRunner)
o ha scritto in modo imprevisto gli indicatori di inizio o fine dello scenario di test
logcat.
Controlla il codice runner di test.
Numero eccessivo di log scritti in logcat, sovraccaricando il buffer
o ha causato l'arresto anomalo del processo logcat.
Riduci le scritture a logcat.
L'app in test ha avuto un arresto anomalo.
Esegui il debug dell'app.
Domande frequenti
Quali sono le quote senza costi
per Test Lab? Cosa devo fare se finiscono?
Firebase Test Lab offre quote senza costi per i test sui dispositivi e l'utilizzo
delle API Cloud. Tieni presente che la quota di test utilizza il piano tariffario Firebase standard,
al contrario delle quote dell'API Cloud.
Quota di test
Le quote per i test sono determinate dal numero di dispositivi utilizzati per eseguire i test.
Il piano Firebase Spark ha una quota fissa di test senza costi per gli utenti. Per
piano Blaze, le tue quote potrebbero aumentare se utilizzi 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 disponi già del piano Blaze, puoi richiedere un aumento della quota.
Per ulteriori informazioni, vedi
Quota di test.
L'API Cloud Testing ha due limiti di quota: richieste al giorno per
richieste per progetto e richieste ogni 100 secondi per progetto. Puoi monitorare
di utilizzo nel
Console Google Cloud.
Quota dell'API Cloud Tool Results
L'API Cloud Tool Results ha due limiti di quota: query al giorno per progetto e query ogni 100 secondi per progetto. Puoi monitorare
di utilizzo nel
Console Google Cloud.
Invia una richiesta per quote più alte entro il giorno
modificando le quote
direttamente nella console Google Cloud (tieni presente che la maggior parte dei limiti è impostata
massimo per impostazione predefinita) o
Per richiedere quote API più elevate, compila un modulo di richiesta nel
Console Google Cloud o contattando
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 controllando l'indirizzo IP di origine rispetto ai nostri
intervalli IP.
Test Lab funziona con
VPC-SC?
Test Lab non funziona con VPC-SC, che blocca la copia di app e altri elementi di test tra lo spazio di archiviazione interno di Test Lab e i bucket dei risultati degli utenti.
Come faccio a rilevare test irregolari in
Test Lab?
Per rilevare un comportamento irregolare nei test, ti consigliamo di utilizzare la classe
--num-instabili-tentativi-di-test
. Le riesecuzione di deflake vengono fatturate o conteggiate ai fini della quota giornaliera come le normali esecuzioni dei test.
Tieni presente che:
L'intera esecuzione del test viene eseguita di nuovo quando viene rilevato un errore. Non sono presenti
supporto per ritentare solo gli scenari di test non riusciti.
Le esecuzioni di nuovi tentativi di deflake sono pianificate per essere eseguite alla stessa ora, ma non
verranno eseguite in parallelo, ad esempio quando il traffico supera il numero
tra i dispositivi disponibili.
Test Lab supporta
dispositivi indossabili?
Sì! Test Lab supporta Google Pixel Watch. Ora puoi eseguire test su
nell'app Wear autonoma su Google Pixel Watch. Per scoprire di più su
Test Lab dispositivi, consulta la sezione Test su
dispositivi disponibili.
Test Lab supporta le
i dispositivi Google più recenti?
Sì! Test Lab supporta Google Pixel Tablet e Google Pixel Fold. Puoi
eseguire i test su dispositivi fisici autonomi.
Per scoprire di più sui dispositiviTest Lab, consulta Eseguire test su dispositivi disponibili.
Come rilevare un test in esecuzione
in Test Lab?
Se stai testando la tua app in Firebase o eseguendo test per una
report pre-lancio
in Play Console, puoi rilevare se un test è
eseguire su un dispositivo ospitato da Firebase controllando la proprietà di sistema
firebase.test.lab nel file MainActivity. Puoi quindi eseguire ulteriori
basate sul valore booleano di testLabSetting. Per ulteriori informazioni, consulta Comportamenti di test modificati.
Test Lab
supporta Appium, Flutter/FlutterDriver, ReactNative/Jest o Cucumber?
Sebbene alcuni di questi elementi siano inclusi nella nostra roadmap, al momento non possiamo impegnarci a supportare queste piattaforme di test e sviluppo di app. Tuttavia,
se hai creato la tua app con un framework che supporta Espresso (ad esempio,
Flutter), puoi scrivere un test di strumentazione utilizzando
Espresso
quindi esegui il test in Test Lab.
Test Lab
supporta il test di app offuscate, ad esempio con ProGuard o R8)?
Test Lab non supporta esplicitamente l'offuscamento o il deoffuscamento. Mentre
è probabile che l'app venga eseguita, eventuali dati offuscati, come analisi dello stack,
apparirà come offuscata nei log.
Posso usare il mio dispositivo pieghevole nel
posizioni e posizioni pieghevoli diversi durante il test su Test Lab?
I dispositivi pieghevoli possono essere chiusi in vari stati, ad esempio FLAT (completamente aperto) o HALF_OPENED (tra completamente aperto e completamente chiuso).
La postura, invece, è l'orientamento specifico del dispositivo e il dispositivo
stato. Ad esempio, la postura da tavolo, che è uno stato HALF_OPENED in orientamento orizzontale, o la postura del libro, che è uno stato HALF_OPENED in orientamento verticale.
In alternativa, gli stati disponibili sono specifici del dispositivo e possono essere utilizzati per l'interazione utilizzando l'adb
shell command cmd device_state.
Per elencare lo stato attuale, esegui adb shell cmd device_state state.
Per impostare o ignorare lo stato corrente, 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 adb shell cmd device_state print-states
sul dispositivo pieghevole.
A differenza degli altri prodotti Firebase, non è necessario aggiungere un account Firebase
SDK per utilizzare Test Lab. Se non hai ancora un'app, puoi
scarica un APK online oppure crea un'app e un APK di prova da uno dei
esempi nel repository GitHub di AndroidX.
Tieni presente che ti serve solo
il file APK dell'app per eseguire un test Robo, mentre un test di strumentazione richiede entrambi
un'app e un APK di test creati a partire da codice sorgente. Per ulteriori informazioni,
scopri di più sui Test strumentati.
Per quali dispositivi sono più adatti
il test di screenshot-diff?
I test di differenza di screenshot si basano sul confronto delle immagini sullo schermo ottenute durante l'esecuzione di un test con le immagini di riferimento che rappresentano il comportamento previsto. Questi test potrebbero essere più efficaci su alcuni tipi di dispositivi rispetto ad altri. Per questi tipi di test, ti consigliamo di scegliere come target i dispositivi emulatore Arm (*.arm). Utilizzo da dispositivi emulatori ARM
molto simili o identiche agli emulatori "generici" di Android Studio.
Ti consigliamo inoltre di esaminare le librerie di test che possono aiutarti a
test degli screenshot più affidabili in presenza delle 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 a
Campo environmentVariables.
Se utilizzi Android Test Orchestrator, dovrai fornire una directory
memorizza i risultati di copertura:
Dove posso trovare i dettagli dei dispositivi, ad esempio
risoluzione, ABI supportate ecc.?
Le informazioni dettagliate sul dispositivo sono disponibili tramite l'API e sono accessibili
dal client gcloud
comando Describe:
gcloud firebase test android models describe MODEL
Problemi noti
Captcha di accesso
Il test robot non può bypassare le schermate di accesso che richiedono
un'ulteriore azione utente oltre all'inserimento delle credenziali per accedere, ad esempio
completare un CAPTCHA.
Supporto del framework UI
Il test Robo funziona al meglio con app che utilizzano elementi UI dell'UI di Android
(inclusi View, ViewGroup e WebView
oggetti). Se usi il test Robo per addestrare app che usano altre UI
framework, incluse le app che utilizzano il motore grafico Unity, il test potrebbe terminare
senza esplorare oltre il primo schermo.