This repository contains a hybrid automation framework built with Appium for testing Android and iOS applications. The framework integrates TestNG for test execution and Extent Reports for rich, interactive test reporting. It is designed to support both platforms efficiently while maintaining a modular and scalable architecture.
- Supports both Android and iOS platforms.
- The framework is flexible enough to test different types of applications across mobile platforms.
- Runs multiple tests concurrently to reduce execution time.
- Provides powerful test management, including annotations, grouping, and parallel execution.
- Generates visually appealing and detailed test reports with screenshots, logs, and results.
- Ensures reusability and maintainability by structuring the code in a clear and modular format.
- Supports parameterized tests with different data sets to enhance test coverage.
- Java 17 or higher
- Maven 3.6v or higher
- Appium 9.2.0v
- TestNG 7.5v or higher
- Selenium-support 4.22.0v or higher
- Extent reports 5.0v or higher
- Node.js: Required for Appium-Server
- Appium-Inspector
- Android Studio (for Android)
- Xcode (for iOS)
In the pom.xml, we have configured 3 Maven profiles: regression, smoke, and failed-tests. These profiles allow you to execute specific sets of tests based on the scenario. You can run any of these profiles using Maven commands as described below.
To build the project and download all dependencies, run the following Maven command:
mvn clean install
mvn clean test -PRegression
mvn clean test -PSmoke
mvn clean test -PfailedTests
mvn clean test -DsuiteXmlFile=master.xml
- open A/c in BrowserStack (100min for free trial).
- Install BrowserStack plug-in in the Eclipse/Intellij.
- Important note,
- Appium client must be up to date (latest version).
- TestNG 7.0v or higher.
- Convert to the BrowserStack compatible.
- Right click on project
- choose BrowserStack
- select "Integrate with App Automate SDK"
- enter project name & build name.
- enter user name (find in BrowserStack dashboard)
- enter access key (find in BrowserStack dashboard)
- enter app (Initially, you can upload your app into the BrowserStack and will generate it. find in Browser stack dashboard).
- click on "Integrate".
- wait for Build success and refresh the project.
- "browserstack.yml" file will be generated.
- In YML file,
- Verify user name, access key, and app path.
- Go to Platforms section, you will get few devices by default. Add same way
- Set "ParallelsPerPlatform"
mvn clean test -PRegression
Note: Set as false after converting the project into BrowserStack.
BROWSERSTACK_AUTOMATION=false mvn clean test -PRegression
Select "This project is parameterized" and set below parameters.
- Set 2 choice parameters and those are,
- Profile
- Browser Stack
- For 1st parameter, set below details:
- Name: Profile
- Choices: Regression, Smoke, Failed-tests
- Description:
- For 2nd parameter set below details:
- Name: Browser Stack
- Choices: True, False
- Description:
- choose "add build step" as a "Invoke top-level maven targets"
- Set Goals as below command:
BROWSERSTACK_AUTOMATION={$Browser_Stack) clean test -P{$Profile}
Note: Add project path in the custom workspace field and Also remainings as per requirements.