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 Scansione Automatica all'inizio del tuo test
- Interagisci con la tua app — ogni cambiamento di schermata viene catturato automaticamente
- Interrompi scansione automatica — i risultati vengono elaborati e trasferiti sul tuo computer locale
I risultati vengono salvati in build/AxeDevToolsMobileResults/ nella directory del tuo 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 fase di test. Nota che appPackage è parte del driver UiAutomator2; potresti già averlo impostato. |
Avvia la Scansione Automatica
Prima di iniziare la 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
Subito prima che la suite di test finisca, chiama l'API axeStopAutoScanSession per fermare la Scansione Automatica e 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 intoGli esempi di codice sopra utilizzano JavaScript. Consulta Esempi di Codice di Scansione Automatica con UIAutomator2 per esempi più completi in più 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 ferma, viene generato un report HTML in build/AxeDevToolsMobileResults/. Il report contiene violazioni di accessibilità, successi e raccomandazioni per ogni schermata catturata durante la sessione.
Supporto alla Scansione Automatica
Regole
La Scansione Automatica esegue l'intera serie di regole Axe con l'eccezione di ScreenOrientation e tutte le regole sperimentali (es. NestedActiveControl, NestedElementName, InaccessibleAction). Trova informazioni dettagliate su cosa controlliamo in Panoramica delle Regole per Android.
Piattaforma Sviluppatori
La Scansione Automatica 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 la variante offline del driver con una chiave di licenza offline. Installa @axe-devtools/axe-appium3-uiautomator2-driver-offline e inserisci 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 del backend personalizzato (es. axe.company.com), solo per on-prem/cloud privato |
axeAccountURL |
stringa | Sì | URL del backend personalizzato (es. axe.company.com), solo per on-prem/cloud privato |
axeHtmlReportPath |
stringa | No | Directory di output configurabile dall'utente per il report HTML e il riepilogo. Valore predefinito: build/AxeDevToolsMobileResults |
*Fornire 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. Impara come integrare Axe DevTools Mobile nella tua pipeline CI/CD. Stai utilizzando una piattaforma di test basata sul cloud? Puoi comunque utilizzare Axe DevTools Mobile per cercare problemi di accessibilità. Consulta Test Automatizzati su Piattaforme Cloud con Appium.
