- Project Description
- Project Structure
- State Diagram
- Main Functions
- Technologies and Tools
- Environment Setup
- Running Tests
- Report Structure
- Project Features
This project is a collection of automated tests for the Parabank web application. The tests cover core functionalities such as user registration, authorization, account viewing, transactions, and other actions supported by the website.
parabank/
│
├── .github/ # GitHub Actions configurations
│ ├── workflows/
│ ├── auto_tests.yml
│ ├── ruff_check.yml
├── config/ # Configuration settings
├── data/ # Modules for test data handling
│ ├── __init__.py
│ ├── user_data.py
├── docs/ # Documentation
├── pages/ # Page Object models for Parabank website pages
│ ├── __init__.py
│ ├── base_page.py
│ ├── main_page.py
│ ├── overview_page.py
│ ├── register_page.py
├── tests/ # Test modules
│ ├── base/
│ ├── __init__.py
│ ├── base_test.py
│ ├── ui/
│ ├── __init__.py
│ ├── test_ui_elements.py
│ ├── test_login.py
│ ├── test_main_parabank.py
│ ├── test_register.py
├── .gitignore
├── conftest.py # PyTest configuration
├── pyproject.toml # Ruff configuration
├── pytest.ini # PyTest configuration
├── README.md
├── requirements.txt # Project dependencies
- New user registration with various valid and invalid data
- Registered user authorization
- Viewing account balance, transaction history, and user information
- Verification of UI elements display correctness
- Python
- Pytest
- Allure for reporting
- Playwright for UI interaction
- Page Object Model for test structuring
- GitHub Actions for CI/CD
-
Ensure Python 3.10+ is installed
-
Clone the repository:
git clone https://github.com/ZhikharevAl/ParaBank.git cd ParaBank
-
Create and activate a virtual environment:
uv venv .venv source .venv/bin/activate # For Linux/Mac .venv\Scripts\activate # For Windows
-
Install dependencies:
uv pip install --upgrade -r requirements.txt
To run all tests:
pytest
To run a specific test:
pytest tests/ui/test_ui_elements.py
To generate an Allure report:
pytest --alluredir=./allure-results
allure serve ./allure-results
The project uses Allure for report generation. Each test includes:
- Detailed step description
- Screenshots on failures
- Test priority level
- Use of Page Object Model for code structuring
- Test parameterization for different scenario coverage
- CI/CD support through GitHub Actions for automatic test execution
- Test categorization for better coverage