This project provides an end-to-end automation framework for testing the OrangeHRM application (Demo site). It covers UI testing, API testing, and BDD scenarios to validate critical workflows like Employee Management.
- OrangeHRM Demo URL: https://opensource-demo.orangehrmlive.com
- Language: Java 17
- UI Automation: Selenium WebDriver + TestNG
- BDD: Cucumber (Gherkin syntax)
- API Testing: REST Assured
- Reporting: ExtentReports
- Dependency Management & Build: Maven
- Browser Management: WebDriverManager
src/ ├─ main/java/com/phoenix/core → BaseTest, Config, DriverFactory, Waiter, WaitUtils, TestContext ├─ main/java/com/phoenix/pages → LoginPage, DashboardPage ├─ main/java/com/phoenix/pages/pim → AddEmployeePage, EmployeeListPage, EmployeeDetailsPage ├─ main/java/com/phoenix/reporting → ExtentManager, TestListener └─ test/java/com/phoenix/bdd → Cucumber steps & runner └─ test/java/com/phoenix/tests/ui → AdminLoginTest, PIMFlowTest └─ test/java/com/phoenix/tests/api → EmployeeApiTest - Java 17 installed
- Maven installed
- Chrome browser installed
- Internet connection (for WebDriverManager & API tests)
All configurable values are present in: src/test/resources/config.properties
base.url=https://opensource-demo.orangehrmlive.com/web/index.php/auth/login admin.username=Admin admin.password=admin123 timeout=10 browser=chromemvn clean testmvn test -DsuiteXmlFile=src/test/resources/testng.xmlmvn test -Dtest=CucumberTestRunnermvn test -Dtest=*ApiTestmvn test -Dtest=EmployeeApiTest- ExtentReports (HTML):
target/extent-report.html - Cucumber (Console & Summary): printed in console
Screenshots on test failures are stored in: target/screenshots/<testMethodName>.png
Currently uses Chrome via WebDriverManager. To change browser in future:
- Update
DriverFactory.javato add support for Firefox/Edge. - Update
config.propertiesto select browser dynamically.
- UI Tests: Admin login, PIM Employee CRUD flows
- API Tests: Create, read, delete employee via REST API
- BDD: Gherkin feature for updating employee details
- Reporting: Detailed HTML reports + screenshots on failure
- Thread-safe TestContext: For sharing data across tests
Feature: Edit existing employee personal details Scenario: Update middle name for an employee
Given I am logged in as admin And I am on the PIM Employee List page When I search employee by id "<EMP_ID>" And I open the employee details And I update middle name to "Prakash" Then I should see middle name as "Prakash" - Add support for multiple browsers dynamically
- Add parallel execution in TestNG suite
- Extend API tests for PUT/Update endpoints
- Integrate with CI/CD pipelines for automated execution
-
Siddharam Gurubhetti
-
Email: siddhugurubhetti@gmail.com