Écrire des tests Cucumber

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

Utilisation de Cucumber avec axe DevTools

Prérequis

Afin d'écrire des tests d'accessibilité et de produire des résultats, vous devez avoir déjà créé un fichier de test avec axe DevTools et votre choix de Selenium WebDriver pré-importé et pré-initialisé. Si vous ne l'avez pas encore fait, lisez ce guide pour savoir comment procéder.

Configuration

Tout d’abord, ajoutez axe DevTools à votre configuration

public class AppConfiguration {

    @Bean
    public static AxeWorld axeWorld() {
        return new AxeWorld();
    }
}

Ajoutez maintenant les étapes requises pour utiliser axe DevTools

public class StepDefinitions {

    private AxeWorld axeWorld;

    public StepDefinitions(AxeWorld axeWorld) {
        this.axeWorld = axeWorld;
    }

    private WebDriver webDriver;

    @Before
    public void setup() throws IOException {
        webDriver = new ChromeDriver();
        axeWorld.setPage(new AxeDriver(webDriver));
    }

    @After
    public void tearDown() throws Exception {
        webDriver.quit();
    }

    @When("^I visit \"([^\"]*)\"$")
    public void iVisit(String url) throws Throwable {
        webDriver.get(url);

    }
}

Rédaction de tests

Avant de pouvoir tester une page, vous devez y accéder. La première étape consiste à instancier Selenium WebDriver et à accéder à une page

WebDriver webDriver = new ChromeDriver();
webDriver.get("'https://broken-workshop.dequelabs.com'");

Ensuite, vous pouvez créer un objet pilote d'analyse axe DevTools et transmettre le WebDriver

AxeDriver axeDriver = new AxeDriver(webDriver);

Enfin, incluez l'axeDriver dans vos définitions d'étapes

// Inject AxeWorld into your step definitions.
public StepDefinitions(AxeWorld axeWorld) {
  this.axeWorld = axeWorld;
}
// Provide the page to the Axe World
axeWorld.setPage(new axeDriver(webDriver));

Vous pouvez ensuite tester l’accessibilité de la page. Actuellement, axe DevTools prend en charge les tests Pico et Spring via Cucumber.

Usage

Étapes d'accessibilité Cucumber

Les exemples de vérifications d'accessibilité ci-dessous utilisent Then the page should be axe clean, mais toutes les vérifications fonctionnent de manière interchangeable avec Then the page should be audited for accessibility. La différence entre ces deux éléments réside dans le fait que les tests échoueront en cas de violation d'accessibilité avec Then the page should be axe clean, contre ne pas échouer avec Then the page should be audited for accessibility.

Pour construire une étape d'accessibilité de type Axe Cucumber, commencez par l'étape de base et ajoutez toutes les clauses nécessaires. Toutes les clauses suivantes peuvent être mélangées et appariées ; cependant, elles doivent apparaître dans l'ordre spécifié :

Then the page should be axe clean [including] [excluding] [according-to] [checking-rules/checking-only-rules] [skipping-rules]

Étape de base

L'étape de base est le composant principal de l'étape Cucumber. Il s’agit d’une étape complète en soi qui vérifie que la page actuellement chargée est accessible. Il effectue un audit sur l'accessibilité de votre page. L'audit enregistre les problèmes d'accessibilité dans target/axe-report/accessibility-check.log et crée une sortie JSON des résultats dans target/axe-report/accessibility-check.json.

Then the page should be axe clean
This step will cause test suite failures if accessibility violations are found
Then the page should be audited for accessibility
This step will require handling of violations outside of test suite failures, as this step does not trigger the suite to fail if violations are found.

Portée

Axe DevTools permet d'effectuer des analyses d'accessibilité de manière inclusive et exclusive. De plus, ces portées peuvent fonctionner les unes avec les autres pour créer des zones d'inclusion et d'exclusion complexes. Ces portées fonctionnent à partir de sélecteurs CSS.

Clause d'inclusion

La clause d'inclusion within "#selector" spécifie les éléments à vérifier sur la page. Seuls les éléments dans la portée sélectionnée seront analysés. La clause d'inclusion doit inclure un sélecteur CSS valide entouré de guillemets doubles. Utilisez des sélecteurs composés pour sélectionner plusieurs éléments. Par exemple within "#header, .footer"

Then the page should be axe clean within "#selector"

Clause d'exclusion

La clause d'exclusion excluding "#selector" spécifie les éléments à ignorer. Aucun élément dans la portée sélectionnée ne sera analysé. La clause d'exclusion doit inclure un sélecteur CSS valide entouré de guillemets doubles. Utilisez des sélecteurs composés pour sélectionner plusieurs éléments. Par exemple excluding "#widget, .ad"

Then the page should be axe clean excluding "#selector"

Enchaîner inclusion et exclusion

Afin d'enchaîner les clauses d'inclusion et d'exclusion, utilisez le point-virgule (;) ou le mot ou pour les séparer.

Then the page should be axe clean within "main"; excluding "aside"
Then the page should be axe clean within "main" but excluding "aside"

