/YouTube-Appium-Framework

How to create mobile automation framework in Java

Primary LanguageJava

How to create mobile automation framework

This repository is a product of a YouTube series: Appium Tutorial - How to Create Mobile Automation Framework.

This series takes you from creating new project to full fledged automation framework. Everything is done step by step and accessible format. Conceptually the design of this framework can be applied to any other automation category, not just mobile.

You are free to use this work and modify it as long as you credit the original creator by:

  1. Providing link back to My GitHub
  2. Providing link to the YouTube channel

Table of Content

  • Getting Started
    • Creating initial project structure with all the packages and classes.
  • UI Selectors
    • Wrapper for UiSelector to simplify integration with Appium.
  • UI Object - Part 1
    • Wrapper for UI Objects to simplify actions like tap, scroll, type, pinch and more.
  • UI Object - Part 2
    • Finishing up the wrapper by adding more functions like wait for element to appear.
  • ADB Integration - Part 1
    • Adding Server Manager and starting ADB integration
  • ADB Integration - Part 2
    • Continue adding more functions to ADB classes to better understand the stats of the mobile device
  • ADB Integration - Part 3
    • Finishing up ADB integration by adding extended support for logcat
  • Integrating Log4J
    • For better debugging capabilities, adding logging functionality
  • Testing Code thus far
    • Going to test everything we wrote so far and fix any outstanding issues
  • Driver Manager
    • Support class for managing the Android Driver
  • Application Page Objects - Part 1
    • Start to build out the application's page object matrix for Speedtest.net's mobile app. Will be utilizing the wrappers that we built in the very early stages of this framework.
  • Application Page Objects - Part 2
    • Continue to build page objects and map activities of the Speedtest mobile app.
  • Application Page Objects - Part 3
    • Finishing up the matrix and validating that we have proper return types from all of the activities.
  • Implementing Test Info class
    • Metadata class for keeping baisc information about the test such as: name, id, test suite, etc
  • Test Manager
    • It will manage all of our test preconditions and what to do when test passes/fails. Will utilize JUnit for this.
  • Create test cases
    • Will use Page Objects that we have created in order to write some basic UI tests. We will navigate through a number of screens and verify that specific elements exist. We will also do one functional test and verify all the elements.
  • Operationalizing Appium Server
    • Start Appium server programmatically thus having no need to do it manually in the terminal.
  • Packaging the framework
    • Will build the jar
  • Running framework
    • Will run framework from the jar
  • Parallel Testing
    • How to run framework in order to run tests in parallel on different devices
  • XML Reports
    • Creating XML reports in Jenkins Format

More tutorials can be found on my YouTube channel