Autoescaneo con el controlador UIAutomator2

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
Not for use with personal data

Descripción general

El autoescaneo monitorea continuamente tu aplicación Android para detectar problemas de accesibilidad mientras se ejecutan las pruebas. En lugar de escanear una pantalla a la vez, captura instantáneas de accesibilidad en cada cambio de interfaz y las procesa todas al final.

tip

Si necesitas un control más detallado en tus pruebas, consulta Pruebas dirigidas con Appium.

Cómo funciona

  1. Comienza Escaneo Automático al inicio de tu prueba
  2. Interactúa con tu aplicación: cada cambio de pantalla se captura automáticamente
  3. Detén escaneo automático: los resultados se procesan y se descargan a tu máquina local

Los resultados se guardan en build/AxeDevToolsMobileResults/ dentro de tu directorio del proyecto.

Cómo empezar

Inicia el servidor de Appium como de costumbre:

appium

Configura tus pruebas

Desde tus scripts de automatización Appium, añade las capacidades requeridas para Axe DevTools Mobile.

Nombre Tipo Descripción
automationName String Configurar en 'AxeUiAutomator2' para utilizar el controlador con Axe DevTools Mobile integrado para escaneos de accesibilidad.
appPackage String El nombre del paquete de la aplicación en prueba. Ten en cuenta que appPackage es parte del controlador UiAutomator2; es posible que ya lo tengas configurado.

Iniciar autoescaneo

Antes de comenzar tu suite de pruebas, inicia el Escaneo Automático llamando a la API axeStartAutoScanSession:

beforeAll(async () => { // Start auto scan 
await driver.executeScript('mobile: axeStartAutoScanSession', [{ 
  axeMobileApiKey: 'your-api-key',
  axeProjectId: 'your-devhub-project-id',
  axeAccountURL: 'https://axe.deque.com',
  axeHtmlReportPath: './reports/accessibility' // optional (local dir; default 'build/AxeDevToolsMobileResults')
  ... 
  }]); 
})

Detener autoescaneo

Justo antes de que finalice la suite de pruebas, llama a la API axeStopAutoScanSession para detener el Escaneo Automático y agregar y subir los resultados.

// Stop - the report is pulled to axeHtmlReportPath on the local machine
const result = await driver.executeScript('mobile: axeStopAutoScanSession');

// result.localDirectory -> local directory the report was saved into
note

Los fragmentos de código anteriores usan JavaScript. Consulta Ejemplos de código de autoescaneo con UIAutomator2 para ejemplos más completos en múltiples lenguajes de programación.

Interpretando los resultados

Resumen de consola

Una vez que la suite de pruebas termina, puedes encontrar un resumen en la ventana de consola donde se está ejecutando el servidor de Appium.

---- Axe DevTools Mobile Accessibility Summary ----
Scan 1:
  Screen: Home Page
  Issues: 6
  Issues by rule:
    - TouchSizeWcag: 3
    - LabelAtFront: 1
    - LabelInName: 1
    - FocusableText: 1
    
Scan 35:
  Screen: Wikipedia Alpha
  Issues: 5
  Issues by rule:
    - LabelAtFront: 1
    - LabelInName: 1
    - TouchTargetSpacing: 1
    - TouchSizeWcag: 1
    - ColorContrast: 1
    
Total Scans: 35
❌ Total Issues: 123
---------------------------------------------------

Archivos de salida

Cuando finaliza la sesión de Escaneo Automático, se genera un informe HTML en build/AxeDevToolsMobileResults/. El informe contiene violaciones de accesibilidad, aprobaciones y recomendaciones para cada pantalla capturada durante la sesión.

Soporte de autoescaneo

Reglas

Escaneo Automático ejecuta el conjunto completo de reglas de Axe con la excepción de ScreenOrientation y todas las reglas experimentales (por ejemplo, NestedActiveControl, NestedElementName, InaccessibleAction). Encuentra información detallada sobre lo que revisamos en el Descripción General de Reglas para Android.

Centro de Desarrolladores

Escaneo Automático sube automáticamente tus resultados a Axe Developer Hub. Si solo quieres guardar los resultados localmente, configura axeUploadResults a false.

Modo Sin Conexión

Si no tienes credenciales de la nube, usa la variante offline del controlador con una clave de licencia offline en su lugar. Instala @axe-devtools/axe-appium3-uiautomator2-driver-offline y pasa axeOfflineLicenseKey al iniciar la sesión.

Referencia de Configuración

Propiedades

Parámetro Tipo Requerido Descripción
axeUploadResults booleano No Sube los resultados al Centro de Desarrolladores
axeMobileApiKey cadena Sí* Tu clave API de Axe DevTools Mobile
axeProjectId cadena No ID de proyecto para organizar resultados
axeOfflineLicenseKey cadena Sí* Clave de licencia para el modo sin conexión (alternativa a las credenciales de la nube)
axeServerUrl (Obsoleto) cadena URL de backend personalizada (por ejemplo, axe.company.com), solo para nube privada/premisas
axeAccountURL cadena URL de backend personalizada (por ejemplo, axe.company.com), solo para nube privada/premisas
axeHtmlReportPath cadena No Directorio de salida configurable por el usuario para el informe HTML y resumen. Por defecto es build/AxeDevToolsMobileResults

*Proporciona ya sea credenciales de la nube (axeMobileApiKey + axeProjectId + axeAccountURL) o un axeOfflineLicenseKey.

Desactivar animaciones

Obtenga los resultados más precisos y completos del escaneo automático desactivando las animaciones. Esto garantizará que las pantallas estén completamente renderizadas cuando se capturen. Si no se desactivan las animaciones, es posible que notes:

  • Escaneos duplicados que crees que debieron haber sido descartados
  • Escaneos con capturas de pantalla que muestran un estado transitorio
  • Una tasa de captura de pantalla significativamente menor de la que podrías esperar

Añade lo siguiente bajo capabilities:

capabilities: {
    // ...existing capabilities
    'appium:disableWindowAnimation': true, // disables window animations
  }

Solución de problemas

Si no ves que aparezcan escaneos en Developer Hub, deberías revisar tus registros para obtener pistas sobre lo que podría estar mal o seguir esta lista de verificación.

  • Asegúrate de estar usando la variable correcta para tu clave API/Licencia y el ID de proyecto
  • Revisa el tamaño de tus archivos de salida. La carga en el Developer Hub falla si el tamaño de cualquier archivo de resultados es mayor a 20 MB, aunque todos los resultados aún se guardan localmente y se muestran en el informe HTML local.

¿Qué sigue?

Puedes ver tus resultados en Axe Developer Hub. Aprende cómo integrar Axe DevTools Mobile en tu pipeline CI/CD. ¿Utilizas una plataforma de pruebas en la nube? Aun así, puedes usar Axe DevTools Mobile para buscar problemas de accesibilidad. Consulta Pruebas automatizadas en plataformas en la nube con Appium.