Les tests d'interface

Automatiser un test qui pilote l'interface comme un utilisateur avec Selenium ou Playwright : localiser un élément, agir, attendre, vérifier, structurer avec le patron Page Object et traquer les tests fragiles.

  • 25 cartes
  • 4 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation

Quelques cartes du deck

  • Test d'interface : de quoi s'agit-il ?

    Voir la réponse

    Test automatisé qui pilote un navigateur ou une application comme le ferait un utilisateur : il clique, saisit du texte et lit ce qui s'affiche.

    Il vérifie le parcours réel, interface comprise. En contrepartie, il est lent et sensible à tout changement de l'écran.

  • Que fait la dernière ligne de ce test Playwright ?

    ```javascript
    await page.goto('/connexion');
    await page.getByLabel('E-mail').fill('ada@example.org');
    await page.getByLabel('Mot de passe').fill('secret');
    await page.getByRole('button', { name: 'Connexion' }).click();
    await expect(page.getByRole('heading', { name: 'Tableau de bord' })).toBeVisible();
    `

    • Réessaie jusqu'au délai maximal, jusqu'à ce que le titre soit visible
    • Vérifie une seule fois, aussitôt après le clic, que le titre est déjà affiché
    • Attend toujours 2 secondes fixes, puis vérifie que le titre est affiché
    • Clique sur le titre Tableau de bord pour ouvrir la page correspondante
    Voir la réponse

    Réessaie jusqu'au délai maximal, jusqu'à ce que le titre soit visible

    Les vérifications expect de Playwright réessaient automatiquement jusqu'à un délai maximal : c'est une attente explicite intégrée. Il n'y a ni vérification immédiate ni pause fixe.

  • En Selenium, une attente explicite s'écrit avec la classe … : elle réévalue une condition jusqu'à ce qu'elle soit vraie ou que le délai maximal soit dépassé.

    Voir la réponse

    En Selenium, une attente explicite s'écrit avec la classe WebDriverWait : elle réévalue une condition jusqu'à ce qu'elle soit vraie ou que le délai maximal soit dépassé.

    WebDriverWait(driver, 10).until(...) attend au plus 10 secondes et repart dès que la condition est remplie, alors qu'une pause fixe attend toujours la même durée, que la page soit prête ou non.

  • Localisateur : de quoi s'agit-il ?

    Voir la réponse

    Expression qui désigne un élément de la page à manipuler : identifiant, sélecteur CSS, rôle et nom accessible, texte.

    C'est le point faible de ces tests : un localisateur qui dépend de la mise en page casse au moindre changement de style, alors qu'un rôle et un nom survivent.

  • Un test d'interface passe sur le poste du développeur et échoue une fois sur cinq dans l'intégration continue. Il contient une pause fixe avant la vérification. Quelle est la correction ?

    • Allonger la pause à 10 secondes pour être large dans tous les cas
    • Remplacer la pause par une attente explicite de l'élément attendu
    • Relancer le test automatiquement jusqu'à ce qu'il passe une fois
    • Désactiver le test en intégration continue et ne le jouer qu'en local
    Voir la réponse

    Remplacer la pause par une attente explicite de l'élément attendu

    Le serveur d'intégration continue, partagé et chargé, est souvent plus lent que le poste local : la pause fixe y devient parfois trop courte. Allonger ralentit tout et finit par échouer un jour de charge ; relancer cache le défaut. Attendre l'élément s'adapte à la vitesse réelle.