Outil de test: automatisation IHM avec Cypress

Cet article est le premier d’une nouvelle série dans la taverne qui tend à présenter succinctement différents outils de test.

Cypress en bref

Cypress est un outil d’automatisation de test IHM (Interface graphique) open source concurrent à Selenium qui dispose d’une communauté active et réactive.

Cypress propose d’automatiser ses tests IHM en End2End mais aussi en ne testant que l’IHM sans passer par les serveurs en passant par des « stubs » (bouchons). Cet outil est généralement considéré comme un outil de développeur. En effet, Cypress requiert des connaissances en JavaScript et s’adresse plutôt aux personnes ayant des affinités techniques.

Une autre particularité de Cypress est sa capacité à contrôler le trafic qui passe sur son IHM notamment avec des bouchons. Néanmoins, certaines APIs, comme les API fetch, ne sont pas encore supportées.

Les tests sont assez rapides à écrire (par des développeurs) et propose des simplifications comme une gestion automatique des « Wait until ».

Le lancement des tests peut se faire de 2 manières: soit par ligne de commande ou directement avec l’IHM. Les résultats et logs fournis sont assez complets et aident les développeurs à déboguer rapidement.

Cypress propose une version payante qui contient un dashboard en ligne, tout le reste est gratuit.

Points forts et points faibles de Cypress

Les points forts remontés de Cypress sont les suivants:

  • Un fort gain de productivité (temps d’exécution et d’analyse)
  • La flexibilité des tests (bout en bout avec serveurs, ou bouchonnés en parti ou totalement: attention avec les bouchons, il faut gérer des données supplémentaires)
  • Les tests sont simples à écrire (mais en Javascript) et peuvent donc être écrits par les développeurs front.

Les point faibles de Cypress:

  • Le gros point faible de Cypress est son impossibilité à être multi-navigateur. En effet, Cypress ne supporte que les navigateurs dont la base est Chromium (Chrome, Chromium, Electron, Canary)
  • Cypress est difficilement accessible pour des testeurs
  • Automatisation Web uniquement

Conclusion

Cypress est un outil d’automatisation intéressant car productif et flexible. Il faut néanmoins faire attention car il ne peut pas permettre de faire des tests multi navigateurs et semble viser principalement un public de développeur.

Vous avez utilisé cet outil ? N’hésitez pas à faire part de votre expérience dans les commentaires!

Cours gratuit sur Cypress par l’université du test automatisé.

Merci à Benjamin Butel pour sa relecture.

N’hésitez pas à me suivre et lire mes autres articles si vous voulez en apprendre plus sur le test ou venir partager vos connaissances

Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger sur le test

Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles

N’hésitez pas à faire vos propres retours d’expérience en commentaire.

Publié par

3 réponses sur « Outil de test: automatisation IHM avec Cypress »

    1. Bonjour Stéphane,
      merci pour ce retour.
      Mes dernières informations étaient que l’on ne savait pas quand on pourrait avoir accès à l’outil sur Firefox (avec une fermeture des commentaires sur la branche pour éviter cette question récurrente).
      Il faudra que cet article soit mis à jour quand Firefox sera accessible car le manque d’adaptabilité est LE point faible de l’outil

      J'aime

  1. Bonjour,

    Cela fait 2 ans que je travaille sur Cypress. Je confirme que c’est un super framework de test automatique. Pour les inconvénients et avantages, je trouves que c’est assez relatifs car cela dépends beaucoup des besoins de l’application à testé. Exemple que j’ai en tête: Le fait que Cypress marche sur un nombre limité de navigateur est un avantage car c’est très très bien géré, à l’inverse de Selenium qui certes gère plusieurs navigateurs mais sont très difficiles à maintenir car il faut toujours trouver la bonne combinaison entre les versions de Selenium, du Werdriver et du navigateur. De plus, ces trois composants ne sont pas géré par la même entité et donc les versions navigateurs vont toujours plus vite que Selenium et le Webdriver.

    Enfin, dans mon cas, je l’ai intégré dans un Docker que je lance dans Gitlab-CI; et les tests sont rédigés en version cucumber sur Hiptest.

    Aimé par 1 personne

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s