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 de plus de contrôle granulaire dans vos tests, consultez Tests ciblés avec Appium.
Comment ça fonctionne
- Démarrez le scan automatique au début de votre test
- Interagissez avec votre application — chaque changement d'écran est capturé automatiquement
- Arrêtez le scan automatique — les résultats sont traités et transférés sur votre machine locale
Les résultats sont enregistrés dans build/AxeDevToolsMobileResults/ dans votre répertoire de 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 pourriez déjà l'avoir configuré. |
Démarrer le scan automatique
Avant de commencer votre suite de tests, démarrez le scan automatique 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 le scan automatique et 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 de scan automatique s'arrête, un rapport HTML est généré à build/AxeDevToolsMobileResults/. Le rapport contient des violations d'accessibilité, des réussites et des recommandations pour chaque écran capturé pendant la session.
Support de scan automatique
Règles
Le scan automatique 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 la Vue d'ensemble des règles pour Android.
Centre de Développeurs
Le balayage automatique télécharge automatiquement vos résultats sur Axe Developer Hub. Si vous souhaitez uniquement enregistrer les résultats localement, configurez axeUploadResults sur false.
Mode Hors Ligne
Si vous n'avez pas d'identifiants cloud, utilisez plutôt la variante hors ligne du pilote avec une clé de licence hors ligne. 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ée (par ex. axe.company.com), pour cloud privé/sur site uniquement |
axeAccountURL |
chaîne | Oui | URL de backend personnalisée (par ex. 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 build/AxeDevToolsMobileResults |
*Fournissez soit des identifiants cloud (axeMobileApiKey + axeProjectId + axeAccountURL) ou une 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 consulter vos résultats dans Axe Developer Hub. Apprenez comment intégrer Axe DevTools Mobile dans votre pipeline CI/CD. Vous utilisez une plateforme de test basée sur le cloud ? Vous pouvez toujours utiliser Axe DevTools Mobile pour rechercher des problèmes d'accessibilité. Voir Tests automatisés sur les plateformes cloud avec Appium.
