The MobileAutomationFrameworkTemplate is a modern and comprehensive Maven-based Java project for mobile test automation. It combines powerful libraries and frameworks to provide a robust and efficient automation solution.
- 💻 Selenium - Integration with Selenium WebDriver library for web-based automation in mobile testing.
- 📱 Appium - Seamless integration with the Appium library for cross-platform mobile automation (Android and iOS).
- 🧪 TestNG - Utilizes the TestNG testing framework for structured test organization, reporting, and parallel execution capabilities.
- 📈 Extent Report - Generates detailed and visually appealing HTML reports using the Extent Report library, providing insights into test execution results.
- 📧 javax.mail - Incorporates the javax.mail library for sending automated email notifications with test reports or relevant information.
- 🔧 Maven - Built on the Maven project structure, making it easy to manage dependencies and build automation projects.
├───apps <!-- Directory for storing mobile app files -->
├───src
│ ├───main <!-- Main source code directory -->
│ │ ├───java <!-- Java source code directory -->
│ │ │ ├───pages <!-- Page object classes representing different app screens -->
│ │ │ │ ├───calculator
│ │ │ │ └───logout
│ │ │ └───utils <!-- Utility classes for common functionalities -->
│ │ │ ├───commonComponents
│ │ │ │ ├───buttonActions
│ │ │ │ ├───checkBoxs
│ │ │ │ ├───dropDowns
│ │ │ │ ├───editTextFields
│ │ │ │ ├───notifications
│ │ │ │ ├───scrollMethods
│ │ │ │ └───validationMessages
│ │ │ └───seleniumUtils
│ │ └───resources <!-- Resource files -->
│ │ └───screenShots
│ └───test <!-- Test source code directory -->
│ ├───java <!-- Java test classes -->
│ │ ├───testBase
│ │ ├───tests
│ │ └───utils
│ │ ├───email
│ │ ├───fileReader
│ │ ├───fileWriter
│ │ ├───listener
│ │ ├───reporter
│ │ └───server
│ └───resources <!-- Test resource files -->
│ ├───reports
│ └───testDataFiles
To get started with the MobileAutomationFrameworkTemplate:
-
Clone the Repository: Start by cloning the MobileAutomationFrameworkTemplate repository to your local machine using the following command:
git clone https://github.com/0kakarot0/MobileAutomationFramewokTemplate.git
-
Open the Project: Open your preferred Java IDE (e.g., IntelliJ IDEA, Eclipse) and import the project by selecting the root directory where you cloned the repository.
-
Set Up Dependencies: The project is built using Maven, so it will automatically download the necessary dependencies. However, ensure that you have Maven installed on your machine. If not, you can download it from the official Maven website and follow the installation instructions.
-
Update the necessary configuration files:, such as
configuration.properties
andemailConfiguration.properties
, with relevant settings. -
Customize the framework: as per your project requirements by adding test cases, modifying page objects, and extending utility classes.
-
Run the tests using TestNG:, and the Extent Report will be generated automatically with detailed test execution results.
-
Customize the Framework: Customize the framework as per your project requirements. You can add your own test cases, modify the existing page objects, extend utility classes, or add additional utility classes specific to your needs.
The project structure provides a logical organization for your automation project:
pages
: Contains page object classes representing different app screens.utils
: Contains utility classes for common functionalities and seleniumUtils for Selenium-specific utilities.tests
: Contains test classes with TestNG annotations for executing test cases.resources
: Contains configuration files (configuration.properties
,emailConfiguration.properties
) and other resource files.
The MobileAutomationFrameworkTemplate offers a modern and feature-rich foundation for mobile test automation. Its integration with Selenium, Appium, TestNG, Extent Report, and javax.mail libraries, combined with its structured approach and utilities, makes it an ideal choice for building scalable and efficient mobile automation projects.
For more details, refer to the project repository.
This project is licensed under the terms of the MIT license. See the LICENSE file for details.
Ahtisham Ilyas
- GitHub: @0kakarot0
- LinkedIn: Ahtisham Ilyas