https://github.com/ghaziengineer/sauce_demo_playwright_e2e_ui
https://github.com/ghaziengineer/sauce_demo_playwright_e2e_ui
automation playwright playwright-typescript test
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ghaziengineer/sauce_demo_playwright_e2e_ui
- Owner: ghaziengineer
- Created: 2025-05-23T22:33:11.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-26T21:13:18.000Z (about 1 year ago)
- Last Synced: 2025-06-15T05:03:24.135Z (about 1 year ago)
- Topics: automation, playwright, playwright-typescript, test
- Language: TypeScript
- Homepage: https://www.saucedemo.com/
- Size: 57.6 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# đ§Ș Automatisation des tests Saucedemo avec Playwright & TypeScript
Ce projet met en Ćuvre des tests automatisĂ©s **E2E et sĂ©curitĂ©** pour le site saucedemo.com Ă lâaide de Playwright et TypeScript.
## âïž Installation & Configuration
```bash
# Initialiser un projet Node.js
npm init -y
# Installer Playwright avec support TypeScript
npm install -D @playwright/test
npx playwright install
# Initialiser TypeScript
npm install typescript
npx tsc --init
```
## đïž Structure du projet
```bash
/project-root
âââ tests/
â âââ ui/ # Tests fonctionnels UI end-to-end
â â âââ auth/ # ScĂ©narios liĂ©s Ă lâauthentification utilisateur
â â â âââ login.test.ts # Tests de connexion valides
â â â âââ logout.test.ts # Tests de dĂ©connexion
â â â âââ invalidCredentials.test.ts # Tests pour identifiants invalides
â â â âââ emptyFields.test.ts # Tests pour champs de connexion vides
â â âââ cart/ # ScĂ©narios liĂ©s au panier dâachats
â â â âââ addToCart.test.ts # Ajout dâun seul article au panier
â â â âââ addMultipleItems.test.ts # Ajout de plusieurs articles simultanĂ©ment
â â â âââ removeFromCart.test.ts # Suppression dâarticles du panier
â â â âââ cartCounter.test.ts # VĂ©rification du compteur (badge) du panier
â â â âââ continueShopping.test.ts # Test du bouton « Continue Shopping »
â â â âââ unauthorizedAccess.test.ts # AccĂšs non autorisĂ© au panier sans connexion
â â âââ inventory/ # Tests liĂ©s Ă la gestion et affichage des produits
â â âââ inventoryImagesLoad.test.ts # VĂ©rifie le chargement des images produits
â â âââ inventoryItemDetails.test.ts # VĂ©rifie les dĂ©tails des produits affichĂ©s
â â âââ inventoryPageLoad.test.ts # VĂ©rifie le chargement complet de la page inventaire
â â âââ inventorySort.test.ts # VĂ©rifie le fonctionnement du tri des produits
â â âââ productDetail.test.ts # VĂ©rifie la page de dĂ©tail dâun produit
â â âââ productList.test.ts # VĂ©rifie la liste des produits affichĂ©s
â
âââ tests/security/ # Tests de sĂ©curitĂ© (accĂšs non autorisĂ©, redirections)
â âââ accessWithoutLogin.test.ts # Redirection sans login vers page login
â âââ lockedOutUserAccess.test.ts # Test de restriction d'utlisateur bloquĂ©
â âââ logoutRedirect.test.ts # Test de direction vers login lors du dĂ©connexion
â
âââ helpers/ # Fonctions utilitaires partagĂ©es et helpers
â âââ authHelper.ts # Fonctions rĂ©utilisables liĂ©es Ă lâauthentification
â âââ cartHelper.ts # Fonctions utilitaires pour gĂ©rer le panier
â âââ inventoryHelper.ts # Fonctions spĂ©cifiques aux tests dâinventaire
â
âââ playwright.config.ts # Configuration gĂ©nĂ©rale Playwright (tests UI)
âââ tsconfig.json # Configuration TypeScript
âââ package.json # Gestionnaire de dĂ©pendances et scripts npm
```
## đ ExĂ©cution des tests
### Lancer tous les tests
```bash
npx playwright test
```
### Lancer un dossier spécifique
```bash
npx playwright test tests/ui/auth
npx playwright test tests/performance
```
### Lancer un fichier de test précis
```bash
npx playwright test tests/ui/cart/addToCart.test.ts
```
### đ IntĂ©gration Continue (CI) avec GitHub Actions
Ajoute le fichier suivant :
sauce_demo_playwright/.github/workflows/playwright.yml
Exemple de déclencheurs :
Ă chaque push ou pull request vers main
PossibilitĂ© de lâexĂ©cuter localement via :
```bash
$env:CI="true"; npx playwright test # PowerShell
ou bien execution automatique aprés chaque PR et merge vers main
```
### đ RĂ©fĂ©rences
https://playwright.dev/
https://www.saucedemo.com/