Scansione Automatica con il Driver XCUITest
Panoramica
La Scansione Automatica cattura automaticamente istantanee di accessibilità mentre navighi attraverso la tua app iOS. Anziché attivare manualmente le scansioni su ogni schermata, inizi una sessione di scansione automatica, interagisci con l'app e interrompi la sessione per generare un report.
Se hai bisogno di un controllo più dettagliato nei tuoi test, vedi Test Mirati con Appium.
Come funziona
- Inizia una sessione di scansione automatica (con le tue credenziali)
- Naviga attraverso la tua app — le schermate vengono scansionate automaticamente
- Interrompi la sessione — un report HTML viene generato su
~/AxeDevToolsMobileResults/
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 'AxeXCUITest' per utilizzare il driver con axe DevTools Mobile integrato per eseguire scansioni di accessibilità. |
| bundleId | String |
L'identificatore del pacchetto dell'app in test. Nota che bundleId è una parte del driver XCUITest; potresti averlo già impostato. |
Avvia la Scansione Automatica
Prima di iniziare il tuo suite di test, avvia la Scansione Automatica chiamando l' axeStartAutoScanSession API:
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
Poco prima che il suite di test termini, chiama l' axeStopAutoScanSession API per interrompere 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 usano JavaScript. Vedi Esempi di Codice per Scansione Automatica con XCUITest per esempi più completi in più linguaggi di programmazione.
Interpretazione dei Risultati
Sommario della console
Un sommario della console simile al seguente viene stampato quando il suite di test termina:
---- Axe DevTools Mobile Accessibility Summary ----
Scan 1:
Screen: HomeScreen
Issues: 3
Issues by rule:
- ColorContrast: 2
- TouchTargetSize: 1
Scan 2:
Screen: SettingsScreen
Issues: 0
Total Scans: 2
❌ Total Issues: 3
----------------------------------------------------Un'esecuzione pulita mostrerà Axe Clean - 0 Issues Found 🎉 nella console.
File di output
Quando la sessione di Scansione Automatica si interrompe, un report HTML viene generato su ~/AxeDevToolsMobileResults/. Il report contiene violazioni di accessibilità, successi e raccomandazioni per ogni schermata catturata durante la sessione.
Supporto per la Scansione Automatica
Regole
La Scansione Automatica esegue l'intero set di regole di Axe ad eccezione di ScreenOrientation, SupportsDynamicType, e tutte le regole sperimentali. Trova informazioni dettagliate su ciò che verifichiamo nella Panoramica delle Regole per iOS.
Developer Hub
Auto Scan carica automaticamente i tuoi risultati su Axe Developer Hub. Se desideri salvare i risultati solo localmente, imposta axeUploadResults su false.
Modalità Offline
Se non hai credenziali cloud, usa invece una chiave di licenza offline:
// JavaScript example
await driver.execute('mobile: axeStartAutoScanSession', {
axeOfflineLicenseKey: 'YOUR_OFFLINE_LICENSE_KEY'
});
// ... navigate through the app ...
await driver.execute('mobile: axeStopAutoScanSession', {});Riferimento di Configurazione
Proprietà
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
axeUploadResults |
Booleano | Facoltativo | Carica i risultati sulla dashboard (default: true) |
axeMobileApiKey |
Stringa | Obbligatorio* | Chiave API per scansione basata su cloud |
axeProjectId |
Stringa | Facoltativo | ID progetto per organizzare i risultati |
axeOfflineLicenseKey |
Stringa | Obbligatorio* | Chiave di licenza per modalità offline (alternativa alle credenziali cloud) |
axeServerUrl (Deprecato) |
stringa | Sì | URL backend personalizzato (es. axe.company.com), per cloud privato/on-prem solo |
axeAccountURL |
stringa | Sì | URL backend personalizzato (es. axe.company.com), per cloud privato/on-prem solo |
axeHtmlReportPath |
stringa | No | Directory di output configurabile dall'utente per il report HTML e il sommario. Predefinito su ??? |
Fornisci o credenziali cloud (axeMobileApiKey + axeProjectId+ axeAccountURL) oppure un axeOfflineLicenseKey.
Best Practice
Disabilita Animazioni
Ottieni i risultati più accurati e completi da Auto Scan disabilitando le animazioni. Questo garantirà che le schermate siano completamente renderizzate quando catturate. Aggiungi quanto segue sotto capabilities:
capabilities: {
// ...existing capabilities
'appium:reduceMotion': true, // enables iOS "Reduce Motion" accessibility setting
}Risoluzione dei Problemi
- Vedi risultati localmente, ma non in Developer Hub? Il caricamento su Developer Hub fallisce se la dimensione di un file di risultati supera i 20MB, sebbene tutti i risultati siano comunque salvati localmente e visualizzati nel report HTML locale.
- Controlla i log. Cerca nei
AutoScanmessaggi nella console.
Che Passa al Seguito?
Puoi visualizzare i tuoi risultati in Axe Developer Hub. Scopri come integrare Axe DevTools Mobile nella tua pipeline CI/CD. Usi una piattaforma di test basata su cloud? Puoi ancora utilizzare Axe DevTools Mobile per cercare problemi di accessibilità: Integrati con Piattaforme Cloud.
