Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Integrazione della strumentazione Android con Device Farm
Nota
Usa le seguenti istruzioni per integrare i test di strumentazione Android con AWS Device Farm. Per ulteriori informazioni sull'utilizzo dei test di strumentazione in Device Farm, consulta. Strumentazione per Android e AWS Device Farm
Esegui i test di strumentazione Android (console)
Usa la console Device Farm per caricare i tuoi test.
-
Accedi alla console Device Farm all'indirizzo https://console.aws.amazon.com/devicefarm
. -
Nel pannello di navigazione, scegli Mobile Device Testing, quindi scegli Progetti.
-
Nell'elenco dei progetti, scegli il progetto su cui vuoi caricare i tuoi test.
Suggerimento
Puoi usare la barra di ricerca per filtrare l'elenco dei progetti per nome.
Per creare un progetto, segui le istruzioni indicate nella sezione Creazione di un progetto in AWS Device Farm.
-
Seleziona Crea corsa.
-
In Seleziona app e tipo di esecuzione, nella sezione Tipo di esecuzione, seleziona l'app Android.
-
In Seleziona app, nella sezione Opzioni di selezione dell'app, scegli Seleziona un'app di esempio fornita da Device Farm se non hai un'app. Se stai portando la tua app, seleziona Carica la tua app, quindi scegli il tuo APK (formato di file.apk).
-
In Configura test, nella sezione Seleziona framework di test, scegli Strumentazione, quindi scegli Scegli file. Cerca e scegli il file APK (formato file.apk) che contiene i tuoi test.
-
In Scegli il tuo ambiente di esecuzione, seleziona Esegui il test in un ambiente personalizzato o Esegui il test nel nostro ambiente standard. Per ulteriori informazioni, consulta Ambienti di test in AWS Device Farm.
-
Se hai scelto l'ambiente personalizzato, puoi utilizzare le specifiche di test predefinite compilate per i test di strumentazione oppure scegliere Carica specifiche di test personalizzate per fornire le tue.
-
In Seleziona dispositivi, scegli un metodo di selezione dei dispositivi. Seleziona Usa pool di dispositivi per scegliere tra una raccolta curata di dispositivi o un pool di dispositivi personalizzato che hai creato. Seleziona Seleziona manualmente i dispositivi per scegliere i singoli dispositivi su cui eseguire i test. La sezione Compatibilità dei dispositivi mostra quanti dispositivi del pool selezionato sono compatibili con la tua app. Per ulteriori informazioni, consulta Supporto per i dispositivi in AWS Device Farm.
-
Per configurare le proprietà a livello di esecuzione, aggiorna la sezione Impostazioni di esecuzione. Qui puoi fare quanto segue:
-
(Facoltativo) Per fare in modo che Device Farm generi un rapporto di test al termine dell'esecuzione, seleziona Genera rapporto di test. Questa opzione è disponibile solo in un ambiente di test personalizzato. Device Farm genera il report in base ai risultati della strumentazione inclusi nell'output delle specifiche di test. Se carichi le tue specifiche di test, assicurati che trasmettano i risultati della strumentazione all'output delle specifiche di test.
-
-
Completa i passaggi rimanenti, quindi avvia l'esecuzione.
Visualizza un rapporto di prova (console)
Accedi alla console Device Farm all'indirizzo https://console.aws.amazon.com/devicefarm
. -
Nel riquadro di navigazione, scegli Mobile Device Testing, quindi scegli Progetti.
-
Scegli il progetto che contiene l'esecuzione che desideri ispezionare.
-
Scegli la corsa completata per aprirne i dettagli.
-
Scegli uno dei lavori completati per aprire i risultati per quel dispositivo.
Con le informazioni sui test abilitate
I risultati del lavoro includono una scheda Rapporto di test. Sceglila per visualizzare una suddivisione per test. Le schermate seguenti mostrano la scheda Rapporto di test con tutte le colonne visibili.
La scheda mostra i seguenti campi per ogni test:
testNameIl nome del metodo di test.
testClassIl nome della classe di test.
resultIl risultato del test di Device Farm.
frameworkResultIl risultato riportato dal framework di strumentazione. Device Farm associa questo valore al campo normalizzato
result.durationSecondsLa durata del test, in secondi.
startTimestampL'ora di inizio del test.
endTimestampL'ora in cui è terminato il test.
currentLa posizione del test durante la corsa.
numTestsIl numero totale di test in esecuzione.
statusCodeIl codice di stato della strumentazione riportato dal test.
streamUna versione leggibile dall'uomo dell'output della strumentazione per il test.
stackTracePer un test fallito, la traccia dello stack dell'errore.
Per scaricare il rapporto completo del test come file JSON, scegli Scarica il riepilogo completo nella parte superiore dei dettagli del lavoro.
Per scegliere quali colonne visualizzare, scegli l'icona a forma di ingranaggio. Nelle impostazioni, puoi selezionare le colonne da visualizzare e attivare o disattivare Raggruppa per classe. L'opzione Raggruppa per classe è attiva per impostazione predefinita e raggruppa i test in base alla classe di test. Disattivalo per visualizzare un elenco completo di tutti i test, come mostrato nella schermata seguente.
Senza le informazioni sui test abilitate
I risultati del lavoro mostrano l'output e gli artefatti del test standard, ma nessuna scheda Rapporto di test. Per generare un rapporto di test, pianifica una nuova esecuzione con le informazioni sui test abilitate.
Visualizza un rapporto di prova (AWS CLI)
Esegui get-job e specifica l'ARN del lavoro:
aws devicefarm get-job --arnarn:aws:devicefarm:us-west-2:123456789012:job:PROJECT_ID/RUN_ID/00000
Senza che le informazioni sui test siano abilitate
Se non hai abilitato i test insights, la risposta contiene i campi standard del job, come lo stato del job, il risultato, i contatori e il dispositivo:
{ "job": { "arn": "arn:aws:devicefarm:us-west-2:123456789012:job:EXAMPLE-PROJECT/EXAMPLE-RUN/00000", "name": "Example Android Phone", "created": "2026-08-05T14:26:56.959000-07:00", "status": "COMPLETED", "result": "PASSED", "counters": { "total": 3, "passed": 3, "failed": 0, "warned": 0, "errored": 0, "stopped": 0, "skipped": 0 }, "message": "Successful test lifecycle of Setup Test", "device": { "arn": "arn:aws:devicefarm:us-west-2::device:EXAMPLEDEVICEID", "name": "Example Android Phone", "platform": "ANDROID", "os": "16", "formFactor": "PHONE", "fleetType": "PUBLIC" }, "deviceMinutes": { "total": 1.38, "metered": 0.0, "unmetered": 1.13 }, "videoCapture": true } }
Con i test insights abilitati
Se hai abilitato i test insights, la risposta include anche un insights oggetto. Questo oggetto contiene lo stato del rapporto di test, metriche di alto livello e un URL prefirmato al rapporto dettagliato:
{ "job": { "arn": "arn:aws:devicefarm:us-west-2:123456789012:job:EXAMPLE-PROJECT/EXAMPLE-RUN/00000", "status": "COMPLETED", "result": "PASSED", "counters": { ... }, "device": { ... }, "deviceMinutes": { ... }, "videoCapture": true, "insights": { "status": "COMPLETED", "testReport": { "message": "Results: 2 Executed | 2 passed, Median test duration: 28.926 seconds.", "metrics": { "testsTotal": 2, "testsPassed": 2, "testsFailed": 0, "testsSkipped": 0, "testsErrored": 0, "testsOther": 0, "testsPassedPercentage": 100.0 }, "testDetailsUrl": "https://EXAMPLE-PRESIGNED-URL" } } } }
Il testDetailsUrl campo è un URL prefirmato del JSON completo del rapporto di test. Scaricalo per ottenere la suddivisione per test:
curl -o test-report.json "PRESIGNED_URL"
Di seguito è riportato un esempio di rapporto di prova per un lavoro di strumentazione:
{ "version": "1.0", "jobArn": "arn:aws:devicefarm:us-west-2:123456789012:job:EXAMPLE-PROJECT/EXAMPLE-RUN/00000", "metrics": { "testsTotal": 3, "testsPassed": 2, "testsFailed": 1, "testsSkipped": 0, "testsErrored": 0, "testsOther": 0, "testsPassedPercentage": 66.67, "totalTestExecutionDurationSeconds": 26.004, "medianTestExecutionDurationSeconds": 1.598 }, "testDetails": [ { "testName": "testConnect", "testClass": "com.example.myapp.GpsConnectInstrumentedTest", "frameworkResult": "PASSED", "result": "PASSED", "durationSeconds": 24.399, "startTimestamp": "2026-08-05T20:38:30.131514Z", "endTimestamp": "2026-08-05T20:38:54.530369Z", "statusCode": 0, "current": 1, "numTests": 3 }, { "testName": "testHistoryOff", "testClass": "com.example.myapp.NotificationHistoryInstrumentedTest", "frameworkResult": "PASSED", "result": "PASSED", "durationSeconds": 1.598, "startTimestamp": "2026-08-05T20:38:54.531765Z", "endTimestamp": "2026-08-05T20:38:56.130032Z", "statusCode": 0, "current": 2, "numTests": 3 }, { "testName": "testConnect", "testClass": "com.example.myapp.WifiConnectInstrumentedTest", "frameworkResult": "FAILED", "result": "FAILED", "durationSeconds": 0.002, "startTimestamp": "2026-08-05T20:38:56.131857Z", "endTimestamp": "2026-08-05T20:38:56.133770Z", "stackTrace": "java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.test.uiautomator.UiDevice.pressHome()' on a null object reference\n\tat com.example.myapp.WifiConnectInstrumentedTest.testConnect(WifiConnectInstrumentedTest.java:93)\n\t...", "stream": "\nError in testConnect(com.example.myapp.WifiConnectInstrumentedTest):\njava.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.test.uiautomator.UiDevice.pressHome()' on a null object reference\n\t...", "statusCode": -2, "current": 3, "numTests": 3 } ], "errorMessage": "There was 1 failure:\n1) testConnect(com.example.myapp.WifiConnectInstrumentedTest)\njava.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.test.uiautomator.UiDevice.pressHome()' on a null object reference\n\t...\nFAILURES!!!\nTests run: 3, Failures: 1", "instrumentationCode": -1 }
Il rapporto contiene i seguenti campi di primo livello:
versionLa versione dello schema del report.
jobArnARN del processo.
metrics-
Risultati aggregati per il lavoro. L'oggetto
metricsinclude i seguenti campi:testsTotalIl numero totale di test del job.
testsPassedIl numero di test superati.
testsFailedIl numero di test non riusciti.
testsSkippedIl numero di test che sono stati saltati.
testsErroredIl numero di test con errori.
testsOtherIl numero di test con un altro risultato.
testsPassedPercentageLa percentuale di test superati.
totalTestExecutionDurationSecondsLa durata totale di tutti i test, in secondi.
medianTestExecutionDurationSecondsLa durata mediana di un test, in secondi.
errorMessageSe l'esecuzione ha avuto errori, un messaggio di errore che li riepiloga.
instrumentationCodeIl codice di uscita complessivo della strumentazione per il lavoro.
testDetails-
Un elenco dei risultati per test. Ogni voce
testDetailscontiene i seguenti campi:testNameIl nome del metodo di prova.
testClassIl nome della classe di test.
resultIl risultato del test di Device Farm.
frameworkResultIl risultato riportato dal framework di strumentazione. Device Farm associa questo valore al campo normalizzato
result.durationSecondsLa durata del test, in secondi.
startTimestampL'ora di inizio del test.
endTimestampL'ora in cui è terminato il test.
currentLa posizione del test durante la corsa.
numTestsIl numero totale di test in esecuzione.
statusCodeIl codice di stato della strumentazione riportato dal test.
streamUna versione leggibile dall'uomo dell'output della strumentazione per il test.
stackTracePer un test fallito, la traccia dello stack dell'errore.
(Facoltativo) Acquisisci schermate nei test della strumentazione Android
Durante i test di Instrumentation per Android, si possono acquisire screenshot.
Per acquisire screenshot, chiamare uno dei seguenti metodi:
-
Per Robotium, chiamare il metodo
takeScreenShot(ad esempio,solo.takeScreenShot();). -
Per Spoon, chiamare il metodo
screenshot, ad esempio:Spoon.screenshot(activity, "initial_state"); /* Normal test code... */ Spoon.screenshot(activity, "after_login");
Durante un test, Device Farm ottiene schermate dalle seguenti posizioni sui dispositivi, se presenti, e le aggiunge ai report di test:
-
/sdcard/robotium-screenshots -
/sdcard/test-screenshots -
/sdcard/Download/spoon-screenshots/test-class-name/test-method-name -
/data/data/application-package-name/app_spoon-screenshots/test-class-name/test-method-name