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.
- Notions
- Questions
- Ranger et relier
- 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
expectde 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.