Projet de tests automatisés pour le site SauceDemo utilisant Playwright et JavaScript.
saucedemo-playwright-tests/
├── tests/
│ ├── helpers/
│ │ └── testHelpers.js # Fonctions réutilisables
│ └── e2e-purchase.spec.js # Test end-to-end complet
├── testData.json # Données de test
├── playwright.config.js # Configuration Playwright
├── package.json
└── README.md
- Installer les dépendances :
npm install- Installer les navigateurs Playwright :
npx playwright install- Créer le dossier screenshots (optionnel) :
mkdir screenshotsLe dossier screenshots sera créé automatiquement lors du premier échec de test
Un test complet qui couvre tout le parcours d'achat :
- Connexion avec l'utilisateur standard
- Vérification de tous les produits (nom, prix, image, bouton)
- Ajout d'un produit au panier
- Consultation du panier
- Processus de checkout
- Remplissage du formulaire
- Vérification du récapitulatif (quantité, prix total = prix produit + taxe)
- Finalisation de la commande
- Vérification du message "Thank you for your order!"
- Vérification que le badge du panier a disparu
npm testnpm run test:e2enpm run test:headednpm run test:uiAprès l'exécution des tests, générer et ouvrir le rapport :
npm run report- Générer le rapport Allure :
npm run allure:generate- Ouvrir le rapport Allure :
npm run allure:open- Ou servir directement :
npm run allure:serveLes données sont stockées dans testData.json :
- Utilisateur :
standard_user/secret_sauce - Informations checkout : Test User, 12345
- 6 produits avec leurs détails (nom, prix, image)
✅ Logs détaillés : Logs de succès (✅) et d'échec (❌) pour chaque étape ✅ Screenshots automatiques : Capture d'écran complète en cas d'échec avec timestamp ✅ Commentaires complets : Toutes les fonctions sont documentées avec JSDoc ✅ Utilisation de data-test : Sélecteurs fiables via data-test (configuration dans playwright.config.js) ✅ Assertions complètes : Vérifications à chaque étape avec gestion d'erreurs ✅ Code modulaire : Fonctions réutilisables dans différents scénarios ✅ Try-catch partout : Gestion d'erreurs robuste avec logs et screenshots ✅ Traces en cas d'échec : Conservation des traces pour débogage ✅ Rapports multiples : HTML et Allure pour différents besoins ✅ Hook beforeAll : Connexion optimisée dans le contexte E2E
const { test } = require('@playwright/test');
const testData = require('../testData.json');
const { login, addProductToCart, goToCart } = require('./helpers/testHelpers');
test('Mon nouveau test', async ({ page }) => {
await login(page, testData.user.username, testData.user.password);
await addProductToCart(page, testData.products[1].name);
await goToCart(page);
// ... suite du test
});Le fichier playwright.config.js est configuré avec :
- baseURL : https://www.saucedemo.com
- headless : true (mode sans interface par défaut)
- testIdAttribute : 'data-test'
- Screenshots : uniquement en cas d'échec
- Traces : conservées en cas d'échec
- Rapports : HTML + Allure
- Nom du produit
- Prix du produit
- Image du produit (src contient le chemin)
- Bouton "Add to cart" visible
- Nom du produit
- Prix du produit
- Quantité du produit
- Quantité correcte
- Calcul du total : Prix produit + Taxe = Total
- Message de confirmation
- Disparition du badge du panier
Les tests affichent des logs détaillés avec des emojis pour faciliter le suivi :
- 🔐 Connexion
- 🔍 Vérification
- ✅ Succès
- 🛒 Panier
- 💰 Prix/Montants
- 📝 Formulaire
- ➡️ Navigation
@playwright/test: Framework de testallure-playwright: Reporter Allureallure-commandline: CLI Allure pour générer les rapports
Développé avec ❤️ pour l'automatisation de tests