Escaneo Automático con el Controlador XCUITest

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

Resumen

Escaneo Automático captura automáticamente instantáneas de accesibilidad mientras navegas por tu aplicación iOS. En lugar de activar manualmente escaneos en cada pantalla, comienzas una sesión de escaneo automático, interactúas con la aplicación y finalizas la sesión para generar un informe.

tip

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

Cómo funciona

  1. Inicia una sesión de escaneo automático (con tus credenciales)
  2. Navega a través de tu aplicación — las pantallas se escanean automáticamente
  3. Detén la sesión — se genera un informe HTML en ~/AxeDevToolsMobileResults/

Primeros pasos

Inicia el servidor de Appium como de costumbre:

appium

Configura tus Pruebas

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

Nombre Tipo Descripción
automationName String Configura en 'AxeXCUITest' para utilizar el controlador con Axe DevTools Mobile integrado para ejecutar escaneos de accesibilidad.
bundleId String El identificador del paquete de la aplicación en prueba. Ten en cuenta que bundleId es parte del controlador XCUITest; es posible que ya lo tengas configurado.

Iniciar Escaneo Automático

Antes de iniciar tu suite de pruebas, inicia el Auto Scan 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 Escaneo Automático

Justo antes de que la suite de pruebas termine, llama a la API axeStopAutoScanSession para detener el Auto Scan y agregar y cargar 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 utilizan JavaScript. Consulta Ejemplos de Código de Escaneo Automático con XCUITest para ejemplos más completos en varios lenguajes de programación.

Interpretación de Resultados

Resumen de consola

Un resumen de consola similar al siguiente se imprime cuando la suite de pruebas finaliza:

----  Axe DevTools Mobile Accessibility Summary ----
Scan 1:
  Screen: HomeScreen
  Issues: 3
  Issues by rule:
    - ColorContrast: 2
    - TouchTargetSize: 1

Scan 2:
  Screen: SettingsScreen
  Issues: 0

Total Scans: 2
❌ Total Issues: 3
----------------------------------------------------

Una ejecución limpia mostrará Axe Clean - 0 Issues Found 🎉 en la consola.

Archivos de salida

Cuando la sesión de Auto Scan se detiene, se genera un informe HTML en ~/AxeDevToolsMobileResults/. El informe contiene violaciones de accesibilidad, aprobaciones y recomendaciones para cada pantalla capturada durante la sesión.

Soporte de Escaneo Automático

Normas

Auto Scan ejecuta el conjunto completo de reglas de Axe con la excepción de ScreenOrientation, SupportsDynamicType, y todas las reglas experimentales. Encuentra información detallada sobre lo que verificamos en el Resumen de Normas para iOS.

Centro de Desarrollo

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

Modo sin conexión

Si no tienes credenciales de la nube, usa una clave de licencia sin conexión en su lugar:

// JavaScript example
await driver.execute('mobile: axeStartAutoScanSession', {
  axeOfflineLicenseKey: 'YOUR_OFFLINE_LICENSE_KEY'
});

// ... navigate through the app ...

await driver.execute('mobile: axeStopAutoScanSession', {});

Referencia de configuración

Propiedades

Parámetro Tipo Requerido Descripción
axeUploadResults Booleano Opcional Cargar resultados al panel de control (predeterminado: true)
axeMobileApiKey Cadena Requerido* Clave API para escaneo basado en la nube
axeProjectId Cadena Opcional ID de proyecto para organizar resultados
axeOfflineLicenseKey Cadena Requerido* Clave de licencia para modo sin conexión (alternativa a las credenciales de la nube)
axeServerUrl (Obsoleto) cadena URL de backend personalizado (por ejemplo, axe.company.com), solo para nube privada/en las instalaciones
axeAccountURL cadena URL de backend personalizado (por ejemplo, axe.company.com), solo para nube privada/en las instalaciones
axeHtmlReportPath cadena No Directorio de salida configurable por el usuario para el informe HTML y el resumen. Predeterminado a ???

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

Mejores prácticas

Desactivar animaciones

Obtén los resultados más precisos y completos de Auto Scan desactivando la animación. Esto garantizará que las pantallas estén completamente renderizadas cuando se capturan. Agrega lo siguiente bajo capabilities:

  capabilities: {
    // ...existing capabilities
    'appium:reduceMotion': true, // enables iOS "Reduce Motion" accessibility setting
  }

Solución de problemas

  • ¿Ves resultados localmente, pero no en Developer Hub? La carga al Developer Hub falla si el tamaño de alguno de los archivos de resultados supera los 20MB, aunque todos los resultados todavía se guardan localmente y se muestran en el informe HTML local.
  • Revise los registros. Busca mensajes de AutoScan en la consola.

¿Qué sigue?

Puedes ver tus resultados en Axe Developer Hub. Aprende cómo integrar Axe DevTools Mobile en tu pipeline de CI/CD. ¿Utilizas una plataforma de pruebas basada en la nube? Aún puedes usar Axe DevTools Mobile para identificar problemas de accesibilidad: Integrarse con plataformas en la nube.