Appium Mobile Automation Framework

Overview

Appium Mobile Automation Framework

Framework for Mobile test automation (Native app and Browser) on Android and IOS devices ๐Ÿ“ฑ

๐Ÿš€ Quick Start - Appium set up on Windows (Android):

  1. Install Java JDK8 and IntelliJ IDEA
  2. Install NodeJS
  3. Install Android studio
  4. Install Appium Server using npm (CLI) command npm install -g appium. Appium server version 1.22.1
Command to check the installed appium version: `appium --version`
  1. Add below Android SDK path in the environment variable
    - ANDROID_HOME = 
   
    
    - %ANDROID_HOME%\tools
    - %ANDROID_HOME%\tools\bin
    - %ANDROID_HOME%\platform-tools

   
  1. Install Appium desktop
  2. Install Appium Inspector

๐Ÿš€ Quick Start - Appium set up on MAC (Android):

  1. Install Homebrew
  2. Install NodeJS
  3. Install Java JDK8 and IntelliJ IDEA
  4. Install Appium server using npm (CLI) or Appium desktop client
  5. Install Android studio
  6. Install Appium Inspector
  7. Set JAVA_HOME and ANDROID_HOME environment variables

๐Ÿ“Œ Appium Doctor to verify the installations

  1. Install appium-doctor using command npm install -g appium-doctor
  2. To view the list of available options appium-doctor --help
To check Android set up `appium-doctor --android`
To check ios set up `appium-doctor --ios`

๐Ÿ“Œ Creating Android Virtual Device (Emulator) from Android Studio:

  1. Open Android Studio.
  2. Click on Tools -> AVD Manager -> Create Virtual Device -> Select the device and OS version -> Finish.
  3. Once Virtual device is created, click on Launch this AVD in the emulator.
  4. Command to view the list of devices attached adb devices

๐Ÿ“Œ Android Real Device Set up:

  1. Connect Android real device to the machine(Desktop/Laptop)
  2. Turn on the developer options in android mobile
  3. Enable USB debugging
  4. Run command adb devices in cmd prompt to check whether the device is recognised

๐Ÿ“Œ Mirror android/ios device to your desktop

  1. Download Vysor

๐Ÿ“Œ Start Android Emulator from Command line

  1. Open command prompt, go to
Command to stard AVD: `emulator -avd 
   
    `
Command to stop/kill AVD: `adb -e emu kill`

   

๐Ÿ“Œ Pushing the App (.apk file) to Android Emulator:

  1. Copy the .apk file and paste it in the path -
  2. Open the cmd terminal from the directory when APK file is placed and enter command adb install

๐Ÿ“Œ Android - Finding appPackage and appActivity:

If the app is already installed on your device then we can make use of appPackage and appActivity to launch the app

Option 1:

  1. Open the app on the device, for which appPackage and appActivity is required.
  2. Open powershell and enter command adb shell dumpsys window | grep -E 'mCurrentFocus|mFocusedApp' NOTE: This command may not work for newer Android OS (10 or 11). In that case, use command: adb shell "dumpsys activity activities | grep mResumedActivity"

Option 2: Install APK info app to retrieve appPackage and appActivity for the app installed in your device

๐Ÿ“Œ Inspecting Elements

uiautomatorviewer

  1. Go to the path - \tools\bin\
  2. click on uiautomatorviewer
  3. On the UI Automator Viewer, click on Device Screenshot (uiautomator dump). Ui automator will capture the screenshot of current open screen in the device.

UiAutomatorViewer

Appium Inspector

  1. Start the Appium Server and connect with Real device/Emulator.
  2. Open Appium Inspector app and provide the appium server details and Desired Capabilities.

Appium Inspector

  1. Click on Start session which will start the appium inspector with layout shown below.

Appium

๐Ÿ“Œ Inspecting Element for mobile web browser

Type url `chrome://inspect/#devices` in the desktop chrome browser and start inspecting element

Capture

๐Ÿ“Œ Launching Android Emulator Automatically

Add below lines in the Desired capabilities

capability.setCapability(AndroidMobileCapabilityType.AVD, "Pixel_3a");
capability.setCapability(AndroidMobileCapabilityType.AVD_LAUNCH_TIMEOUT, "180000");

๐Ÿ“Œ Auto Discovery of compatible ChromeDriver

Start appium server using command appium --allow-insecure chromedriver_autodownload

๐Ÿ“Œ Auto download of compatible ChromeDriver programmatically

Add below line in the AppiumServiceBuilder

AppiumServiceBuilder builder = new AppiumServiceBuilder();
builder.withArgument(GeneralServerFlag.ALLOW_INSECURE, "chromedriver_autodownload");

๐Ÿ“Œ Start Appium server programmatically

Use AppiumServiceBuilder and AppiumDriverLocalService to start the server programmatically Set environment variable APPIUM_HOME = \node_modules\appium\build\lib where main.js file is present

๐Ÿ“Œ Key Features

๐Ÿ‘‰ Supports Android and iOS Real Devices and Emulators.

๐Ÿ‘‰ Ability to start and stop the appium server on run-time. Configurable through config.properties

๐Ÿ‘‰ Supports capturing appium server logs on run-time.

๐Ÿ‘‰ Page object model design.

๐Ÿ‘‰ Supports parallel and sequential execution of tests.

๐Ÿ‘‰ Ability to capture screen(video) recording of tests on Android and iOS. Configurable through config.properties

๐Ÿ‘‰ Supports capturing screenshots for passed/failed/skipped steps which is configurable through config.properties