Configuration des règles

Il existe plusieurs façons de modifier votre configuration de règle standard à l'aide de l'API Cucumber. Vous pouvez sélectionner des règles par groupe grâce à l'utilisation de balises ou sélectionner des règles individuellement par leur ID de règle.

Clause d'étiquette de règle

La clause d'étiquette spécifie la ou les normes d'accessibilité à utiliser dans la vérification de la page. Spécifiez les normes d'accessibilité par nom (Étiquette). Plusieurs normes peuvent être spécifiées en les séparant par des virgules. Par exemple according to: wcag2a, section508

Tous les noms de balises sont documentés en plus d'une liste complète des descriptions de règles qui correspondent à chaque balise.

Then the page should be axe clean according to: best-practice

Vérification de la clause des règles supplémentaires

Cette clause vous permet d'ajouter des règles supplémentaires à vos règles existantes. Vous pouvez spécifier une règle unique par ID de règle ou une liste de règles séparées par des virgules. Consultez la documentation des règles pour obtenir une liste des règles et de leurs identifiants de règle. Utilisez un point-virgule (;) ou le mot 'à' and pour séparer la clause de vérification des règles de toutes les clauses précédentes.

Then the page should be axe clean checking: color-contrast
Then the page should be axe clean according to: wcag2a; checking: color-contrast
Then the page should be axe clean according to: wcag2a and checking: color-contrast

Vérification uniquement des règles spécifiées

En ajoutant le mot only [missing word]à la clause de vérification des règles, vous pouvez modifier la signification de l'étape. Comme décrit précédemment, la clause de vérification des règles spécifie des règles supplémentaires à exécuter. Seules les règles spécifiées sont vérifiées si le mot only est utilisé. Consultez la documentation des règles pour obtenir une liste des règles et de leurs identifiants de règle. Utilisez un point-virgule (;) ou le mot 'à' and pour séparer la clause de vérification des règles de toutes les clauses précédentes.

Then the page should be axe clean checking only: color-contrast

Clause de saut de règles

L'instruction skipping-rules spécifie les règles à ignorer dans la configuration de règle existante. Les règles à ignorer sont spécifiées par des ID de règle séparés par des virgules. Consultez la documentation des règles pour obtenir une liste des règles et de leurs identifiants de règle. Utilisez un point-virgule (;) ou le mot and à pour séparer la clause de vérification des règles de toutes les clauses précédentes.

Then the page should be axe clean skipping: color-contrast
Then the page should be axe clean according to: wcag2a; skipping: color-contrast
Then the page should be axe clean according to: wcag2a but skipping: color-contrast

Clause de sélection des règles

Accédez aux ensembles de règles balisés dans axeDriver via une clause Cucumber. Cette fonctionnalité vous permet de spécifier un ensemble de règles (par exemple : 508, wcag2, wcag2.1) pour auditer l'accessibilité des pages.

Then the page should be axe clean according to ruleset: wcag2.1

Service d'utilisation

Approfondissez votre compréhension des tendances d'utilisation d'axe DevTools au sein de votre organisation

Par défaut, le service d'utilisation est désactivé et l'URL par défaut est https://usage.deque.com.

Variables d'environnement

Cette méthode permet aux utilisateurs de modifier des valeurs spécifiques du service d'utilisation via des variables d'environnement

Variable d'environnement Type Description
AXE_IS_LOGGED_IN Booléen Si l'utilisateur est connecté à l'application testée
AXE_KEYCLOAK_ID Chaîne L'identifiant keycloak de l'utilisateur connecté
AXE_USER_ID Chaîne Le nom de l'utilisateur qui exécute le test
AXE_SESSION_ID Chaîne Description de la séance de test
AXE_STATUT_UTILISATEUR Chaîne Le statut de l'utilisateur
AXE_RÔLE_TRAVAIL_UTILISATEUR Chaîne Le titre/rôle de la personne effectuant le test
AXE_DISTINCT_ID Chaîne L'identifiant distinct d'un utilisateur individuel
AXE_EST_INSTANCE_DEV Booléen Si l'application testée est dans une instance de développement
AXE_ORGANISATION Chaîne L'organisation de l'utilisateur - organisant des données à l'échelle de l'entreprise
AXE_APPLICATION Chaîne Le nom de l'application testée
AXE_METRICS_URL Chaîne L'URL vers laquelle les données d'utilisation sont envoyées
AXE_TRACK_USAGE Booléen Si les données d'utilisation sont capturées ou non

Prochaines étapes

Pour une utilisation ultérieure des résultats de votre analyse axe DevTools, comme la création de rapports, consultez la documentation du package axe DevTools Java Selenium

Dépannage

Si vous rencontrez des problèmes lors de la configuration de vos tests d'accessibilité, contactez directement votre représentant Deque, contactez-nous via notre service d'assistance ou envoyez-nous un e-mail. Nous sommes heureux de vous aider à démarrer vos efforts de tests d'accessibilité.