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 granular en tus pruebas, consulta Pruebas dirigidas con Appium.

Cómo funciona

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

Los resultados se guardan en build/AxeDevToolsMobileResults/ en el directorio de tu 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 una parte del controlador UiAutomator2; es posible que ya lo tengas configurado.

Iniciar autoescaneo

Antes de iniciar tu suite de pruebas, inicia el autoescaneo llamando a la axeStartAutoScanSession API:

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 la suite de pruebas termine, llama a la axeStopAutoScanSession API para detener el autoescaneo 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 ver 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 la sesión de autoescaneo se detiene, se genera un reporte HTML en build/AxeDevToolsMobileResults/. El reporte contiene violaciones de accesibilidad, aprobados y recomendaciones para cada pantalla capturada durante la sesión.

Soporte de autoescaneo

Reglas

El autoescaneo ejecuta el conjunto completo de reglas 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 la Descripción General de Reglas para Android.

Centro de Desarrolladores

Auto Scan carga automáticamente tus resultados en Axe Developer Hub. Si solo deseas guardar los resultados localmente, configura axeUploadResults a false.

Modo Sin Conexión

Si no tienes credenciales de la nube, utiliza la variante sin conexión del controlador con una clave de licencia para el modo sin conexión. Instala @axe-devtools/axe-appium3-uiautomator2-driver-offline y pasa en 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 personalizable (por ejemplo, axe.company.com), para nube privada/premisas solamente
axeAccountURL cadena URL de backend personalizable (por ejemplo, axe.company.com), para nube privada/premisas solamente
axeHtmlReportPath cadena No Directorio de salida configurable por el usuario para el informe HTML y el 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

Agregue 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. ¿Estás utilizando una plataforma de pruebas basada en la nube? Aún puedes usar Axe DevTools Mobile para buscar problemas de accesibilidad. Consulta Pruebas automatizadas en plataformas en la nube con Appium.