An open API service indexing awesome lists of open source software.

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

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/