Java mobile automation framework for Android and iOS using Appium, Selenium, TestNG, and Spring test context.
This project is a Maven-based test framework for mobile UI automation. It uses:
- Appium to create Android and iOS driver sessions
- Selenium WebDriver APIs for driver and element interaction
- TestNG for suite and test execution
- Spring test context for configuration and bean wiring
- Page Object Model for reusable screen interactions
- Java 22
- Maven 3.9+
- Node.js 18+ recommended
- Appium 2
- Installed Appium drivers:
uiautomator2for Androidxcuitestfor iOS
- Android SDK and emulator/device for Android runs
- Xcode, Simulator, or real device tooling for iOS runs
- read SETUP.md
src/main/java/
configs/ Platform-specific capabilities
pages/ Page objects and shared page base
utils/ Driver lifecycle, Spring-backed config, Appium service
src/test/java/tests/
BaseTest.java
CreateWalletTest.java
src/test/resources/
application.properties
application-android.properties
application-ios.properties
testdata.properties
testng-android.xml
testng-ios.xml
apps/
- Maven runs TestNG through
maven-surefire-plugin. - Suite file is selected by the Maven property
platform. testng-android.xmlortestng-ios.xmlsetsspring.profiles.active.- Spring loads the matching properties file.
BaseTestcallsAUTto create capabilities and start the driver.- Tests use page objects to interact with the app.
Default suite selection in pom.xml:
mvn testruns Androidmvn test -Dplatform=iosruns iOS
See SETUP.md for full installation steps.
Run Android suite:
mvn testRun iOS suite:
mvn test -Dplatform=iosRun a clean build with verbose Maven logs:
mvn clean test -XThis is often caused by dependency mismatches or invalid device/app configuration, not just a bad server URL.
Check:
- Appium server is installed and runnable
- Required Appium driver is installed
- Device/emulator is available
- App path is correct if it is provided
platform.namematches the selected suite- Selenium/Appium/TestNG/Spring dependencies versions are compatible
Current project versions in pom.xml:
- Spring Boot Dependencies
3.2.3 - TestNG
7.8.0 - Selenium
4.15.0 - Appium Java Client
9.0.0
If you change Appium or Selenium versions, verify compatibility against the Appium Java Client, testNG, Spring dependencies compatibility matrix before upgrading.