What is Appium?

Reading Time: 2 minutes

Hello folks, Let’s dig into What is Appium? The definition says it is a cross-platform, open-source tool. The main purpose was to test an application on multiple devices. Hence, the best part is that we can automate native, web, and hybrid mobile applications. Therefore, it supports Android, iOS, and Windows desktop platforms.

Features

  • Firstly, it allows testing of all three mobile applications, namely: native, hybrid, and mobile web
  • It allows users to run automated tests on tangible devices, simulators as well as emulators
  • After that, it is free and open-source
  • therefore, it is a Cross-browser platform
  • Henceforth, it supports various automation testing tools. This makes migration of any project a breeze
  • Finally, the community is very vast. This helps in debugging and troubleshooting any concerns and bugs.

How does it work?

The core components are:

  • Client-server architecture
  • Appium Desktop
  • Session
  • Appium Clients
  • Desired capabilities
  • Appium Server

It is an HTTP server that is based on javascript. It follows a client-server architecture. Processes the request from the client and forwards it to the simulator/emulator/real device. The test scripts are automated and the result is communicated back to the client via the server.

Appium Server

In conclusion, Appium is a NodeJSbased web server that exposes REST APIs and bridges commands to native frameworks from vendors (Google, Apple)

Appium Client

For instance, appium listens to the client in different languages, which exposes actions and behavior for automation.

Session

Hence, each action in Appium happens under the context of a session. Therefore, we start the session with an object called desired capabilities. This helps to connect with the exact type of connection that is expected.

Desired Capabilities

Desired Capabilities is a class used to declare a set of basic requirements such as combinations of browsers, operating systems, browser versions, etc. to perform automated cross-browser testing of a web application

Prerequisite and installation

Following are the prerequisite installation needed to run this successfully

  • Install ANDROID SDK

https://developer.android.com/studio?gclid=Cj0KCQjw-daUBhCIARIsALbkjSZJN8TLV1ISsmQfKeBcqcFgKXQqUw0lPECTsWe2yiWff5msSKZqpMMaAuzwEALw_wcB&gclsrc=aw.ds

  • JDK

https://docs.oracle.com/en/java/javase/13/install/installation-jdk-microsoft-windows-platforms.html#:~:text=Running%20the%20JDK%20Installer,-You%20must%20have&text=To%20run%20the%20JDK%20installer,to%20recover%20the%20disk%20space.

  • Eclipse

https://www.eclipse.org/downloads/packages/installer

  • Install selenium server JAR
  • APK app info

https://play.google.com/store/apps/details?id=com.wt.apkinfo&hl=en_IN&gl=US

  • Appium desktop

Limitations

  1. Does not support testing of Android Version lower than 4.2
  2. Limited support for hybrid app testing. e.g.: not possible to test the switching action of applications from the web app to native and vice-versa.
  3. No support to run Inspector on Microsoft Windows.

References

https://www.browserstack.com/guide/download-and-install-appium

Written by 

I work with Knoldus and have experience of 8+ years in quality assurance I have good experience on SeleniumWebdriver(C#), Selenium IDE, Nightwatch,Appium, Jira, TFS, ZAP, Fiddler, Jmeter, Jenkins, Selenium Webdriver. I am also ITIL certified.

Leave a Reply