Scan automatique avec le pilote UIAutomator2
Vue d'ensemble
Le scan automatique surveille en continu votre application Android pour détecter les problèmes d'accessibilité pendant l'exécution de vos tests. Au lieu de scanner un écran à la fois, il capture des instantanés d'accessibilité à chaque changement d'interface utilisateur et les traite tous à la fin.
Si vous avez besoin d'un contrôle plus précis dans vos tests, consultez Tests ciblés avec Appium.
Comment ça fonctionne
- Démarrez Auto Scan au début de votre test
- Interagissez avec votre application — chaque changement d'écran est capturé automatiquement
- Arrêtez auto scan — les résultats sont traités et tirés vers votre machine locale
Les résultats sont enregistrés dans build/AxeDevToolsMobileResults/ dans le répertoire de votre projet.
Commencer
Démarrez le serveur Appium comme d'habitude :
appiumConfigurez vos tests
Depuis vos scripts d'automatisation Appium, ajoutez les capacités requises pour Axe DevTools Mobile.
| Nom | Type | Description |
|---|---|---|
| automationName | String |
Définissez sur 'AxeUiAutomator2' pour utiliser le pilote avec Axe DevTools Mobile intégré pour les scans d'accessibilité. |
| appPackage | String |
Le nom du package de l'application testée. Notez que appPackage fait partie du pilote UiAutomator2 ; vous l'avez peut-être déjà configuré. |
Démarrer le scan automatique
Avant de démarrer votre suite de tests, commencez Auto Scan en appelant 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')
...
}]);
})Arrêter le scan automatique
Juste avant la fin de la suite de tests, appelez l'API axeStopAutoScanSession pour arrêter Auto Scan, agréger et télécharger les résultats.
// 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 intoLes extraits de code ci-dessus utilisent JavaScript. Consultez Exemples de code de scan automatique avec UIAutomator2 pour des exemples plus complets dans plusieurs langages de programmation.
Interprétation des résultats
Résumé de la console
Une fois la suite de tests terminée, vous pouvez trouver un résumé dans la fenêtre de console où le serveur Appium fonctionne.
---- 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
---------------------------------------------------Fichiers de sortie
Lorsque la session Auto Scan s'arrête, un rapport HTML est généré à build/AxeDevToolsMobileResults/. Le rapport contient les violations d'accessibilité, les réussites et les recommandations pour chaque écran capturé lors de la session.
Support de scan automatique
Règles
Auto Scan exécute l'ensemble complet des règles Axe à l'exception de ScreenOrientation et de toutes les règles expérimentales (par exemple NestedActiveControl, NestedElementName, InaccessibleAction). Trouvez des informations détaillées sur ce que nous vérifions dans le Vue d'ensemble des règles pour Android.
Centre de Développeurs
Auto Scan télécharge automatiquement vos résultats vers Axe Developer Hub. Si vous souhaitez uniquement enregistrer les résultats localement, définissez axeUploadResults sur false.
Mode Hors Ligne
Si vous n'avez pas de justificatifs cloud, utilisez la variante hors ligne du pilote avec une clé de licence hors ligne à la place. Installez @axe-devtools/axe-appium3-uiautomator2-driver-offline et passez axeOfflineLicenseKey lors du démarrage de la session.
Référence de Configuration
Propriétés
| Paramètre | Type | Requis | Description |
|---|---|---|---|
axeUploadResults |
booléen | Non | Télécharger les résultats vers le Centre de Développeurs |
axeMobileApiKey |
chaîne | Oui* | Votre clé API Axe DevTools Mobile |
axeProjectId |
chaîne | Non | ID de projet pour organiser les résultats |
axeOfflineLicenseKey |
chaîne | Oui* | Clé de licence pour le mode hors ligne (alternative aux identifiants cloud) |
axeServerUrl (Obsolète) |
chaîne | Oui | URL de backend personnalisé (par exemple axe.company.com), pour cloud privé/sur site uniquement |
axeAccountURL |
chaîne | Oui | URL de backend personnalisé (par exemple axe.company.com), pour cloud privé/sur site uniquement |
axeHtmlReportPath |
chaîne | Non | Répertoire de sortie configurable par l'utilisateur pour le rapport HTML et le résumé. Par défaut, c'est build/AxeDevToolsMobileResults |
*Fournir des justificatifs cloud soit (axeMobileApiKey + axeProjectId + axeAccountURL) ou un axeOfflineLicenseKey.
Désactiver les animations
Obtenez les résultats les plus précis et complets d'Auto Scan en désactivant l'animation. Cela garantira que les écrans sont entièrement rendus lors de la capture. Si les animations ne sont pas désactivées, vous pourriez remarquer :
- Des analyses en double que vous pensez auraient dû être supprimées
- Des analyses avec des captures d'écran montrant un état transitoire
- Un taux de capture d'écran significativement inférieur à celui que vous pourriez attendre
Ajoutez ce qui suit sous capabilities :
capabilities: {
// ...existing capabilities
'appium:disableWindowAnimation': true, // disables window animations
}Dépannage
Si vous ne voyez pas les analyses apparaître dans Developer Hub, vous devriez vérifier vos journaux pour trouver des indices sur ce qui pourrait être mal ou consulter cette liste de vérification.
- Assurez-vous que vous utilisez la variable correcte pour votre clé API/licence et votre ID de projet
- Vérifiez la taille de vos fichiers de sortie. Le téléchargement vers Developer Hub échoue si la taille d'un fichier de résultat dépasse 20MB, bien que tous les résultats soient toujours enregistrés localement et visibles dans le rapport HTML local.
Et ensuite ?
Vous pouvez voir vos résultats dans Axe Developer Hub. Découvrez comment intégrer Axe DevTools Mobile dans votre pipeline CI/CD. Utilisez-vous une plateforme de test basée sur le cloud ? Vous pouvez toujours utiliser Axe DevTools Mobile pour rechercher des problèmes d'accessibilité. Consultez Tests automatisés sur les plateformes cloud avec Appium.
