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

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

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