A portfolio-grade test automation framework built with Java + Selenium + TestNG, testing the ParaBank banking demo application.
Built in public as part of my QA Engineering portfolio. This is the Selenium counterpart to my Cypress automation project on the same application — built to demonstrate cross-framework automation skill, a more advanced SDLC process, and a Data Driven testing architecture.
ParaBank by Parasoft — a full-featured banking simulation covering:
- User registration and authentication
- Account management (checking and savings)
- Fund transfers between accounts
- Bill payments
- Loan applications and approvals
URL: https://parabank.parasoft.com/parabank/index.htm
Parabank-Project-Selenium/
├── src/
│ ├── main/
│ │ ├── java/
│ │ └── resources/
│ └── test/
│ ├── java/
│ │ ├── pageObject/
│ │ │ ├── BasePage.java
│ │ │ ├── HomePage.java
│ │ │ ├── LoginPage.java
│ │ │ └── RegisterPage.java
│ │ ├── testBase/
│ │ ├── testCases/
│ │ └── utilities/
│ └── resources/
│ └── config.properties
├── pom.xml
├── .github/workflows/ci.yml
└── README.md
| Module | Status |
|---|---|
| Authentication | 🔄 In Progress |
| Accounts | 📋 Planned |
| Transfers | 📋 Planned |
| Bill Pay | 📋 Planned |
| Loans | 📋 Planned |
Page objects built so far:
HomePage,LoginPage,RegisterPage,BasePageAll test cases are documented as GitHub Issues with labels, milestones, and priorities.
| Tool | Purpose |
|---|---|
| Java | Programming language |
| Selenium WebDriver | Browser automation |
| TestNG | Test framework, assertions, data providers |
| Apache POI | Reading test data from Excel |
| ExtentReports | Rich HTML test reporting |
| Log4j | Logging |
| Maven | Build and dependency management |
| GitHub Actions | Continuous integration pipeline |
This framework follows the Page Object Model + Data Driven pattern:
- One Page Object per distinct screen — each class represents exactly one page with its own elements and actions, never combining multiple screens into one class
- Data Driven via Excel — test inputs and expected results will be read at
runtime through a custom
ExcelReaderutility using TestNG's@DataProvider - Centralised base class —
BasePagehandles WebDriver setup and PageFactory initialisation, so every page object simply extends it and gets its elements initialised automatically throughinitElements() - testBase holds the TestNG setup and teardown logic shared across all test
classes, including
@BeforeMethodand@AfterMethoddriver handling - testCases holds the actual
@Testclasses, one per module
This project follows a feature-branch SDLC process:
- Each module is developed on its own branch —
feature/auth-module,feature/accounts-module, etc. - A Pull Request is opened against
main - The CI/CD pipeline runs automatically on the Pull Request
- The branch is merged into
mainonly once the pipeline passes
main is a protected branch — no direct pushes are made to it.
- Java JDK 17+
- Maven 3.8+
- IntelliJ IDEA or Eclipse
git clone https://github.com/qa-eden/Parabank-Project-Selenium.git
cd Parabank-Project-Selenium
mvn clean install# Run the full suite via TestNG XML
mvn test
# Run a specific TestNG suite file
mvn test -DsuiteXmlFile=testng.xmlAfter a test run, the ExtentReports HTML report is generated at:
test-output/ExtentReport.html
| Role | Username | Password |
|---|---|---|
| Standard User | john | demo |
These are public demo credentials for the ParaBank sandbox application.
This project is the Selenium + Java counterpart to my Cypress + JavaScript automation framework built on the same application:
ParaBank Cypress E2E Framework →
Emmanuel Adeniran QA Engineer
🔄 Active build — this project is being built and documented publicly. Follow along on LinkedIn for daily progress updates.