๐Ÿ‘‰ Ability to retry failed tests which is configurable through config.properties

๐Ÿ‘‰ Customised exception handling to provide the exceptions in a meaningful way.

๐Ÿ‘‰ Custom framework annotation to provide author name and category for each test.

๐Ÿ‘‰ Supports utilities to read test data from excel workbook and provides data to each test based on the test name.

๐Ÿ“Œ Running tests through Maven

๐Ÿ‘‰ Run test using command mvn test -Dsurefire.suiteXmlFiles=

๐Ÿ“Œ Running tests through testng xml

๐Ÿ‘‰ Create or Select the required testng xml -> Right click and select Run

๐Ÿ“Œ Custom Configurations in config.properties

Capture

๐Ÿ“Œ Report (Extent reports)

Web capture_24-1-2022_224531_

Web capture_24-1-2022_224634_

You might also like...

๐ŸŽ‰Back end module of Sonic UI automation testing platform. Sonic-UI่‡ชๅŠจๅŒ–ๆต‹่ฏ•ๅนณๅฐๅŽ็ซฏๆจกๅ—ใ€‚

๐ŸŽ‰Back end module of Sonic UI automation testing platform. Sonic-UI่‡ชๅŠจๅŒ–ๆต‹่ฏ•ๅนณๅฐๅŽ็ซฏๆจกๅ—ใ€‚

๐ŸŽ‰ Sonic UI automation testing platform. English | ็ฎ€ไฝ“ไธญๆ–‡ Background What is sonic ? Nowadays, automation testing, remote control and other technologies

Jan 1, 2023

Test Automation Made Simple

Test Automation Made Simple

Karate Test Automation Made Simple. Karate is the only open-source tool to combine API test-automation, mocks, performance-testing and even UI automat

Dec 31, 2022

This is an experiment project I used to learn more about UI Automation with Playwright

Automated Wordle using Playwright (Java) This is an experiment project I used to learn more about UI Automation with Playwright. What's in this reposi

Jan 30, 2022

๐ŸŽ‰Ultimate test automation for testing any application on any platform

 ๐ŸŽ‰Ultimate test automation for testing any application on any platform

boyka-java Ultimate test automation for testing any application on any platform boyka-java Setup Write conventional commits 1.

Dec 30, 2022

Web automation example code of tests running parallely

Don't forget to give a โญ to make the project popular. โ“ What is this Repository about? This repo contains example code to run a single test parallely

Apr 3, 2022

An e-commerce automation project of Selenium TestNG using Page Object Model

An e-commerce automation project of Selenium TestNG using Page Object Model

Selenium-POM-TestNG Prerequisites Install jdk 8 or any LTS version Configure JAVA_HOME and GRADLE_HOME Download Allure 2.17.2 and configure environmen

Aug 4, 2022

Ready-to-use UI Test Automation Architecture using Java and Selenium WebDriver.

Selenium Test Automation Boilerplate Ready-to-use UI Test Automation Architecture using Java and Selenium WebDriver. Languages and Frameworks The proj

Dec 26, 2022

Automation Tests (REST-API with REST-ASSURED examples)

Automation Tests (REST-API with REST-ASSURED examples) Technology Stack IDEA Java Junit5 Gradle Selenide Allure Jenkins Rest-Assured See details: src/

Apr 11, 2022
Owner
Thangaraj
Automation Consultant (SDET)
Thangaraj
A powerful open source test automation platform for Web Apps, Mobile Apps, and APIs

A powerful open source test automation platform for Web Apps, Mobile Apps, and APIs. Build stable and reliable end-to-end tests @ DevOps speed.

Testsigma Technologies Inc 466 Dec 31, 2022
๐ŸŽ A demo/tutorial for java-appium-sdk

test-ai-appium-demo Welcome to the test.ai Appium Java demo! This repository contains a pre-configured project and basic tutorial, so you can hit the

test.ai 5 Jun 14, 2022
๐Ÿค– Unleash the full power of test.ai into your Java Appium tests

The test.ai Appium SDK is a simple library that makes it easy to write robust cross-platform mobile application tests backed by computer vision and ar

test.ai 9 Jun 4, 2022
A sample repo to help you test in Java-TestNG-Appium for LambdaTest. Run Selenium tests with TestNG on LambdaTest platform.

Sample automation test in Java-TestNG-Appium for LambdaTest Environment Setup Global Dependencies Install Maven Or Install Maven with Homebrew (Easier

null 13 Jul 13, 2022
A browser automation framework and ecosystem.

Selenium Selenium is an umbrella project encapsulating a variety of tools and libraries enabling web browser automation. Selenium specifically provide

Selenium 25.5k Jan 7, 2023
BDD framework for automation using Selenium Cucumber and TestNg

Selenium Framework with Cucumber BDD framework for automation using Selenium Cucumber and TestNg The framework has following features Modular Design M

null 3 Jan 20, 2022
Test Automation Made Simple

Karate Test Automation Made Simple. Karate is the only open-source tool to combine API test-automation, mocks, performance-testing and even UI automat

Intuit 6.5k Dec 28, 2022
Serenity BDD is a test automation library designed to make writing automated acceptance tests easier, and more fun.

That feeling you get when you know you can trust your tests Serenity BDD is a library designed to make writing automated acceptance tests easier, and

Serenity BDD 654 Dec 28, 2022
Enabling Test Automation in Java

SeLion Enabling Test Automation in Java SeLion builds on top of TestNG and Selenium to provide a set of capabilities that get you up and running with

PayPal 268 Dec 11, 2022
Roman Beskrovnyi 248 Dec 21, 2022