Skip to content
 
 

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 AppiumAutomationDemo: Android Automation Framework Guide

This document serves as a comprehensive guide for using the AppiumAutomationDemo repository, tailored exclusively for Android mobile automation. It covers setup, framework architecture, and the benefits of adopting this solution for your projects.


📚 Table of Contents

  1. 👋 Introduction
  2. 🛠️ Framework Overview
  3. 🗂️ Repository Structure
  4. ⚙️ Setup Instructions
  5. ▶️ Running Tests
  6. 🧩 Component Usage
  7. 🔌 Extending the Framework
  8. 🆘 Troubleshooting & FAQs
  9. 🤝 Contributing
  10. 📄 License

👋 Introduction

AppiumAutomationDemo is a modular, scalable automation framework built for Android mobile application testing using Appium. The framework is designed for easy onboarding, rapid test development, and maintainability.

Note: This repository focuses exclusively on Android automation. Components and configurations for iOS are not yet included or supported. 🟢🤖


🛠️ Framework Overview

🔗 Core Technologies

  • Appium 🟢: Industry-standard tool for automating Android mobile apps (native, hybrid, and web).
  • Java ☕: Primary programming language for test scripting and framework components.
  • TestNG 🧪: Popular Java testing framework for organizing and running test suites.
  • Maven 📦: Dependency and build management tool.

✨ Framework Benefits

  • Android-Only Focus 🤖: Optimized for Android devices and emulators, reducing complexity.
  • Modular Design 🧩: Uses Page Object Model (POM) and utility classes for reusable, maintainable code.
  • Scalable 📈: Easily add new test cases or components without disrupting the existing structure.
  • Comprehensive Reporting 📊: Generate detailed test reports with screenshots and execution logs.
  • CI/CD Ready 🔄: Seamless integration with Jenkins, GitHub Actions, and other CI/CD tools.
  • Community Support 🌐: Built on widely adopted tools for reliability and troubleshooting.

🗂️ Repository Structure

AppiumAutomationDemo/
├── src/
│   ├── main/
│   │   └── java/
│   │       ├── pages/        # Page Object Model classes (Android screens) 📄
│   │       ├── utils/        # Utility classes (driver management, actions, logging, configuration, readers) 🛎️
│   │       └── resources/    # Config files, test data 🗃️
│   └── test/
│       └── java/
│           ├── tests/        # Test case classes 📝
│           └── resources/    # Test-specific data/config 🗃️
├── pom.xml                   # Build configuration files 📦
├── README.md                 # Project documentation 📜
└── .github/                  # GitHub workflow files for CI/CD 🤖

⚙️ Setup Instructions

📋 Prerequisites

  • Java JDK (version 21 or higher) ☕
  • Node.js & npm 🟢
  • Appium Server 🚀
  • Android Studio (with emulator/device setup) 🤖
  • Maven 📦

💾 Installation

  1. Clone the repository:
    git clone https://github.com/omarelbably/AppiumAutomationDemo.git
    cd AppiumAutomationDemo
  2. Install dependencies:
    • Using Maven:
      mvn clean install
  3. Start Appium Server:
    • Install Appium:
      npm install -g appium
    • Run Appium:
      appium

📝 Configuration

  • Update device and platform details in src/main/resources/config.properties or relevant config files.
  • Specify Android capabilities (device name, platform version, app path, etc.) as needed for your local or CI environment.

▶️ Running Tests

  • Using Maven:
    mvn test

🧩 Component Usage

📝 Test Scripts (src/test/java/tests/)

Contains all automated test cases, organized by feature or module. Test scripts interact with page objects and utilize utility classes.

📄 Page Objects (src/main/java/pages/)

Implements the Page Object Model for representing individual screens and user flows within your Android app.

🛎️ Utilities (src/main/java/utils/)

Reusable helper classes for driver management, logging, configuration handling, and more.


🔌 Extending the Framework

  • Add New Test Cases: Place new test classes under src/test/java/tests/. 📝
  • Add New Page Objects: Create new page classes in src/main/java/pages/. 📄
  • Enhance Utilities: Extend or add helper methods in src/main/java/utils/. 🛎️
  • Reporting: Configure additional reporting options in your build file or reporting utility. 📊

🆘 Troubleshooting & FAQs

  • Appium server not running: Ensure Appium is installed and started before test execution. 🚀
  • Android device not detected: Verify device/emulator connection and update capability configuration. 🤖
  • Build issues: Check Java, Node.js, and dependency versions for compatibility. ☕🟢

🤝 Contributing

Pull requests are welcome! For major changes, please open an issue to discuss ideas first.

  1. Fork the repository 🍴
  2. Create your feature branch (git checkout -b feature/fooBar) 🌱
  3. Commit your changes (git commit -am 'Add new feature') 📝
  4. Push to the branch (git push origin feature/fooBar) 🚀
  5. Open a Pull Request 🔃

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages