Analyse automatique avec le pilote XCUITest
Aperçu
L'analyse automatique capture automatiquement des instantanés d'accessibilité à mesure que vous naviguez dans votre application iOS. Au lieu de déclencher manuellement des analyses sur chaque écran, vous démarrez une session d'analyse automatique, interagissez avec l'application, puis arrêtez la session pour générer un rapport.
Si vous avez besoin d'un contrôle plus granulaire dans vos tests, consultez Tests ciblés avec Appium.
Comment ça fonctionne
- Démarrer une session de balayage automatique (avec vos identifiants)
- Naviguer à travers votre application — les écrans sont scannés automatiquement
- Arrêter la session — un rapport HTML est généré à
~/AxeDevToolsMobileResults/
Démarrage
Démarrez le serveur Appium comme d'habitude :
appiumConfigurer vos tests
À partir de vos scripts d'automatisation Appium, ajoutez les capacités requises pour Axe DevTools Mobile.
| Nom | Type | Description |
|---|---|---|
| automationName | String |
Réglez sur 'AxeXCUITest' pour utiliser le pilote avec Axe DevTools Mobile intégré, afin d'exécuter des analyses d'accessibilité. |
| bundleId | String |
L'identifiant de bundle de l'application testée. Notez que bundleId fait partie du pilote XCUITest ; vous l'avez peut-être déjà configuré. |
Démarrer l'analyse automatique
Avant de lancer votre suite de tests, démarrez 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 l'analyse automatique
Juste avant que la suite de tests ne se termine, appelez l'API axeStopAutoScanSession pour arrêter Auto Scan, agrégé 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 d'analyse automatique avec XCUITest pour des exemples plus complets dans plusieurs langages de programmation.
Interprétation des résultats
Résumé de la console
Un résumé de la console similaire à celui-ci est imprimé lorsque la suite de tests se termine :
---- 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 exécution propre affichera Axe Clean - 0 Issues Found 🎉 dans la console.
Fichiers de sortie
Lorsque la session Auto Scan s'arrête, un rapport HTML est généré à ~/AxeDevToolsMobileResults/. Le rapport contient des violations d'accessibilité, des succès et des recommandations pour chaque écran capturé durant la session.
Support de l'analyse automatique
Règles
Auto Scan exécute l'ensemble des règles Axe, à l'exception de ScreenOrientation, SupportsDynamicType, et de toutes les règles expérimentales. Trouvez des informations détaillées sur ce que nous vérifions dans le Aperçu des règles pour iOS.
Hub développeur
Auto Scan télécharge automatiquement vos résultats sur Axe Developer Hub. Si vous souhaitez uniquement enregistrer les résultats localement, réglez axeUploadResults sur false.
Mode hors ligne
Si vous n'avez pas d'identifiants cloud, utilisez à la place une clé de licence hors ligne :
// JavaScript example
await driver.execute('mobile: axeStartAutoScanSession', {
axeOfflineLicenseKey: 'YOUR_OFFLINE_LICENSE_KEY'
});
// ... navigate through the app ...
await driver.execute('mobile: axeStopAutoScanSession', {});Référence de configuration
Propriétés
| Paramètre | Type | Requis | Description |
|---|---|---|---|
axeUploadResults |
Booléen | Optionnel | Télécharger les résultats sur le tableau de bord (par défaut : true) |
axeMobileApiKey |
Chaîne | Requis* | Clé API pour la numérisation basée sur le cloud |
axeProjectId |
Chaîne | Optionnel | ID de projet pour organiser les résultats |
axeOfflineLicenseKey |
Chaîne | Requis* | Clé de licence pour le mode hors ligne (alternative aux identifiants cloud) |
axeServerUrl (Obsolète) |
chaîne | Oui | URL backend personnalisée (par exemple axe.company.com), uniquement pour sur site/cloud privé |
axeAccountURL |
chaîne | Oui | URL backend personnalisée (par exemple axe.company.com), uniquement pour sur site/cloud privé |
axeHtmlReportPath |
chaîne | Non | Répertoire de sortie configurable par l'utilisateur pour le rapport HTML et le résumé. Par défaut : ??? |
Fournir soit des identifiants cloud (axeMobileApiKey + axeProjectId + axeAccountURL) ou un axeOfflineLicenseKey.
Bonnes pratiques
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 lorsqu'ils sont capturés. Ajoutez ce qui suit sous capabilities :
capabilities: {
// ...existing capabilities
'appium:reduceMotion': true, // enables iOS "Reduce Motion" accessibility setting
}Dépannage
- Vous voyez les résultats localement, mais pas dans le Developer Hub ? Le téléchargement vers Developer Hub échoue si la taille d'un fichier de résultat dépasse 20 Mo, bien que tous les résultats soient toujours enregistrés localement et affichés dans le rapport HTML local.
- Vérifiez les journaux. Recherchez des messages
AutoScandans la console.
Et ensuite ?
Vous pouvez consulter vos résultats dans Axe Developer Hub. Apprenez 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é : Intégrer avec les plateformes cloud.
