Acelera tus pruebas
Técnicas para reducir el tiempo que Axe Watcher añade a tu conjunto de pruebas de extremo a extremo
Integrar Axe Watcher en tu conjunto de pruebas de extremo a extremo añade tiempo porque Watcher analiza cada página que visitan tus pruebas. Si ese costo adicional se convierte en un problema, las técnicas a continuación te permiten reducirlo sin renunciar a la cobertura que te interesa.
Excluir páginas que no necesitas probar
Si tu conjunto de pruebas visita páginas que no necesitas probar para accesibilidad (páginas de inicio de sesión, páginas de terceros, paneles de administración, flujos de compra propiedad de otro equipo), puedes omitirlas por completo usando excludeUrlPatterns. Omitir páginas enteras es la forma más eficaz de reducir el tiempo de prueba.
JavaScript o TypeScript:
axe: {
excludeUrlPatterns: [ 'https://example.com/login*', 'https://example.com/admin/**' ]
}Java:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setExcludeUrlPatterns(new String[] {
"https://example.com/login*",
"https://example.com/admin/**"
});Consulta Excluir URLs del análisis para conocer la sintaxis de patrones y ejemplos de coincidencias.
Limitar el análisis a secciones específicas de la página
En lugar de analizar la página completa, utiliza runContext para enfocarte en la sección que tu prueba abarca. Por ejemplo, si una prueba solo cubre el formulario de compra, no es necesario analizar la navegación, el pie de página o la barra lateral.
JavaScript o TypeScript:
axe: {
runContext: {
include: '.checkout-form',
exclude: '.site-navigation'
}
}Java:
AxeRunContext context = new AxeRunContext()
.setInclude(Arrays.asList(".checkout-form"))
.setExclude(Arrays.asList(".site-navigation"));
AxeWatcherOptions options = new AxeWatcherOptions();
options.setRunContext(context);Cuando especificas elementos para incluir a través de runContext, Axe Watcher analiza solo los elementos que coinciden. Si un selector no encuentra coincidencias en la página, no se analizará nada y no se capturará el estado de la página. Verifica tus selectores antes de implementar esta configuración.
Consulta (JavaScript/TypeScript) runContext o (Java) AxeRunContext para más información.
Deshabilitar reglas costosas
Algunas reglas de axe-core son computacionalmente costosas. La regla color-contrast , por ejemplo, requiere que el navegador calcule el color renderizado de cada elemento de texto visible en la página, lo que puede añadir un tiempo significativo en páginas con mucho contenido.
Puedes deshabilitar reglas específicas usando runOptions.rules:
JavaScript o TypeScript:
axe: {
runOptions: {
rules: {
'color-contrast': { enabled: false }
}
}
}Java:
Map<String, AxeRuleOptions> rules = new HashMap<>();
rules.put("color-contrast", new AxeRuleOptions().setEnabled(false));
AxeRunOptions runOptions = new AxeRunOptions();
runOptions.setRules(rules);
AxeWatcherOptions options = new AxeWatcherOptions();
options.setRunOptions(runOptions);Deshabilitar una regla significa que los problemas detectados por esa regla no aparecerán en tus resultados. Considera ejecutar las reglas deshabilitadas en un conjunto de pruebas separado y dedicado en lugar de omitirlas permanentemente.
Usar runOptions.rules (o runOnly) genera una advertencia porque esas configuraciones pueden entrar en conflicto con la configuración global de Axe de tu organización. Consulta Usar runOptions con runOnly o Rules.
Consulta (JavaScript/TypeScript) runOptions o (Java) AxeRunOptions para más información.
Usa el modo manual para controlar qué pruebas analizan páginas
Por defecto, Watcher analiza automáticamente cada página que visitan tus pruebas. Si la mayoría de tu conjunto de pruebas visita páginas que no necesitas verificar, puedes desactivar el análisis automático globalmente y activarlo solo en las pruebas que lo necesiten.
JavaScript o TypeScript:
axe: {
autoAnalyze: false
}Java:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setAutoAnalyze(false);Con el análisis automático desactivado, llamas a analyze() explícitamente donde necesites un resultado, y usas start() / stop() para delimitar las secciones de tu conjunto de pruebas donde deseas que el análisis automático se reanude.
Consulta Controla tus escaneos para obtener instrucciones completas y ejemplos.
Ejecutar pruebas en paralelo
Si su infraestructura de pruebas admite la ejecución en paralelo, ejecutar su conjunto de pruebas con múltiples trabajadores reduce el tiempo total de ejecución. Watcher admite ejecutores de pruebas en paralelo; solo necesita asegurarse de que cada trabajador comparta el mismo buildID no nulo para que sus resultados se combinen en lugar de ser sobrescritos.
Consulte Ejecución de pruebas en paralelo para obtener instrucciones de configuración.
Resumen
| Técnica | Ideal para | Compensación |
|---|---|---|
| Excluir páginas | Páginas que su equipo no posee o no necesita probar | Páginas importantes podrían ser omitidas por error |
| Limitar secciones de páginas | Páginas grandes donde solo una parte es relevante para su prueba | No se encuentran problemas fuera de las secciones seleccionadas |
| Desactivar reglas costosas | Los equipos descubren que ciertas reglas costosas no se aplican a su situación | Esas reglas no se ejecutan en este conjunto de pruebas |
| Modo manual | Conjuntos de pruebas que visitan muchas páginas irrelevantes para las pruebas de accesibilidad | Requiere explícita analyze() / start() / stop() llamadas en el código de prueba |
| Pruebas en paralelo | Equipos con infraestructura de CI que soporta trabajadores paralelos | Requiere coordinar buildID entre trabajadores |
