Bien démarrer avec Maestro
Identifiez rapidement les problèmes d'accessibilité en conjonction avec les flux de tests Maestro.
Axe DevTools Mobile pour Maestro apporte une analyse d'accessibilité intégrée à Maestro, propulsée par les SDKs Axe DevTools pour Mobile. Lorsque vous exécutez vos flux de test UI avec celui-ci, vous pouvez facilement invoquer des vérifications d'accessibilité automatisées directement dans votre YAML avec deux commandes : axeStartScanSession et axeScan.
Exigences
- macOS ou Linux — l'installateur nécessite une console Unix.
- macOS : prend en charge à la fois l'émulateur Android et le simulateur iOS
- Linux : prend en charge uniquement l'émulateur Android (les simulateurs iOS sont disponibles uniquement sur macOS)
- Java 17+ — vérifiez avec
java -versioncurletunzip— préinstallés sur macOS et la plupart des distributions Linux- Émulateur Android ou simulateur iOS avec votre application installée
- Clé API Axe DevTools Mobile
- ID de projet Axe Developer Hub
(Remarque : la prise en charge de Windows arrive bientôt.)
Installation
-
Si vous avez déjà installé la version publique de Maestro via Homebrew, désinstallez-la d'abord pour éviter les conflits de PATH :
brew uninstall maestro -
Vous aurez besoin d'un jeton d'identité de l'Artifactory privé de Deque. Si vous n'en avez pas, suivez les étapes dans Premiers pas avec l'Artifactory privé de Deque.
Assurez-vous que
DQ_AGORA_IDENTITY_TOKENest défini dans votre environnement, puis exécutez la commande suivante sur macOS ou Linux :curl -fsSL -H "Authorization: Bearer $DQ_AGORA_IDENTITY_TOKEN" \ "https://agora.dequecloud.com/artifactory/axe-devtools-mobile-maestro/install.sh" | bashPour installer une version spécifique, incluez ceci dans la commande bash :
curl -fsSL -H "Authorization: Bearer $DQ_AGORA_IDENTITY_TOKEN" \ "https://agora.dequecloud.com/artifactory/axe-devtools-mobile-maestro/install.sh" | MAESTRO_VERSION=1.0.0 bash -
Ouvrez un nouveau terminal et vérifiez que
maestro --versionaffiche la version d'Axe DevTools.maestro --version
Démarrage rapide
-
Créez un fichier de flux.
Créez un fichier nommé
accessibility-check.yamlet ajoutez l'extrait de code ci-dessous :appId: com.example.myapp --- - launchApp - axeStartScanSession: apiKey: "YOUR_API_KEY" projectId: "YOUR_PROJECT_ID" - axeScanRemplacez
com.example.myapppar le nom du package de votre application (Android) ou l'identifiant de bundle (iOS), et renseignez votre clé API Axe DevTools Mobile et l'ID de projet depuis Axe Developer Hub. -
Exécutez le flux.
Pour iOS :
maestro test --device <DEVICE_ID> accessibility-check.yamlPour Android :
maestro test --device <DEVICE_ID> accessibility-check.yamlEn se référant au fichier de flux que vous venez de créer, Maestro lancera votre application, initialisera une session de balayage Axe DevTools et lancera une analyse d'accessibilité sur l'écran actuel. Les résultats sont automatiquement téléchargés vers Axe Developer Hub.
noteLe 'DEVICE_ID' est un identifiant unique que Maestro utilise pour les machines sur lesquelles vous exécutez vos tests. Visitez la documentation de Maestro pour apprendre comment trouver l'ID de l'appareil.
Utiliser les variables d'environnement pour les identifiants
Il n'est pas recommandé de coder en dur des clés API dans les fichiers YAML. Utilisez plutôt l'interpolation de variables de Maestro avec les variables d'environnement.
Remarque : Maestro n'injecte automatiquement que les variables d'environnement shell qui commencent par MAESTRO_. Utilisez le préfixe MAESTRO_ pour toute variable que vous souhaitez rendre disponible dans vos flux YAML.
Ajoutez ce qui suit à votre profil shell (par exemple, ~/.zshrc ou ~/.bashrc) :
export MAESTRO_AXE_API_KEY="YOUR_API_KEY"
export MAESTRO_AXE_PROJECT_ID="YOUR_PROJECT_ID"Puis référez-vous à ces dernières dans votre YAML :
appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
- axeScanSinon, passez ces variables d'environnement en ligne lors de l'exécution :
Pour iOS :
MAESTRO_AXE_API_KEY=your-key MAESTRO_AXE_PROJECT_ID=your-project maestro test --device <DEVICE_ID> accessibility-check.yamlPour Android :
MAESTRO_AXE_API_KEY=your-key MAESTRO_AXE_PROJECT_ID=your-project maestro test --device <DEVICE_ID> accessibility-check.yamlRéférence des commandes
axeStartScanSession
Initialisez une session de balayage Axe DevTools, en fournissant les identifiants nécessaires à axeStartScanSession. Appelez ceci une fois, avant le premier axeScan dans votre flux.
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
axeAccountUrl: "https://..."| Paramètre | Requis | Défaut | Description |
|---|---|---|---|
apiKey |
Oui | — | Votre clé API Axe DevTools. Prend en charge l'interpolation de variable ${} |
projectId |
Oui | — | Votre identifiant de projet Axe DevTools. Prend en charge l'interpolation de variable ${} |
axeAccountUrl |
Non | null |
URL de compte Axe personnalisée pour des déploiements sur site ou dans le cloud privé |
axeScan
Utilisez axeScan pour effectuer une analyse d'accessibilité sur l'écran actuel. Si axeStartScanSession a été appelé précédemment dans le flux, les résultats sont téléchargés sur Axe Developer Hub.
# Simple form (all defaults):
- axeScanExemples
Analyser un seul écran
appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
- axeScanAnalyser plusieurs écrans dans un flux
appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
# Scan the home screen
- axeScan
# Navigate and scan the settings screen
- tapOn: "Settings"
- axeScan
# Navigate and scan the profile screen
- tapOn: "Profile"
- axeScanAnalyse avec une URL de compte Axe personnalisée
Pour les déploiements Axe DevTools sur site ou dans le cloud privé, un axeAccountURL est requis :
appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
axeAccountUrl: "https://axe.YOUR_COMPANY.com"
- axeScanAnalyse d'accessibilité non bloquante
Utilisez optional: true avec axeScan pour exécuter l'analyse sans échec du flux global en cas d'erreur lors de l'analyse :
appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
optional: true
- axeScan:
optional: true
# The flow continues regardless of scan results
- tapOn: "Continue"Combiner les analyses d'accessibilité avec des tests d'interface utilisateur
appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
# Test login flow and scan each screen
- assertVisible: "Welcome"
- axeScan:
label: "Login screen"
- tapOn: "Email"
- inputText: "user@example.com"
- tapOn: "Password"
- inputText: "password123"
- tapOn: "Sign In"
- assertVisible: "Dashboard"
- axeScan:
label: "Dashboard after login"Visualisation des résultats
Après la fin d'une analyse, les résultats sont disponibles dans Axe Developer Hub - un emplacement central où toute votre équipe peut voir et gérer les problèmes d'accessibilité trouvés dans votre application. Les problèmes dans Developer Hub sont classés par gravité et par lignes directrices WCAG, ce qui permet à votre équipe de prioriser les problèmes pour leur remédiation.
Dépannage
Si vous rencontrez des problèmes, essayez ce qui suit.
-
« Commande non trouvée :
maestro»Ouvrez un nouveau terminal après l'installation, ou exécutez :
export PATH="$HOME/.maestro/bin:$PATH" -
Erreurs de version Java
Axe DevTools Mobile Maestro nécessite Java 17 ou supérieur. Vérifiez votre version de Java :
java -versionSi votre version est inférieure à 17, installez un JDK plus récent (par exemple, via Adoptium).
