|
1 | 1 | # QA_Automation_Framework_Playwright 🚀 |
2 | 2 |
|
3 | | -<p align="center"> |
4 | | - <img src="https://img.shields.io/badge/.NET-8.0-blue?style=for-the-badge"/> |
5 | | - <img src="https://img.shields.io/badge/Playwright-C%23-green?style=for-the-badge"/> |
6 | | - <img src="https://img.shields.io/badge/NUnit-Test_Framework-red?style=for-the-badge"/> |
7 | | - <img src="https://img.shields.io/badge/License-MIT-lightgrey?style=for-the-badge"/> |
8 | | -</p> |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | +[](https://github.com/rustampulatov8/QA_Automation_Framework_Playwright/actions) |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +## 🧭 Overview |
| 15 | +This project is an **end-to-end automation framework** built with **Playwright**, **C#**, and **NUnit**, designed to validate both **UI** and **API** workflows for a sample **e-commerce checkout flow**. |
| 16 | + |
| 17 | +It reflects production-ready automation structure, suitable for enterprise QA environments, and integrates seamlessly into **CI/CD pipelines (GitHub Actions, Azure DevOps, TeamCity)**. |
| 18 | + |
| 19 | +--- |
| 20 | + |
| 21 | +## 🧩 Features & Highlights |
| 22 | + |
| 23 | +✅ **Page Object Model (POM)** – scalable design separating UI logic from test logic |
| 24 | +✅ **Reusable Components** – for browser and session management |
| 25 | +✅ **HTML Reporting** – with ExtentReports integration |
| 26 | +✅ **Automatic Screenshots** – captured on failure |
| 27 | +✅ **CI/CD-Ready** – runs Playwright tests headless in GitHub Actions |
| 28 | +✅ **API Testing** – using Playwright APIRequest and NUnit assertions |
| 29 | +✅ **Cross-Browser Support** – Chrome, Edge, Firefox |
| 30 | +✅ **Data-Driven Testing** – via NUnit TestCaseSource |
| 31 | +✅ **Error Recovery** – retry logic and intelligent wait handling |
| 32 | + |
| 33 | +--- |
| 34 | +## 🧱 Project Structure |
| 35 | +QA_Automation_Framework_Playwright/ |
| 36 | +├── Pages/ # Page Object classes (Home, Cart, Product) |
| 37 | +├── Tests/ # NUnit test suites (Cart, Checkout, API) |
| 38 | +├── Utilities/ # BrowserFactory, TestDataHelper, helpers |
| 39 | +├── .editorconfig # Code style conventions |
| 40 | +├── .gitignore # Ignored build/test artifacts |
| 41 | +├── QA_Automation_Framework_Playwright.csproj |
| 42 | +├── dotnet-playwright.yml # CI/CD workflow for GitHub Actions |
| 43 | +└── README.md |
| 44 | + |
9 | 45 |
|
10 | 46 | --- |
11 | | -[](https://github.com/rustampulatov8/QA_Automation_Framework_Playwright/actions) |
12 | | - |
13 | | - |
14 | | - |
15 | 47 |
|
| 48 | +## ⚙️ How to Run Locally |
16 | 49 |
|
17 | | -## 📖 Overview |
| 50 | +1️⃣ Clone the repo |
| 51 | +2️⃣ Install dependencies |
| 52 | +3️⃣ Install Playwright browsers |
| 53 | +4️⃣ Run tests |
18 | 54 |
|
19 | | -End-to-end automation framework built with **Playwright**, **C#**, and **NUnit** |
20 | | -for validating UI and integration workflows in a sample **e-commerce checkout flow**. |
| 55 | +--- |
| 56 | +🧠 Skills Demonstrated |
| 57 | + |
| 58 | +Automation Framework Design: Page Object Model & reusable architecture |
| 59 | + |
| 60 | +Playwright Automation: Advanced waits, selectors, dialog handling |
| 61 | + |
| 62 | +Continuous Integration: GitHub Actions workflow for .NET & Playwright |
| 63 | + |
| 64 | +API Testing: HTTP request validation using Playwright API Context |
| 65 | + |
| 66 | +Cross-Functional QA: End-to-end testing of web and backend flows |
21 | 67 |
|
22 | | -This framework demonstrates: |
23 | | -- ✅ **Page Object Model** design for scalability |
24 | | -- ✅ **Reusable components** for browser/session management |
25 | | -- ✅ **HTML reports** with ExtentReports |
26 | | -- ✅ **Automatic screenshots** on failure |
27 | | -- ✅ **CI/CD-ready structure** (compatible with Azure DevOps, GitHub Actions, or TeamCity) |
| 68 | +Reporting & Debugging: ExtentReports and screenshots on failures |
28 | 69 |
|
29 | 70 | --- |
| 71 | +📊 CI/CD Integration |
30 | 72 |
|
31 | | -## ⚙️ How to Run |
| 73 | +The .github/workflows/dotnet-playwright.yml pipeline runs automatically on every push or PR to the main branch. |
32 | 74 |
|
33 | | -```bash |
34 | | -dotnet restore |
35 | | -playwright install |
36 | | -dotnet test |
| 75 | +It performs: |
| 76 | + |
| 77 | +✅ Restore & build project |
| 78 | + |
| 79 | +✅ Install Playwright browsers (headless) |
| 80 | + |
| 81 | +✅ Run NUnit Playwright tests |
| 82 | + |
| 83 | +✅ Upload test results (TRX or HTML) as artifacts |
| 84 | + |
| 85 | +--- |
| 86 | +📄 License |
| 87 | +This project is released under the MIT License. |
37 | 88 |
|
| 89 | +👨💻 Author |
| 90 | +Rustam Pulatov |
| 91 | +💼 Senior QA Automation Engineer | C# | Playwright | NUnit | CI/CD | API Testing |
0 commit comments