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ù granulare nei tuoi test, consulta 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 — viene generato un report HTML presso
~/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 bundle dell'applicazione in test. Nota che bundleId è parte integrante del driver XCUITest; potresti averlo già impostato. |
Avvia la Scansione Automatica
Prima di avviare il tuo set di test, avvia Auto Scan 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 il set di test finisca, chiama l'API axeStopAutoScanSession per fermare Auto Scan 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 intoI frammenti di codice sopra utilizzano 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 Auto Scan si ferma, viene generato un report HTML presso ~/AxeDevToolsMobileResults/. Il report contiene violazioni dell'accessibilità, successi e raccomandazioni per ogni schermata catturata durante la sessione.
Supporto per la Scansione Automatica
Regole
Auto Scan esegue l'intero set di regole Axe con l'eccezione di ScreenOrientation, SupportsDynamicType e tutte le regole sperimentali. Trova informazioni dettagliate su cosa controlliamo in Panoramica delle Regole per iOS.
Developer Hub
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 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 risultati sul dashboard (predefinito: 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 back-end personalizzato (ad esempio axe.company.com), solo per cloud privato/on-prem |
axeAccountURL |
stringa | Sì | URL back-end personalizzato (ad esempio axe.company.com), solo per cloud privato/on-prem |
axeHtmlReportPath |
stringa | No | Directory di output configurabile dall'utente per report HTML e sommario. Valore predefinito: ??? |
Fornisci le credenziali cloud o (axeMobileApiKey + axeProjectId+ axeAccountURL) oppure un axeOfflineLicenseKey.
Best Practice
Disabilita Animazioni
Ottieni i risultati più accurati e completi da Auto Scan disabilitando l'animazione. 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 qualsiasi file di risultati supera i 20MB, ma tutti i risultati vengono comunque salvati localmente e mostrati nel report HTML locale.
- Controlla i log. Cerca messaggi
AutoScannella 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. Utilizzando una piattaforma di test basata su cloud? Puoi ancora utilizzare Axe DevTools Mobile per cercare problemi di accessibilità: Integrati con Piattaforme Cloud.
