Analyse automatique avec le pilote XCUITest

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

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.

tip

Si vous avez besoin d'un contrôle plus granulaire dans vos tests, consultez Tests ciblés avec Appium.

Comment ça fonctionne

  1. Démarrer une session de balayage automatique (avec vos identifiants)
  2. Naviguer à travers votre application — les écrans sont scannés automatiquement
  3. Arrêter la session — un rapport HTML est généré à ~/AxeDevToolsMobileResults/

Démarrage

Démarrez le serveur Appium comme d'habitude :

appium

Configurer 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 into
note

Les 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 AutoScan dans 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.