Skip to content

Commit 6b73073

Browse files
Update README.md
1 parent fe1ab80 commit 6b73073

1 file changed

Lines changed: 73 additions & 92 deletions

File tree

README.md

Lines changed: 73 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,91 @@
1-
# 📱 Selenium Java Automation Framework
1+
# Selenium Java Automation Framework
2+
3+
A compact web test automation framework built with Java, Selenium WebDriver, Maven, and TestNG.
4+
5+
This project demonstrates a practical starter framework for browser-based test automation with reusable setup, externalized configuration, and data-driven execution using Excel.
6+
7+
## What I Built
8+
9+
- Automated website login flow testing with Selenium WebDriver
10+
- Config-driven browser and URL setup using properties files
11+
- Externalized UI locators for easier maintenance
12+
- Data-driven test execution with TestNG and Apache POI
13+
- Reusable base test class for browser lifecycle management
14+
- Default TestNG reporting for test execution results
15+
16+
## Tech Stack
17+
18+
- Java
19+
- Selenium WebDriver
20+
- TestNG
21+
- Maven
22+
- Apache POI
23+
- WebDriverManager
24+
25+
## Project Structure
26+
27+
```text
28+
TestAutomationFramework/
29+
|-- pom.xml
30+
|-- testrunner/
31+
| `-- testng.xml
32+
|-- src/test/java/
33+
| |-- base/
34+
| | `-- BaseTest.java
35+
| |-- testcase/
36+
| | `-- MyFirstTestFW.java
37+
| `-- utilities/
38+
| |-- ReadXLSdata.java
39+
| `-- readpropertyFile.java
40+
`-- src/test/resources/
41+
|-- configfiles/
42+
| |-- config.properties
43+
| `-- locators.properties
44+
`-- testdata/
45+
`-- testdata.xlsx
46+
```
247

3-
A **modular web test automation framework** built using **Selenium, Java, Maven, and TestNG**.
4-
The framework follows **Page Object Model (POM)** design pattern, enabling **scalable, maintainable, and reusable** automation for Android and iOS apps.
5-
It supports **data-driven testing, parallel execution, CI/CD pipelines, and structured reporting**.
48+
## Framework Highlights
649

7-
---
50+
### BaseTest
851

9-
## 📂 Project Structure
52+
The base layer initializes the browser, loads configuration files, opens the target application, and handles teardown after test execution.
1053

11-
```
54+
### Data-Driven Testing
1255

13-
AppiumAutomationFramework
14-
│── pom.xml # Maven build configuration & dependencies
15-
│── src/test/java
16-
│ ├── base/BaseTest.java # Driver setup & common hooks
17-
│ ├── pages/ # Page Object Model classes for app screens
18-
│ ├── tests/ # TestNG test classes
19-
│ ├── utilities/ # Reusable helpers (data, waits, config, screenshots)
20-
│ ├── config/ConfigManager.java # Loads app & device capabilities from properties file
21-
│── src/test/resources
22-
│ ├── testdata/ # Test data files (Excel/JSON)
23-
│ ├── capabilities.properties # Appium server & device config
24-
│ ├── testng.xml # TestNG suite definitions
25-
│── reports/ # Test reports (TestNG/Allure/Extent)
26-
27-
````
28-
29-
---
30-
31-
## ⚡ Key Features
32-
33-
- **Page Object Model (POM):** Structured page classes for app screens.
34-
- **TestNG Integration:** Parallel execution, groups, priorities, and reporting.
35-
- **Appium Capabilities Management:** Configurable via `capabilities.properties`.
36-
- **Data-Driven Testing:** Support for Excel/JSON/CSV test data.
37-
- **Reusable Utilities:**
38-
- Wait strategies (explicit, fluent waits)
39-
- Screenshot capture on failure
40-
- Property/config loader
41-
- **Cross-Platform Support:** Android & iOS readiness.
42-
- **CI/CD Friendly:** Easily integrated with Jenkins/GitHub Actions.
43-
- **Reporting:** TestNG reports with support for Allure/Extent.
44-
45-
---
46-
47-
## 🛠️ Tech Stack
48-
49-
- **Language:** Java
50-
- **Mobile Automation:** Appium
51-
- **Testing Framework:** TestNG
52-
- **Build Tool:** Maven
53-
- **Data Handling:** Apache POI (Excel) / JSON
54-
- **Device Support:** Android Emulator, Real Devices, iOS Simulator
55-
- **CI/CD:** Jenkins / GitHub Actions
56-
57-
---
58-
59-
## ▶️ Getting Started
60-
61-
### Prerequisites
62-
- Java JDK 8+
63-
- Maven 3+
64-
- Node.js & Appium Server
65-
- Android SDK (for Android) / Xcode (for iOS)
66-
- Device or Emulator/Simulator
67-
68-
### Setup
69-
```bash
70-
# Clone repository
71-
git clone <repo-url>
72-
cd AppiumAutomationFramework
56+
Test data is stored in Excel and supplied to TestNG tests through a reusable data provider built with Apache POI.
57+
58+
### Externalized Configuration
59+
60+
Application URL, browser selection, and element locators are separated from test logic through `.properties` files for easier updates.
7361

74-
# Install dependencies
75-
mvn clean install
76-
````
62+
## Run The Tests
7763

78-
### Run Tests
64+
From the `TestAutomationFramework` folder:
7965

8066
```bash
81-
# Run all tests
8267
mvn test
83-
84-
# Run a specific suite
85-
mvn test -DsuiteXmlFile=testng.xml
8668
```
8769

88-
---
89-
90-
## 📊 Reporting
70+
You can also run the suite from:
9171

92-
* **Default TestNG Reports:** Generated under `/test-output`.
93-
* **Allure Reports (optional):**
72+
```text
73+
TestAutomationFramework/testrunner/testng.xml
74+
```
9475

95-
```bash
96-
mvn allure:serve
97-
```
98-
* **Extent Reports (optional):** For detailed execution logs & screenshots.
76+
## Configuration Example
9977

100-
---
101-
---
78+
```properties
79+
browser=firefox
80+
testurl=https://www.zoho.com/
81+
```
10282

103-
## 🎯 Highlights for Portfolio
83+
## Why This Project
10484

105-
* Demonstrates **mobile automation expertise** with Appium & Java.
106-
* Showcases **reusable automation architecture** with POM & utilities.
107-
* Ready for **cross-platform execution (Android/iOS)**.
108-
* Includes **data-driven testing & structured reporting**.
85+
This project showcases my understanding of:
10986

110-
```
87+
- Selenium-based web automation
88+
- Java test framework structuring
89+
- TestNG data providers and execution flow
90+
- Maintainable test configuration using external files
91+
- Building a reusable foundation for future automation scaling

0 commit comments

Comments
 (0)