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