This project is a hybrid automation framework built using Java supporting both UI and API automation.
- Java 17
- Selenium WebDriver
- RestAssured
- TestNG
- Maven
- JSON Schema Validation
The framework supports:
- UI Automation using Selenium WebDriver with Page Object Model
- API Automation using RestAssured
- Test execution using TestNG
- Build management using Maven
Note: UI tests are executed using Chrome Mobile Emulator Mode to simulate mobile browser behavior.
JavaAutomation
├── src/test/java
│ ├── com.ipstack.tests
│ │ ├── APITests.java
│ │ └── BaseAPITest.java
│ ├── com.twitch.pages
│ │ ├── BasePage.java
│ │ ├── ChannelPage.java
│ │ └── HomePage.java
│ ├── com.twitch.tests
│ │ ├── BaseTest.java
│ │ └── VerifyChannel.java
│ ├── config
│ │ └── ConfigManager.java
│ ├── driver
│ │ ├── BrowserFactory.java
│ │ ├── DriverManager.java
│ │ └── WaitUtils.java
│ ├── testngListener
│ │ └── TestListener.java
│ └── utils
│ ├── Constants.java
│ ├── FileUtils.java
│ └── RestAssuredUtil.java
└── src/test/resources
├── schemas/schema.json
└── config.properties
Class: VerifyChannel.java
- Verify if user is able to search channel on Twitch
Execution Environment:
- Executed on Google Chrome Mobile Emulator for responsive/mobile validation
Class: APITests.java
Implemented API validations for IPStack APIs:
- Verify if Standard IP lookup with valid IP
- Verify if Standard IP lookup with invalid IP
- Verify if Standard IP lookup fails with invalid accessKey
- Verify if Standard IP lookup fails without mandatory field
Note: API response validation is performed using JSONPath to verify response fields and expected values.
mvn clean test -DsuiteXmlFile=testng.xmlmvn clean testmvn test -Dtest=VerifyChannelmvn test -Dtest=APITestsmvn test -Dtest=VerifyChannel,APITests- UI Automation using Selenium WebDriver
- API Automation using RestAssured
- Chrome Mobile Emulator execution for UI tests
- Page Object Model design pattern
- Reusable Driver Management
- Wait Utilities
- Configuration Management using ConfigManager
- JSON Schema Validation for API responses
- TestNG Listener implementation
- Maven based execution
- Jenkins CI/CD integration
- Docker support
- Reporting integration (Extent Reports / Allure)
Author: Narendra Sharma