{"id":22161760,"url":"https://github.com/imranc07/pat_task12","last_synced_at":"2026-01-29T22:01:21.788Z","repository":{"id":263180399,"uuid":"889601972","full_name":"imranc07/PAT_Task12","owner":"imranc07","description":"Data Driven Test Framework (DDF) using Page Object Model (POM)","archived":false,"fork":false,"pushed_at":"2024-11-16T19:14:27.000Z","size":36,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T18:21:03.755Z","etag":null,"topics":["data-driven-test-framework","page-object-model","pytest","pytest-html","python","python-selenium-automation"],"latest_commit_sha":null,"homepage":"https://opensource-demo.orangehrmlive.com/web/index.php/auth/login","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imranc07.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-16T18:37:16.000Z","updated_at":"2025-01-07T13:29:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"917bb32a-99f6-4dbf-af5c-84f766a222ef","html_url":"https://github.com/imranc07/PAT_Task12","commit_stats":null,"previous_names":["imranc07/pat_task12"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/imranc07/PAT_Task12","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imranc07%2FPAT_Task12","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imranc07%2FPAT_Task12/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imranc07%2FPAT_Task12/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imranc07%2FPAT_Task12/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imranc07","download_url":"https://codeload.github.com/imranc07/PAT_Task12/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imranc07%2FPAT_Task12/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28886881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T21:06:44.224Z","status":"ssl_error","status_checked_at":"2026-01-29T21:06:42.160Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-driven-test-framework","page-object-model","pytest","pytest-html","python","python-selenium-automation"],"created_at":"2024-12-02T04:16:44.968Z","updated_at":"2026-01-29T22:01:21.772Z","avatar_url":"https://github.com/imranc07.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data Driven Test Framework (DDF) using Page Object Model (POM)\n\nWebsite Link: https://opensource-demo.orangehrmlive.com/web/index.php/auth/login\n\n## Test Objective\nThe objective is to automate testing of the login functionality for the OrangeHRM demo website by using test data from an Excel file. The test will be executed using the Pytest framework and a Data Driven Test Framework (DDF) with the Page Object Model (POM) design pattern. The process includes adding test data to the Excel file, performing login tests based on that data, and shutting down the browser after the test execution\n\n## Table of Contents\n+ [Features]()\n+ [Tech Stack]()\n+ [Running Tests]()\n+ [Project Structure]()\n\n \n## Features\n+ \u003cins\u003e**Data-Driven Testing Framework (DDF):**\u003c/ins\u003e Test data is fetched from an external Excel file, enabling the execution of tests with multiple data sets without modifying the test scripts.\n+ \u003cins\u003e**Page Object Model (POM):**\u003c/ins\u003e Separation of test logic and UI interactions. Each web page has its own corresponding class that defines methods for interacting with the elements on that page.\n+ \u003cins\u003e**Pytest Framework:**\u003c/ins\u003e Used to manage test cases, execute tests, and generate detailed reports.\n+ \u003cins\u003e**Excel Integration:**\u003c/ins\u003e Test data for login credentials is stored and retrieved from an Excel file, making it easy to add, modify, or scale test data without changing code.\n+ \u003cins\u003e**Reusable Components:**\u003c/ins\u003e Common actions like login, navigating to sections, and performing shutdown operations are encapsulated in reusable methods, improving maintainability.\n+ \u003cins\u003e**Cross-Platform Compatibility:**\u003c/ins\u003e The framework can be run across different environments, supporting different operating systems and web browsers.\n+ \u003cins\u003e**Automation and Reporting:**\u003c/ins\u003e Automation of repetitive tests with detailed reports on test results, making it easier to monitor and debug test executions.\n\n## Tech Stack\n* \u003cins\u003e**Programming Language:**\u003c/ins\u003e Python\n* \u003cins\u003e**Test Framework:**\u003c/ins\u003e pytest and DDF\n* \u003cins\u003e**Automation Tool:**\u003c/ins\u003e Selenium WebDriver\n* \u003cins\u003e**Reporting:**\u003c/ins\u003e pytest-html\n* \u003cins\u003e**Browser Compatibility:**\u003c/ins\u003e Chrome, Firefox, and optionally, Edge\n\n## Running Tests\nTo execute tests, use the following commands:\n\n1. Run All Tests:\n```\npytest\n```\n2. Generate HTML Report:\n```\npytest --html=Reports/test_report.html\n```\n3. Headless Browser Execution:\n```\nYou can set up tests to run in headless mode directly in your test script.\n```\n4. Incognito Mode Execution:\n```\nYou can set up tests to run in Incognito mode directly in your test script.\n```\n\n## Project Structure\n```\nTask_12/\n│\n├── TestScript/\n│   └── test_login.py          # Main test script for data-driven login functionality\n│\n├── TestLocators/\n│   └── locators.py            # Contains locators for various elements on the OrangeHRM page\n│\n├── TestData/\n│   └── data.py                # Contains test data such as URL, Excel file details, and dashboard URL\n│\n├── Utilities/\n│   └── excel_functions.py     # Utility functions to interact with the Excel file (read/write data)\n│\n├── Reports/\n│   └── test_report.html       # HTML test report generated by pytest-html\n│\n└── README.md                  # Project documentation\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimranc07%2Fpat_task12","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimranc07%2Fpat_task12","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimranc07%2Fpat_task12/lists"}