techn

logies

techn

logies

techn

logies

5 janv. 2024

TESTS AUTOMATISÉSL'utilisation de Cypress pour les tests E2E, “Test your code, not your patience”

TESTS AUTOMATISÉSL'utilisation de Cypress pour les tests E2E, “Test your code, not your patience”

L'utilisation de Cypress pour réaliser des tests end to end.

Une brève présentation de Cypress

Cypress, l’une des dernières plateformes permettant de réaliser des tests E2E (1ère release en 2017, voir notre précédent article qui rappelle les différents niveaux de tests), propose une approche différente de Selenium. Développé en Javascript et basé sur Node.js il cible l’univers du web uniquement.

Cypress fonctionne en “standalone” et n’a pas besoin d’être couplé à une solution ni à un driver pour sa mise en place, il tourne directement dans le navigateur.

Il a été conçu avec le souci du développeur qui souhaite valider son test au fur à mesure de son implémentation.

Open source, pouvant s'exécuter en local ou sur un serveur distant, il est particulièrement adapté pour le Behaviour Driven Development.

Quels sont les avantages de Cypress ?

  • Cypress a un accès direct aux éléments réseaux du navigateur, la console, aux évènements AJAX, à l’API du DOM, idéal pour débugger.

  • Il est possible d’arrêter et de visualiser les étapes intermédiaires d’un test : Plutôt que d’analyser des screenshots d’erreur une fois le test terminé

  • Il existe des plugins simples à configurer pour écrire ses tests en Gherkins.

  • Fonctionne aussi en headless, idéal pour l’intégration dans une CI

  • Rapide à installer et à configurer (librairies tierces sont déjà intégrées Mocha, Chai et Sinon)

  • Lors de l’exécution du scénario, Cypress attend automatiquement que l’élément du DOM soit visible (grâce aux assertions) avant de passer à la suite : plus de pause entre chaque ligne de test

  • Débugage facile : L'interface montre visuellement étape par étape l'exécution des commandes, assertions, requêtes réseaux et les temps de chargements et d'exécutions au sein de votre page. Il existe de nombreux messages d'erreurs décrivant la raison exacte pour laquelle Cypress a échoué sur le test du scénario. De plus, Cypress prend des snapshots de l'application et permet donc de revenir dans le temps à l'état dans lequel elle se trouvait lorsque les commandes ont été exécutées, mais aussi d'utiliser l'outil du développement du navigateur, par exemple pour voir les messages dans la console ou voir les requêtes réseaux.

  • De nombreux plugins sont disponibles et proposés par la communauté : cucumber, docker, régression graphique, etc.

Quels sont les inconvénients de Cypress ?

  • Cypress permet uniquement de jouer les tests sur navigateur, il ne couvre pas l’univers mobile ni les applications

  • Le support de Safari (basé sur WebKit) est encore en phase expérimental

En conclusion

Cypress permet de rendre l’écriture des tests plus rapide, plus facile, et fiable.

S'il présente des avantages clairs en comparaison de Selenium, son utilisation reste cantonnée à des cas d'usage simples ne nécessitant pas, par exemple, de vérifier la compatibilité sur un large panel de navigateur.

Envie d'en savoir plus ?

Un avis à partager, un projet, une question...