β Mobile Test Automation Framework Enterprise-grade Mobile Automation (Android/iOS) using Java, Appium, TestNG, Maven & BDD
A modular, scalable Mobile Test Automation Framework designed for modern enterprise apps. Supports Android & iOS, built with Appium, Java 17, Maven, TestNG, Cucumber BDD, Extent reporting, and parallel execution.
This repository demonstrates:
Clean automation architecture (POM + Driver Factory)
BDD + TestNG hybrid automation
Multi-environment test execution
API utility for backend validations
Cloud execution (PCloudy-ready)
Highly reusable screen objects
CI/CD-friendly structure
π Project Structure mobile-test-automation β βββ pom.xml # Maven project config βββ testng.xml # TestNG execution suite βββ .gitignore β βββ src β βββ main β β βββ java/com/appium β β β βββ base/ # BaseClass, AppiumServer handling β β β βββ driver/ # DriverManager, Factory, PCloudy support β β β βββ screens/ # Page Objects (Android/iOS) β β β βββ utils/ # CommonUtils, WaitUtil, Json, PropertyUtil β β β βββ exception/ # Custom exceptions β β βββ resources # Log4j, configs β β β βββ test β βββ java/com/appium β β βββ features/ # Cucumber Feature Files (BDD Scenarios) β β βββ stepDefinitions/ # Step definitions β β βββ runner/ # TestRunner (Cucumber + TestNG) β β βββ hooks/ # Test hooks β β β βββ resources β βββ testData/ # JSON test data β βββ properties/ # dev/sit configs β βββ extent.properties # Reporting config β βββ scripts/maven-test.sh # CLI execution helper βββ .buildkite/pipeline.yaml # CI pipeline (optional) βββ ReadMe.md
π High-Level Architecture +-------------------------------------+ | Test Runner | | (TestNG + Cucumber BDD) | +-----------------+--------------------+ | +-----------------+--------------------+ | Step Definitions | | (BDD layer mapping feature β logic) | +-----------------+--------------------+ | +-----------------+--------------------+ | Page Object Model (Screens) | | (UI interactions, gestures, waits) | +-----------------+--------------------+ | +-----------------+--------------------+ | Driver Factory / Appium Setup | | Local / Cloud / PCloudy Execution | +-----------------+--------------------+ | +-----------------+--------------------+ | Application Under Test (Android/iOS) | +---------------------------------------+
π Running Tests 1οΈβ£ Install dependencies mvn clean install -DskipTests
2οΈβ£ Execute full test suite mvn test
3οΈβ£ Run specific TestNG suite mvn test -DsuiteXmlFile=testng.xml
4οΈβ£ Run Cucumber feature mvn test -Dcucumber.filter.tags="@smoke"
5οΈβ£ Parallel execution
Enabled via TestNG XML + thread configs:
mvn test -Dthread.count=5
π± Mobile Execution (Appium)
Ensure Appium server is running:
appium
Update device capabilities in:
src/test/resources/properties/config_dev.properties src/test/resources/properties/config_sit.properties
π API Testing Support
A built-in API utility (RestUtil) supports:
GET/POST/PUT/PATCH requests
JSON payload builders
Header management
Backend validation during end-to-end flows
Useful for hybrid UI + API test journeys.
π Reporting β Extent Reports
Auto-generated HTML reports in:
/Report/
β Screenshots on failure
Captured automatically in:
/log/ or /screenshots/
π€ CI/CD Integration Buildkite pipeline ready
.buildkite/pipeline.yaml
Add this step:
steps:
- label: "Run Mobile Regression" command: mvn test agents: queue: default
Also compatible with:
GitHub Actions
Jenkins
Azure DevOps
GitLab CI
π Tech Stack Summary Category Tools Language Java 17 Test Runner TestNG BDD Cucumber Mobile Automation Appium API Testing RestUtil Build Tool Maven Reporting ExtentReports Cloud Execution PCloudy Architecture POM + Driver Factory CI/CD Buildkite / GitHub Actions ready π― Purpose of This Framework
This repository demonstrates:
Senior-level mobile automation engineering
End-to-end feature coverage of real banking flows
BDD + POM patterns for maintainable automation
Cloud-device execution readiness
Integration of UI + API validations
Industry-standard architecture for enterprise QA teams
Ideal for interviews, portfolio demonstration, and real-world mobile automation.
π¬ Contact
Premsena Reddy Anumandla Senior QA Automation Engineer
π GitHub: @Premsenareddy π LinkedIn: https://www.linkedin.com/in/premsena-anumandla-a802b4179/