Skip to content
Earlbert Mercado edited this page Jun 10, 2025 · 6 revisions

This project provides an automated test suite for validating the OpenDota website. It uses the Playwright framework to interact with the web pages and compares the data displayed there against the data retrieved directly from the OpenDota API. It follows the Page Object Model design pattern, organizing web interactions by page.

Folder Structure

odotatesting/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── odotatesting/
│   │   │       ├── base/                    // Stores base test and base page
│   │   │       ├── constants/               // Test-specific constants (e.g., API endpoints, element locators, etc.)
│   │   │       ├── factory/		     // Stores Playwright browser, context, and page management
│   │   │       ├── listeners/               // Extent report listener
│   │   │       ├── pages/		     // Page Object Model classes
│   │   │       ├── processors/	             // Handles data extraction and processing from web pages
│   │   │       └── utils/		     // Utility classes (e.g., initialize properties, API calls, and screenshot)
│   │   └── resources/                       // Stores log4j.xml
│   └── test/
│       ├── java/
│       │   └── odotatesting/
│       │       └── tests/                    // Contains all test case classes
│       └── resources/                        // Non-code resources for tests
│           ├── config/                       // Stores Configuration files
│           └── testrunners/                  // Stores all testng xml files
├── logs/				      // Stores runtime logs from test executions
├── reports/				      // Contains generated extent reports
│   └── screenshots/			      // Captured screenshots from test failures
├── readme-screenshots/
├── pom.xml
├── docker-compose.yaml
└── README.md

Test Architecture

flowchart TD
    A0["Base Test Setup
"]
    A1["Page Objects
"]
    A2["Playwright Management
"]
    A3["Data Processors
"]
    A4["Web Element Locators
"]
    A5["API Client
"]
    A6["Test Configuration
"]
    A7["Test Execution Suites
"]
    A0 -- "Uses Factory" --> A2
    A0 -- "Loads Config" --> A6
    A0 -- "Provides Pages" --> A1
    A0 -- "Tests Call API" --> A5
    A1 -- "Uses Processors" --> A3
    A1 -- "Uses Locators" --> A4
    A2 -- "Reads Config" --> A6
    A3 -- "Uses Locators" --> A4
    A3 -- "Calls API" --> A5
    A7 -- "Runs Tests" --> A0
Loading

Chapters (WIP)

  1. Test Execution Suites
  2. Playwright Management
  3. Base Test Setup
  4. Page Objects
  5. Web Element Locators
  6. API Client
  7. Data Processors

Clone this wiki locally