Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

Introduction à Cypress

Les avantages de Cypress

images/02RI01.png

Cypress est un outil open source destiné aux tests d’applications web. Il met à disposition une suite de tests intégrée, un environnement de développement intuitif, ainsi qu’une interface en ligne de commande facilitant l’automatisation des tests. Ce chapitre introduit Cypress et explique son utilisation pour les tests de la sécurité des applications web.

Les principales caractéristiques de Cypress sont présentées en premier lieu, notamment la capacité à visualiser les tests en temps réel, la simplicité d’utilisation pour les développeurs, et l’intégration avec les outils de développement couramment employés.

Ce chapitre sert de base pour les chapitres suivants, qui se pencheront sur des techniques spécifiques pour les tests de sécurité des applications web avec Cypress. 

1. Définition d’un test flaky (instable)

Tout d’abord, il est important de nous arrêter sur le terme de test flaky, car c’est une notion de comparaison entre les frameworks de tests. Et ce critère peut vous aider à choisir car vous allez sûrement y être confronté.

Un test flaky (ou instable) désigne un test automatisé qui peut occasionnellement échouer sans qu’aucune modification n’ait été apportée au code ou à l’environnement de test. Ces échecs ne sont pas constants : un test flaky peut réussir ou échouer lors de différentes exécutions, même si rien n’a changé dans le code de l’application ou dans les tests eux-mêmes.

Avec l’instabilité des tests flaky, il est compliqué de savoir si un échec du test révèle réellement un défaut dans le code de l’application, ou si cet échec est simplement dû à l’inconsistance du test lui-même.

Les causes des tests flaky peuvent inclure les points suivants sans y être limités :

  • Dépendances sur des éléments externes : les tests qui dépendent de services externes, de bases de données, ou du réseau peuvent échouer aléatoirement si ces éléments ne sont pas stables.

  • Conditions de concurrence...

Mettez en place votre environnement Cypress

1. Configuration requise

Pour installer Cypress, vous devez avoir une configuration minimale. Cypress prend en charge ces systèmes d’exploitation :

  • macOS 10.9 et supérieur (Intel ou Apple Silicon 64 bits)

  • Linux

  • Ubuntu 12.04 et supérieur

  • Fedora 21

  • Debian 8 (x84_64 ou arm 64 bits)

  • Windows 7 et supérieur (64 bits uniquement)

a. Node.js

Vous devez avoir Node.js installé pour pouvoir exécuter l’installation de Cypress. Cypress supporte Node.js 18.x, 20.x et supérieur. Cypress s’aligne avec les releases de node.js.

Pour installer Node.js, rendez-vous sur le site d’installation https://nodejs.org/fr/download et choisissez la version LTS (Long-Term Support pour versions maintenues à long terme), et téléchargez ensuite la version correspondant à votre système.

b. Matériel requis

Pour des exécutions en local, votre machine devrait suffire, mais pour des exécutions en intégration continue, Cypress préconise cette configuration minimale afin d’exécuter Cypress de manière fiable :

  • 2 processeurs minimum pour exécuter Cypress ;

  • 1 CPU supplémentaire si l’enregistrement vidéo est activé ;

  • 1 CPU supplémentaire par processus que vous exécutez en dehors de Cypress, tel que :

  • serveur d’applications (frontend) ;

  • serveur d’applications (backend) ;

  • base de données d’applications ;

  • toute infrastructure supplémentaire (Redis, Kafka, etc.).

  • 4 Go de mémoire minimum, 8 Go ou plus pour des tests plus longs.

    Sinon, vous pouvez rencontrer des problèmes tels que :

  • sortie anticipée ou fermeture brusque (« crash ») ;

  • images gelées ou manquantes dans la vidéo capturée ;

  • durée d’exécution accrue.

c. Prérequis Linux

Si vous utilisez Linux, vous devez installer ces dépendances.

Pour Ubuntu/Debian :

apt-get install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev 
libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb 

Pour CentOS :

yum install -y xorg-x11-server-Xvfb gtk2-devel...