Skip to content

Highest Standard Scalable and Robust Mobile Test Automation Framework

Notifications You must be signed in to change notification settings

Premsenareddy/mobile-test-automation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⭐ 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/

About

Highest Standard Scalable and Robust Mobile Test Automation Framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages