Skip to content

Thangarajtk/appium-mobile-automation-framework-bdd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

appium-mobile-automation-framework-bdd

Mobile automation framework using appium - BDD

πŸš€ 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 (v2.x) using npm (CLI) command npm install -g appium@next
   Appium server version 2.0.0-beta.55

This will install the Appium server only, but no drivers. Install the latest versions of the XCUITest and UiAutomator2 drivers, after installing Appium you would run the following commands:

appium driver install uiautomator2
appium driver install xcuitest
Command to check the installed appium version: `appium --version`
  1. Add below Android SDK path in the environment variable
    - ANDROID_HOME = <path to Sdk folder>
    - %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 <sdk emulator path>
Command to stard AVD: `emulator -avd <avd_name>`
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 - <path to sdk platform-tools>
  2. Open the cmd terminal from the directory where APK file is placed and enter command adb install <apk filename>

πŸ“Œ 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 - <path to sdk folder>\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 = <path to npm folder>\node_modules\appium\build\lib where main.js file is present

πŸ“Œ Running tests through Test Runner (JUnit)

πŸ‘‰ Run RunCucumberTest in the path appium-mobile-automation-framework-bdd\src\test\java\org\example\runner\RunCucumberTest.java

πŸ“Œ Running tests in parallel on multiple devices through Maven CLI

πŸ‘‰ Run test using following command

mvn clean test -DplatformName=<platform name> -DdeviceName=<device name> -Dudid=<udid> -DsystemPort=<system port number> -DchromedriverPort=<chromedriver port>

Example:
mvn clean test -DplatformName=android -DdeviceName=Pixel_4 -Dudid=emulator-5554 -DsystemPort=7070 -DchromedriverPort=7071

πŸ“Œ Config Json for updating DesiredCapabilities

Capture

πŸ“Œ Cucumber-html-reports

Cucumber-html-report

Releases

No releases published

Packages

No packages published