Scansione Automatica con il Driver UIAutomator2
Panoramica
La scansione automatica monitora continuamente la tua app Android alla ricerca di problemi di accessibilità mentre i tuoi test sono in esecuzione. Invece di analizzare uno schermo alla volta, cattura istantanee di accessibilità a ogni cambiamento dell'UI e le elabora tutte alla fine.
Se hai bisogno di un controllo più dettagliato nei tuoi test, consulta Test Mirati con Appium.
Come funziona
- Avvia la Scansione Automatica all'inizio del tuo test
- Interagisci con la tua app - ogni cambiamento di schermo è catturato automaticamente
- Interrompi la scansione automatica - i risultati vengono elaborati e trasferiti sul tuo dispositivo locale
I risultati vengono salvati in build/AxeDevToolsMobileResults/ nella tua directory di progetto.
Per Iniziare
Avvia il server Appium come di consueto:
appiumConfigura i Tuoi Test
Dai tuoi script di automazione Appium, aggiungi le capacità richieste per Axe DevTools Mobile.
| Nome | Tipo | Descrizione |
|---|---|---|
| automationName | String |
Imposta su 'AxeUiAutomator2' per utilizzare il driver con Axe DevTools Mobile integrato per le scansioni di accessibilità. |
| appPackage | String |
Il nome del pacchetto dell'applicazione in test. Nota che appPackage è parte del driver UiAutomator2; potresti già averlo impostato. |
Avvia la Scansione Automatica
Prima di avviare la tua suite di test, avvia la Scansione Automatica chiamando l'API axeStartAutoScanSession :
beforeAll(async () => { // Start auto scan
await driver.executeScript('mobile: axeStartAutoScanSession', [{
axeMobileApiKey: 'your-api-key',
axeProjectId: 'your-devhub-project-id',
axeAccountURL: 'https://axe.deque.com',
axeHtmlReportPath: './reports/accessibility' // optional (local dir; default 'build/AxeDevToolsMobileResults')
...
}]);
})Interrompi la Scansione Automatica
Appena prima che la suite di test termini, chiama l'API axeStopAutoScanSession per interrompere la Scansione Automatica, aggregare e caricare i risultati.
// Stop - the report is pulled to axeHtmlReportPath on the local machine
const result = await driver.executeScript('mobile: axeStopAutoScanSession');
// result.localDirectory -> local directory the report was saved intoI frammenti di codice sopra sono scritti in JavaScript. Consulta Esempi di Codice di Scansione Automatica con UIAutomator2 per esempi più completi in diversi linguaggi di programmazione.
Interpretazione dei Risultati
Riepilogo su Console
Al termine della suite di test, puoi trovare un riepilogo nella finestra della console dove il server Appium è in esecuzione.
---- Axe DevTools Mobile Accessibility Summary ----
Scan 1:
Screen: Home Page
Issues: 6
Issues by rule:
- TouchSizeWcag: 3
- LabelAtFront: 1
- LabelInName: 1
- FocusableText: 1
Scan 35:
Screen: Wikipedia Alpha
Issues: 5
Issues by rule:
- LabelAtFront: 1
- LabelInName: 1
- TouchTargetSpacing: 1
- TouchSizeWcag: 1
- ColorContrast: 1
Total Scans: 35
❌ Total Issues: 123
---------------------------------------------------File di Output
Quando la sessione di Scansione Automatica si interrompe, viene generato un rapporto HTML in build/AxeDevToolsMobileResults/. Il rapporto contiene violazioni di accessibilità, successi e raccomandazioni per ogni schermo catturato durante la sessione.
Supporto alla Scansione Automatica
Regole
La Scansione Automatica esegue l'intero set di regole Axe ad eccezione di ScreenOrientation e tutte le regole sperimentali (ad es. NestedActiveControl, NestedElementName, InaccessibleAction). Trova informazioni dettagliate su ciò che controlliamo nel Panoramica delle Regole per Android.
Piattaforma Sviluppatori
Auto Scan carica automaticamente i tuoi risultati su Axe Developer Hub. Se vuoi solo salvare i risultati localmente, imposta axeUploadResults su false.
Modalità Offline
Se non hai credenziali cloud, usa invece la variante offline del driver con una chiave di licenza offline. Installa @axe-devtools/axe-appium3-uiautomator2-driver-offline e passa axeOfflineLicenseKey quando avvii la sessione.
Riferimento di Configurazione
Proprietà
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
axeUploadResults |
booleano | No | Carica risultati su Developer Hub |
axeMobileApiKey |
stringa | Sì* | La tua chiave API di Axe DevTools Mobile |
axeProjectId |
stringa | No | ID Progetto per organizzare i risultati |
axeOfflineLicenseKey |
stringa | Sì* | Chiave di licenza per modalità offline (alternativa alle credenziali cloud) |
axeServerUrl (Deprecato) |
stringa | Sì | URL backend personalizzato (ad es. axe.company.com), per on-prem/cloud privato solo |
axeAccountURL |
stringa | Sì | URL backend personalizzato (ad es. axe.company.com), per on-prem/cloud privato solo |
axeHtmlReportPath |
stringa | No | Directory di output configurabile dall'utente per il report HTML e il sommario. Default su build/AxeDevToolsMobileResults |
*Fornisci o credenziali cloud (axeMobileApiKey + axeProjectId + axeAccountURL) oppure un axeOfflineLicenseKey.
Disabilita Animazioni
Ottieni i risultati più accurati e completi da Auto Scan disabilitando le animazioni. Questo garantirà che gli schermi siano completamente renderizzati quando catturati. Se le animazioni non sono disabilitate, potresti notare:
- Scansioni duplicate che ritieni avrebbero dovuto essere eliminate
- Scansioni con schermate che mostrano uno stato transitorio
- Un tasso di cattura dello schermo significativamente inferiore a quello che ti aspetti
Aggiungi il seguente sotto capabilities:
capabilities: {
// ...existing capabilities
'appium:disableWindowAnimation': true, // disables window animations
}Risoluzione dei Problemi
Se non vedi apparire le scansioni in Developer Hub, dovresti controllare i tuoi log per eventuali indizi su cosa potrebbe essere sbagliato o seguire questa lista di controllo.
- Assicurati di utilizzare la variabile corretta per la tua chiave API/Licenza e ID del Progetto
- Controlla la dimensione dei tuoi file di output. Il caricamento su Developer Hub fallisce se la dimensione di un singolo file di risultato supera i 20MB, anche se tutti i risultati vengono comunque salvati localmente e mostrati nel rapporto HTML locale.
Cosa Succede Dopo?
Puoi visualizzare i tuoi risultati in Axe Developer Hub. Scopri come integrare Axe DevTools Mobile nella tua pipeline CI/CD. Stai usando una piattaforma di test basata su cloud? Puoi comunque utilizzare Axe DevTools Mobile per cercare problemi di accessibilità. Vedi Test Automatizzati su Piattaforme Cloud con Appium.
