Primeros pasos con Maestro
Identifique rápidamente problemas de accesibilidad junto con los flujos de prueba de Maestro.
Axe DevTools Mobile para Maestro lleva el escaneo de accesibilidad incorporado a Maestro, impulsado por las SDKs de Axe DevTools para móviles. Cuando ejecuta sus flujos de prueba de IU con él, puede invocar fácilmente verificaciones de accesibilidad automatizadas directamente en su YAML con dos comandos: axeStartScanSession y axeScan.
Requisitos
- macOS o Linux — el instalador requiere un shell de Unix.
- macOS: admite tanto el emulador de Android como el simulador de iOS
- Linux: solo admite el emulador de Android (los simuladores de iOS son exclusivos de macOS)
- Java 17+ — verifique con
java -versioncurlyunzip— preinstalados en macOS y en la mayoría de las distribuciones de Linux- Emulador de Android o simulador de iOS con su aplicación instalada
- Clave de API de Axe DevTools Mobile
- ID de proyecto del Axe Developer Hub
(Nota: El soporte para Windows llegará pronto.)
Instalación
-
Si instaló previamente Maestro público a través de Homebrew, desinstálelo primero para evitar conflictos de PATH:
brew uninstall maestro -
Necesitará un token de identidad del Artifactory privado de Deque. Si no tiene uno, siga los pasos en Primeros pasos con el Artifactory privado de Deque.
Asegúrese de que
DQ_AGORA_IDENTITY_TOKENesté configurado en su entorno, luego ejecute el siguiente comando en macOS o Linux:curl -fsSL -H "Authorization: Bearer $DQ_AGORA_IDENTITY_TOKEN" \ "https://agora.dequecloud.com/artifactory/axe-devtools-mobile-maestro/install.sh" | bashPara instalar una versión específica, incluya esto en el 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 -
Abra una nueva terminal y verifique que
maestro --versionmuestre la versión de Axe DevTools.maestro --version
Inicio rápido
-
Cree un archivo de flujo.
Cree un archivo llamado
accessibility-check.yamly agregue el fragmento de código a continuación:appId: com.example.myapp --- - launchApp - axeStartScanSession: apiKey: "YOUR_API_KEY" projectId: "YOUR_PROJECT_ID" - axeScanReemplace
com.example.myappcon el nombre del paquete de su aplicación (Android) o el ID del paquete (iOS), y complete su clave de API de Axe DevTools Mobile e ID de proyecto del Axe Developer Hub. -
Ejecute el flujo.
Para iOS:
maestro test --device <DEVICE_ID> accessibility-check.yamlPara Android:
maestro test --device <DEVICE_ID> accessibility-check.yamlRefiriéndose al archivo de flujo que acaba de crear, Maestro lanzará su aplicación, iniciará una sesión de escaneo de Axe DevTools y ejecutará un escaneo de accesibilidad en la pantalla actual. Los resultados se cargan automáticamente en el Axe Developer Hub.
noteEl 'DEVICE_ID' es un identificador único que Maestro utiliza para las máquinas en las que ejecuta sus pruebas. Visite la documentación de Maestro para aprender cómo encontrar el ID del dispositivo.
Usar variables de entorno para credenciales
No se recomienda codificar claves de API en archivos YAML. En su lugar, utilice la interpolación de variables de Maestro con variables de entorno.
Nota: Maestro solo inyecta automáticamente variables de entorno de shell que comienzan con MAESTRO_. Use el prefijo MAESTRO_ para cualquier variable que desee disponible en sus flujos YAML.
Agregue lo siguiente a su perfil de shell (por ejemplo, ~/.zshrc o ~/.bashrc):
export MAESTRO_AXE_API_KEY="YOUR_API_KEY"
export MAESTRO_AXE_PROJECT_ID="YOUR_PROJECT_ID"Luego, refiérase a esto en su YAML:
appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
- axeScanAlternativamente, pase estas variables de entorno en línea al ejecutar:
Para iOS:
MAESTRO_AXE_API_KEY=your-key MAESTRO_AXE_PROJECT_ID=your-project maestro test --device <DEVICE_ID> accessibility-check.yamlPara Android:
MAESTRO_AXE_API_KEY=your-key MAESTRO_AXE_PROJECT_ID=your-project maestro test --device <DEVICE_ID> accessibility-check.yamlReferencia de comandos
axeStartScanSession
Inicie una sesión de escaneo de Axe DevTools, proporcionando las credenciales necesarias a axeStartScanSession. Llame a esto una vez, antes del primer axeScan en su flujo.
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
axeAccountUrl: "https://..."| Parámetro | Requerido | Por defecto | Descripción |
|---|---|---|---|
apiKey |
Sí | — | Tu clave de API de Axe DevTools. Soporta ${} interpolación de variables |
projectId |
Sí | — | Tu ID de proyecto de Axe DevTools. Soporta ${} interpolación de variables |
axeAccountUrl |
No | null |
URL personalizada de la cuenta de Axe para implementaciones locales o en nube privada |
axeScan
Use axeScan para ejecutar un escaneo de accesibilidad en la pantalla actual. Si axeStartScanSession fue llamado anteriormente en el flujo, los resultados se cargan en Axe Developer Hub.
# Simple form (all defaults):
- axeScanEjemplos
Escanear una sola pantalla
appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
- axeScanEscanear múltiples pantallas en un solo flujo
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"
- axeScanEscanear con una URL personalizada de la cuenta de Axe
Para implementaciones locales o en nube privada de Axe DevTools, se requiere un axeAccountURL:
appId: com.example.myapp
---
- launchApp
- axeStartScanSession:
apiKey: ${MAESTRO_AXE_API_KEY}
projectId: ${MAESTRO_AXE_PROJECT_ID}
axeAccountUrl: "https://axe.YOUR_COMPANY.com"
- axeScanEscaneo de accesibilidad no bloqueante
Use optional: true con axeScan para ejecutar el escaneo sin que falle el flujo general si el escaneo encuentra un error:
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"Combinar escaneos de accesibilidad con pruebas de 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"Visualización de resultados
Después de completar un escaneo, los resultados están disponibles en Axe Developer Hub, un lugar central donde todo tu equipo puede ver y gestionar los problemas de accesibilidad encontrados en tu aplicación. Los problemas en Developer Hub están categorizados por severidad y por las directrices WCAG, para que tu equipo pueda priorizar la remediación de los problemas.
Solución de problemas
Si encuentras problemas, intenta lo siguiente.
-
“Comando no encontrado:
maestro”Abre un nuevo terminal después de la instalación, o ejecuta:
export PATH="$HOME/.maestro/bin:$PATH" -
Errores de versión de Java
Axe DevTools Mobile Maestro requiere Java 17 o superior. Comprueba tu versión de Java:
java -versionSi tu versión es inferior a 17, instala un JDK más reciente (por ejemplo, vía Adoptium).
