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 por 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 Establécelo en 'AxeXCUITest' para utilizar el controlador con axe DevTools Mobile integrado para ejecutar escaneos de accesibilidad.
bundleId String El identificador de paquete de la aplicación bajo prueba. Ten en cuenta que bundleId es parte del controlador XCUITest; puede que ya lo tengas configurado.

Iniciar Escaneo Automático

Antes de comenzar tu suite de pruebas, inicia Escaneo Automático llamando al 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 Escaneo Automático

Justo antes de que la suite de pruebas termine, llama al axeStopAutoScanSession API 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 están usando JavaScript. Consulta Ejemplos de Código de Escaneo Automático con XCUITest para ejemplos más completos en múltiples 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 Escaneo Automático 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

Escaneo Automático ejecuta el conjunto completo de normas de Axe con la excepción de ScreenOrientation, SupportsDynamicType, y todas las normas 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 al Axe Developer Hub. Si solo deseas guardar los resultados localmente, ajusta axeUploadResults a 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 Subir resultados al panel (por defecto: 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 personalizada (p. ej. axe.company.com), para nube privada/en las instalaciones solamente
axeAccountURL cadena URL de backend personalizada (p. ej. axe.company.com), para nube privada/en las instalaciones solamente
axeHtmlReportPath cadena No Directorio de salida configurable por el usuario para el informe HTML y resumen. Por defecto: ???

Proporcionar ya sea credenciales de la nube (axeMobileApiKey + axeProjectId+ axeAccountURL) o una axeOfflineLicenseKey.

Mejores prácticas

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 al ser capturadas. Agregue 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 en Developer Hub falla si el tamaño de cualquier archivo de resultados es mayor de 20MB, aunque todos los resultados se guardan localmente y se muestran en el informe HTML local.
  • Revise los registros. Busque AutoScan mensajes 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. ¿Usas una plataforma de pruebas en la nube? Aún puedes usar Axe DevTools Mobile para buscar problemas de accesibilidad: Integrarse con plataformas en la nube.