Primi passi con Maestro
Identifica rapidamente i problemi di accessibilità insieme ai flussi di test Maestro.
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 -versioncurleunzip— 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
-
Se hai precedentemente installato Maestro pubblico tramite Homebrew, disinstallalo prima per evitare conflitti di PATH:
brew uninstall maestro -
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_TOKENsia 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" | bashPer 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 -
Apri un nuovo terminale e verifica che
maestro --versionmostri la versione di Axe DevTools.maestro --version
Avvio rapido
-
Crea un file di flusso.
Crea un file chiamato
accessibility-check.yamle aggiungi il frammento di codice qui sotto:appId: com.example.myapp --- - launchApp - axeStartScanSession: apiKey: "YOUR_API_KEY" projectId: "YOUR_PROJECT_ID" - axeScanSostituisci
com.example.myappcon 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. -
Esegui il flusso.
Per iOS:
maestro test --device <DEVICE_ID> accessibility-check.yamlPer Android:
maestro test --device <DEVICE_ID> accessibility-check.yamlFacendo 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.
noteIl '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}
- axeScanIn 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.yamlPer Android:
MAESTRO_AXE_API_KEY=your-key MAESTRO_AXE_PROJECT_ID=your-project maestro test --device <DEVICE_ID> accessibility-check.yamlRiferimento 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 |
Sì | — | La tua chiave API di Axe DevTools. Supporta l'interpolazione della variabile ${} |
projectId |
Sì | — | 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):
- axeScanEsempi
Scansione di un singolo schermo
appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
- axeScanScansione 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"
- axeScanScansione 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"
- axeScanScansione 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 -versionSe la tua versione è inferiore a 17, installa un nuovo JDK (ad esempio, tramite Adoptium).
