A lightweight Selenium + TestNG UI automation framework built with Java 17 and Maven, following the Page Object Model ( POM) pattern.
- Selenium WebDriver with multi-browser support (Chrome, Edge, Firefox)
- TestNG for test management and parallel execution
- Page Object Model (POM) design
- ExtentReports HTML report with screenshots on failure
- Custom assertion wrapper
- Utility layer for waits, elements, screenshots, JSON, files, and dates
- Data‑driven tests using JSON test data
- Java 17
- Selenium WebDriver 4.x
- TestNG 7.x
- Maven 3.x
- ExtentReports
- WebDriverManager
- Gson, JavaFaker, Commons IO, Lombok
Dependencies are managed in pom.xml.
src/main/javaassertions– custom assertion classesbases–BasePage,BaseTestdrivers– WebDriver and ThreadLocal driver managerlistener– TestNG listener for reporting & screenshotsreports– ExtentReports configuration and logger wrapperutilities– helpers for waits, elements, screenshots, JSON, files, date/time
src/test/javapages– Page Object classestest– Test classes (e.g.LoginPageTest)common,models– shared test data and POJOs
src/test/resourcescommon/Products.json– sample test datasuite/regression-test.xml– TestNG suite
ExtentReport/– generated HTML reports (e.g.report.html)
-
Install JDK 17 and Maven 3+
-
Clone the repository:
git clone <repository-url> cd My_SeleniUM_FrameWork
-
Download dependencies and build:
mvn clean install
WebDriver binaries are managed by WebDriverManager. Optional drivers can be placed under
drivers/.
From the project root:
# Run all tests
mvn test
# Run TestNG suite
mvn test -DsuiteXmlFile=src/test/resources/suite/regression-test.xml
# Run a single test class
mvn test -Dtest=LoginPageTestYou can also run tests directly from your IDE using TestNG.
After a test run, open the Extent report:
# Windows
start ExtentReport/report.htmlThe folder also contains screenshots captured on failures.
- Add or modify Page Objects under
src/test/java/pages - Add new tests under
src/test/java/test - Update test data in
src/test/resources/common/Products.json - Adjust TestNG configuration in
src/test/resources/suite/regression-test.xml
- License: MIT
- Author: Hoang