Scansione Automatica con il Driver UIAutomator2

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

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.

tip

Se hai bisogno di un controllo più dettagliato nei tuoi test, consulta Test Mirati con Appium.

Come funziona

  1. Avvia Scansione Automatica all'inizio del tuo test
  2. Interagisci con la tua app — ogni cambiamento di schermata viene catturato automaticamente
  3. 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:

appium

Configura 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 into
note

Gli 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 URL del backend personalizzato (es. axe.company.com), solo per on-prem/cloud privato
axeAccountURL stringa 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.