Primi passi con 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

Identifica rapidamente i problemi di accessibilità insieme ai flussi di test Maestro.

Not for use with personal data

Axe DevTools Mobile per Maestro offre una scansione di accessibilità incorporata a Maestro, alimentata dagli SDK di Axe DevTools per Mobile. Quando esegui i tuoi flussi di test UI con esso, puoi facilmente invocare controlli di accessibilità automatizzati direttamente nel tuo YAML con due comandi: axeStartScanSession e axeScan.

Requisiti

  • macOS o Linux — l'installer richiede una shell Unix.
    • macOS: supporta sia l'emulatore Android che il simulatore iOS
    • Linux: supporta solo l'emulatore Android (i simulatori iOS sono disponibili solo su macOS)
  • Java 17+ — verifica con java -version
  • curl e unzip — preinstallati su macOS e sulla maggior parte delle distribuzioni Linux
  • Emulatore Android o simulatore iOS con la tua app installata
  • Chiave API di Axe DevTools Mobile
  • ID Progetto dell'Hub di Sviluppo Axe

(Nota: il supporto per Windows arriverà presto.)

Installazione

  1. Se hai precedentemente installato Maestro pubblico tramite Homebrew, disinstallalo prima per evitare conflitti di PATH:

    brew uninstall maestro
  2. Avrai bisogno di un token di identità dal Private Artifactory di Deque. Se non ne hai uno, segui i passaggi in Primi passi con il Private Artifactory di Deque.

    Assicurati che DQ_AGORA_IDENTITY_TOKEN sia impostato nel tuo ambiente, quindi esegui il comando seguente su macOS o Linux:

    curl -fsSL -H "Authorization: Bearer $DQ_AGORA_IDENTITY_TOKEN" \
    "https://agora.dequecloud.com/artifactory/axe-devtools-mobile-maestro/install.sh" | bash

    Per installare una versione specifica, includi questo nel comando 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. Apri un nuovo terminale e verifica che maestro --version mostri la versione di Axe DevTools.

    maestro --version

Avvio rapido

  1. Crea un file di flusso.

    Crea un file chiamato accessibility-check.yaml e aggiungi il frammento di codice qui sotto:

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

    Sostituisci com.example.myapp con il nome del pacchetto della tua app (Android) o l'ID del bundle (iOS), e inserisci la tua chiave API di Axe DevTools Mobile e l'ID Progetto dall'Hub di Sviluppo Axe.

  2. Esegui il flusso.

    Per iOS:

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

    Per Android:

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

    Facendo riferimento al file di flusso appena creato, Maestro lancerà la tua app, avvierà una sessione di scansione Axe DevTools e eseguirà una scansione di accessibilità sulla schermata corrente. I risultati vengono caricati automaticamente sull'Hub di Sviluppo Axe.

    note

    Il 'DEVICE_ID' è un identificativo unico che Maestro utilizza per le macchine su cui esegui i tuoi test. Visita la documentazione di Maestro per scoprire come trovare l'ID dispositivo.

Usare Variabili d'Ambiente per le Credenziali

Non è consigliato codificare le chiavi API nei file YAML. Usa invece l'Interpolazione di variabili di Maestro con variabili d'ambiente.

Nota: Maestro inietta automaticamente solo variabili d'ambiente shell che iniziano con MAESTRO_. Usa il prefisso MAESTRO_ per tutte le variabili che vuoi siano disponibili nei tuoi flussi YAML.

Aggiungi quanto segue al tuo profilo shell (ad es., ~/.zshrc o ~/.bashrc):

export MAESTRO_AXE_API_KEY="YOUR_API_KEY"
export MAESTRO_AXE_PROJECT_ID="YOUR_PROJECT_ID"

Poi fai riferimento a queste nel tuo YAML:

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

In alternativa, passa queste variabili d'ambiente inline durante l'esecuzione:

Per iOS:

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

Per Android:

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

Riferimento Comandi

axeStartScanSession

Inizializza una sessione di scansione Axe DevTools, fornendo le credenziali necessarie a axeStartScanSession. Chiamalo una volta, prima del primo axeScan nel tuo flusso.

- axeStartScanSession:
    apiKey: ${MAESTRO_AXE_API_KEY}
    projectId: ${MAESTRO_AXE_PROJECT_ID}
    axeAccountUrl: "https://..."
Parametro Richiesto Predefinito Descrizione
apiKey La tua chiave API di Axe DevTools. Supporta l'interpolazione della variabile ${}
projectId Il tuo ID progetto di Axe DevTools. Supporta l'interpolazione della variabile ${}
axeAccountUrl No null URL dell'account Axe personalizzato per implementazioni on-premises o su cloud privato

axeScan

Usa axeScan per eseguire una scansione di accessibilità sullo schermo corrente. Se axeStartScanSession è stato chiamato in precedenza nel flusso, i risultati vengono caricati su Axe Developer Hub.

# Simple form (all defaults):
- axeScan

Esempi

Scansione di un singolo schermo

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

Scansione di più schermi in un unico flusso

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

Scansione con un URL dell'account Axe personalizzato

Per implementazioni on-premises o su cloud privato di Axe DevTools, è richiesto un axeAccountURL:

appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
    apiKey: ${MAESTRO_AXE_API_KEY}
    projectId: ${MAESTRO_AXE_PROJECT_ID}
    axeAccountUrl: "https://axe.YOUR_COMPANY.com"
- axeScan

Scansione di accessibilità non bloccante

Usa optional: true con axeScan per eseguire la scansione senza bloccare il flusso complessivo se la scansione incontra un errore:

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"

Combinare le scansioni di accessibilità con i test UI

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"

Visualizzazione dei risultati

Dopo il completamento di una scansione, i risultati sono disponibili in Axe Developer Hub - un luogo centrale dove tutto il tuo team può visualizzare e gestire i problemi di accessibilità trovati nella tua app. I problemi nel Developer Hub sono classificati per gravità e linee guida WCAG, in modo che il tuo team possa dare priorità ai problemi per la risoluzione.

Risoluzione dei problemi

Se incontri problemi, prova quanto segue.

  • “Comando non trovato: maestro

    Apri un nuovo terminale dopo l'installazione oppure esegui:

    export PATH="$HOME/.maestro/bin:$PATH"
  • Errori di versione di Java

    Axe DevTools Mobile Maestro richiede Java 17 o superiore. Controlla la tua versione di Java:

    java -version

    Se la tua versione è inferiore a 17, installa un nuovo JDK (ad esempio, tramite Adoptium).