Skip to content

SahilSR81/fintech-playwright-framework-main

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

37 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Fintech Playwright Framework

End-to-End QA Automation Framework using Playwright + Pytest

Python Playwright Pytest Allure Fintech Playwright CI


πŸ“Œ Overview

This project is a modern End-to-End QA automation framework built using Playwright, Pytest, and Python for testing fintech-style web applications.

The framework follows the Page Object Model (POM) design pattern and focuses on:

  • Scalable automation architecture
  • Reusable components
  • Maintainable test structure
  • Real-world workflow validation
  • Robust test execution practices

πŸ”— Application Under Test

https://parabank.parasoft.com


πŸ“– Table of Contents


✨ Features

  • βœ… Playwright with Python
  • βœ… Pytest-based execution
  • βœ… Page Object Model (POM)
  • βœ… End-to-End workflow testing
  • βœ… Allure reporting
  • βœ… Cross-browser execution
  • βœ… Reusable utilities & helpers
  • βœ… Logging support
  • βœ… Screenshot capture support
  • βœ… Config-driven execution

πŸ› οΈ Tech Stack

Tool Purpose Version
Python Programming Language 3.10+
Playwright Browser Automation 1.40+
Pytest Test Framework 7.4+
Allure Reporting 2.29+
ConfigParser Configuration Management Built-in

πŸ“ Project Structure

fintech-playwright-framework-main/
β”‚
β”œβ”€β”€ .github/
β”‚   └── workflows/
β”‚       └── e2e-test.yml
β”‚
β”œβ”€β”€ config/
β”‚   └── config.ini
β”‚
β”œβ”€β”€ pages/
β”‚   β”œβ”€β”€ accounts_overview_page.py
β”‚   β”œβ”€β”€ accounts_page.py
β”‚   β”œβ”€β”€ bill_pay_page.py
β”‚   β”œβ”€β”€ find_transactions_page.py
β”‚   β”œβ”€β”€ forgot_login_info_page.py
β”‚   β”œβ”€β”€ home_page.py
β”‚   β”œβ”€β”€ loan_request_page.py
β”‚   β”œβ”€β”€ login_page.py
β”‚   β”œβ”€β”€ open_account_page.py
β”‚   β”œβ”€β”€ register_page.py
β”‚   β”œβ”€β”€ site_navigation_page.py
β”‚   β”œβ”€β”€ transfer_funds_page.py
β”‚   β”œβ”€β”€ update_profile_page.py
β”‚   └── __init__.py
β”‚
β”œβ”€β”€ reports/
β”‚   β”œβ”€β”€ allure-results/
β”‚   β”œβ”€β”€ logs/
β”‚   β”œβ”€β”€ screenshots/
β”‚   └── report.html
β”‚
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ test_accounts_overview_page.py
β”‚   β”œβ”€β”€ test_accounts_page.py
β”‚   β”œβ”€β”€ test_bill_pay_page.py
β”‚   β”œβ”€β”€ test_end2end_happy_path.py
β”‚   β”œβ”€β”€ test_find_transactions_page.py
β”‚   β”œβ”€β”€ test_forgot_login_info_page.py
β”‚   β”œβ”€β”€ test_home_page.py
β”‚   β”œβ”€β”€ test_loan_request_page.py
β”‚   β”œβ”€β”€ test_login_page.py
β”‚   β”œβ”€β”€ test_open_account_page.py
β”‚   β”œβ”€β”€ test_register_page.py
β”‚   β”œβ”€β”€ test_site_navigation_page.py
β”‚   β”œβ”€β”€ test_transfer_page.py
β”‚   β”œβ”€β”€ test_update_profile_page.py
β”‚   └── conftest.py
β”‚
β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ config_reader.py
β”‚   β”œβ”€β”€ logger.py
β”‚   β”œβ”€β”€ screenshot_helper.py
β”‚   β”œβ”€β”€ test_data_generator.py
β”‚   β”œβ”€β”€ waits.py
|   β”œβ”€β”€ session_manager.py
β”‚   └── __init__.py
β”‚
β”œβ”€β”€ conftest.py
β”œβ”€β”€ pytest.ini
β”œβ”€β”€ README.md
└── requirements.txt

⚑ Installation

1️⃣ Clone Repository

git clone https://github.com/SahilSR81/fintech-playwright-framework-main.git
cd fintech-playwright-framework-main

2️⃣ Create Virtual Environment

Windows:

python -m venv venv
venv\Scripts\activate

Linux / macOS:

python3 -m venv venv
source venv/bin/activate

3️⃣ Install Dependencies

pip install -r requirements.txt

4️⃣ Install Playwright Browsers

playwright install

▢️ Running Tests

Run Complete Test Suite

python -m pytest -v

Run Specific Test File

python -m pytest tests/test_login_page.py -v

Run Tests with Browser UI

python -m pytest -v --headed

Run Tests with Allure Reports

python -m pytest -v --alluredir=reports/allure-results

Generate Allure Report

allure serve reports/allure-results

View Allure Report Locally

  1. Run tests and generate Allure results:
python -m pytest -v --alluredir=reports/allure-results
  1. Start the Allure server and open the report in your browser:
allure serve reports/allure-results
  1. For a static report, generate to reports/allure-report:
allure generate reports/allure-results -o reports/allure-report --clean
allure open reports/allure-report

The framework now also writes Allure environment details and report categories automatically, so the generated report includes environment info, grouped failure categories, and attached screenshots for failed tests.


πŸ“Š Allure Reports

The framework supports detailed reporting with:

  • βœ… Execution status
  • βœ… Logs and details
  • βœ… Screenshot capture on failures
  • βœ… Failure tracking
  • βœ… Execution timeline
  • βœ… Test statistics

πŸ“Έ Reporting & Debugging

Current framework utilities include:

  • βœ… Reusable waits and conditions
  • βœ… Screenshot helpers for debugging
  • βœ… Centralized configuration management
  • βœ… Comprehensive logging support
  • βœ… Test data generation utilities
  • βœ… Dynamic test data handling

πŸ“š Learning Resources


🚧 Future Enhancements

  • [βœ…] Better exception handling
  • [βœ…] More robust retry mechanisms
  • [βœ…] Advanced logging improvements
  • [βœ…] Enhanced reporting
  • [βœ…] GitHub Actions CI/CD pipeline optimization
  • Parallel test execution
  • Data-driven testing

🀝 Contributing

Contributions, improvements, criticism and suggestions are welcome.

Fork the repository and create a pull request.


"Make it work. Make it clean. Make it scalable." πŸš€

About

Scalable End-to-End Test Automation Framework built with Playwright, Python and Pytest featuring Page Object Model, Cross-Browser Testing, Allure Reporting and GitHub Actions CI/CD.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages