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 Responses
Le support de Firefox devrait bientôt arriver: voir l’avancement de https://github.com/cypress-io/cypress/issues/1096#issuecomment-559462144
De plus on peut l’utiliser avec Applitools/Eyes et faire des vérifications visuelles sur tous les navigateurs. Bien sûr les actions ne se feront qu’avec Chrome (pour le moment), mais la vérification visuelle est un excellent complément!
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
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.
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/
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
Bonjour, s’il vous plaît la différence entre un cas de test et un scénario ?
D’après l’ISTQB: un cas de test est une suite d’étape pour vérifier un élément particulier (condition de test): https://glossary.istqb.org/fr_FR/term/cas-de-test
Un scénario de test (ou procédure de test) est une suite de cas de test (dans une grande majorité des cas le scénario est composé d’un « unique « cas de test).