Parcours de bout en bout de la visite au paiement, écrit en Gherkin/Cucumber et automatisé avec Cypress + TypeScript, selon une architecture Page Object Model (POM).
Cible de test : automationexercise.com — site e-commerce de démonstration public, conçu spécifiquement pour la pratique de l'automatisation (catalogue produits, panier, tunnel de commande, paiement fictif).
Ce projet reflète une approche déjà utilisée en environnement professionnel : rédaction de scénarios de test en langage métier (Gherkin), lisible par des interlocuteurs non-techniques, avec une implémentation technique découplée via des Page Objects.
Couvrir le tunnel d'achat complet, du point de vue du parcours client :
- Navigation dans le catalogue et ajout d'un produit au panier
- Vérification du contenu du panier
- Création de compte lors du passage en caisse (si nécessaire)
- Saisie des coordonnées de paiement
- Confirmation de la commande
- Cas d'erreur : panier vide, paiement avec coordonnées bancaires incomplètes
| Domaine | Technologie |
|---|---|
| Scénarios de test | Gherkin (Cucumber) |
| Exécution | Cypress |
| Langage | TypeScript |
| Architecture | Page Object Model (POM) |
| CI/CD | GitHub Actions |
qa-cucumber-ecommerce-e2e/
├── cypress/
│ ├── e2e/features/
│ │ ├── checkout.feature # Scénarios Gherkin (langage métier)
│ │ └── step_definitions/
│ │ └── checkout.steps.ts # Implémentation technique des steps
│ └── support/
│ └── pages/ # Page Object Model
│ ├── home.page.ts
│ ├── products.page.ts
│ ├── cart.page.ts
│ ├── signup.page.ts
│ ├── checkout.page.ts
│ └── payment.page.ts
├── .github/workflows/
│ └── e2e-cucumber.yml
├── cypress.config.ts
└── package.json
Fonctionnalité: Parcours d'achat de bout en bout
Scénario: Achat réussi d'un produit jusqu'à la confirmation de paiement
Étant donné que je visite la page d'accueil du site
Lorsque j'ajoute le premier produit du catalogue à mon panier
Et que je consulte le contenu de mon panier
Alors le produit ajouté est bien présent dans le panier
Lorsque je procède au paiement de ma commande
Et que je renseigne mes coordonnées de paiement
Et que je confirme le paiement
Alors ma commande est confirmée avec succèsCe niveau de lisibilité permet à un Product Owner ou un métier de relire et valider la couverture fonctionnelle sans avoir à lire le code d'implémentation.
Le site cible étant public et persistant, chaque exécution du scénario nominal crée un compte avec un identifiant unique (horodatage), puis le supprime en fin de scénario (deleteAccount()), afin de ne pas accumuler de comptes de test sur la plateforme.
npm install
npm run test
Mohamed Touaoua — QA Automaticien Ce projet fait partie de mon portfolio d'automatisation QA.