La taverne du testeur

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.

7 réponses

    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

  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.

  2. Bonjour,
    Aujourd’hui il existe aussi un robot de test qui permet de tester les IHM de manière non intrusive, sur la validation fonctionnelle, l’endurance ou la non regression. il permet via le gestionnaire de test d’écrire vos scripts de test dans votre langage naturel.
    Le robot s’appelle eTASQ Motion.
    C’est l’entreprise Ponant Technolgies (en France) qui a conçu et fabrique cette machine.
    Je vous invite à jeter un coup d’oeil sur la site de la solution: https://etasqmotion.com/

    1. Bonjour Adrien,
      merci pour ce retour.
      SI vous le souhaitez, vous pouvez écrire un article « Outil de test » sur cet outil afin qu’il soit publier dans la taverne.
      Bonne journée

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

non-fonctionnel

Défis écologique: la consommation d’énergie!

Dans notre vie de tous les jours, nous entendons de plus en plus parler d’écologie et de consommation d’énergie. Les principaux secteurs « dans le viseur » sont le secteur du transport (particulièrement les avions) et du textile. Néanmoins, beaucoup de personnes ont bien compris qu’influer sur ces éléments étaient très compliqué

Lire la suite »
Avenir

Test et IA: Où allons-nous?

J’ai publié en début d’année dernière un article visant à parler des évolutions proches et défis actuels du test. A l’époque je n’avais pas parlé d’IA (Intelligence Artificielle) car considérait que ce défi arriverait mais pas forcément dans les 2-3 prochaines années. C’est toujours mon sentiment mais ces derniers mois

Lire la suite »