Bien démarrer avec Maestro

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

Identifiez rapidement les problèmes d'accessibilité en conjonction avec les flux de tests Maestro.

Not for use with personal data

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 -version
  • curl et unzip — 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

  1. 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
  2. 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_TOKEN est 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" | bash

    Pour 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
  3. Ouvrez un nouveau terminal et vérifiez que maestro --version affiche la version d'Axe DevTools.

    maestro --version

Démarrage rapide

  1. Créez un fichier de flux.

    Créez un fichier nommé accessibility-check.yaml et ajoutez l'extrait de code ci-dessous :

    appId: com.example.myapp
    ---
    - launchApp
    - axeStartScanSession:
        apiKey: "YOUR_API_KEY"
        projectId: "YOUR_PROJECT_ID"
    - axeScan

    Remplacez com.example.myapp par 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.

  2. Exécutez le flux.

    Pour iOS :

    maestro test --device <DEVICE_ID> accessibility-check.yaml

    Pour Android :

    maestro test --device <DEVICE_ID> accessibility-check.yaml

    En 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.

    note

    Le '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}
- axeScan

Sinon, 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.yaml

Pour Android :

MAESTRO_AXE_API_KEY=your-key MAESTRO_AXE_PROJECT_ID=your-project maestro test --device <DEVICE_ID> accessibility-check.yaml

Ré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):
- axeScan

Exemples

Analyser un seul écran

appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
    apiKey: ${MAESTRO_AXE_API_KEY}
    projectId: ${MAESTRO_AXE_PROJECT_ID}
- axeScan

Analyser 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"
- axeScan

Analyse 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"
- axeScan

Analyse 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 -version

    Si votre version est inférieure à 17, installez un JDK plus récent (par exemple, via Adoptium).