Appium – A Wonderful Testing Tool for Your Mobile Applications

While looking for any automation tool to test your mobile applications, the first impressions should be – It should be less complicated, user-friendly and under your project budget. But when your application runs on more than one platform such as Android and iOS, then you need a tool which can be used on both the platforms. Though you have the choice to use separate tools for each platform, but that may incur project cost in term of maintenance and resource utilization. So, isn’t a great idea to choose a platform independent tool to test your application on multiple platforms.

It’s better to have one powerful tool for both Android and iPhone applications instead of having two different tools for each one of them. One such popular open source tool which bridges the gap between these two platforms is called Appium. Which not only allows us to test our applications on many platforms but also has many helpful features to fulfill most of our testing needs.

What is Appium?

Appium is a free open source UI testing framework, which is widely used for both Android and iPhone mobile applications. It supports many languages provided that language supports HTTP request and selenium client libraries, such as Java, JavaScript with Node.js, PHP, Ruby, Python, C#, Perl etc.

Appium has no dependency on operating systems used for mobile devices, thus it allows us to use the mobile devices without worrying about the type of OS. It is because of Appium framework, which translates the selenium web driver commands into UIAutomator commands in case of Android and UIAutomation commands in case of iOS, thus it depends also on the type of devices and not on the type of operating systems.

It supports native, hybrid and web application testing and automation testing on real devices as well as simulator and emulator. It also supports platform based application testing which we can use same the API in multiple platforms like Android, iOS, and Windows.

Let’s discuss some of the popular features of Appium which makes it stands out in the crowd.

The Unique Selling Point of Appium

  • First of all, Appium is an open source tool having an actively contributing vast community. 
  • Test the same application which is going to the marketplace. Without worrying on maintenance and release of the correct versions of your application, test the same one and submit after that.
  • It is a simple and light application which consumes very little memory of your test process. The simple architecture operates as a proxy between the test machine and the automation tool-kit.
  • Testing Native apps do not require SDK, it armors with standard automation APIs which can be used on all platforms, thus it proves its philosophy of reuse and adapt the existing standards.
  • The test scripts can be written in any of your favorite language compatible with selenium WebDriver, such as Java, C#, Ruby, JavaScript with Node.js, PHP, Python or Perl, and can use any testing framework of your choice.

Platforms it Supports

  • iOS
  • Android
  • Windows
  • Firefox-OS

Machine to be Ready With

For iOS

  • Mac OS X 10.7+X Code 4.5+ w/ Command Line Tools

For Android

  • Mac OS X 10.7+ or Windows 7+ or Linux Android SDK ≥ 16 (SDK < 16 in Selendroid mode)

How Appium Actually Works?

Appium uses the client-server architecture. Once the connection is established, it listens to the commands, executes those commands on the connected mobile device and then returns the execution result of the commands via HTTP response. As it has client-server architecture, we have the liberty to write our test scripts in any language provided it has HTTP client API.

For iOS platforms, Appium uses UIAutomation library, while for the newer version of Android platforms it uses the UiAutomator framework. It also supports the older versions of Android by using Selendroid. And for Windows, it uses the WinAppDriver of Microsoft.

The client libraries of programming languages like in C#, JAVA, Ruby, PHP or Python supports Appium extensions to the Selenium WebDriver Protocol, so instead of WebDriver client you, have the privilege to use the client libraries of these programming languages.

The Appium Inspector – What’s its Role?

Appium has a very useful handy tool called Appium Inspector for record and playback. It understands the element hierarchy. Like any other record and playback automation tools, it also records and plays the behavior of the native application and generates the test scripts.

So, whenever you want to record your manual actions into the scripts or want to find out the value, name, description or other attributes of an element to be used in the XPath commands, the Appium Inspector is there to solve your all such worries.

A Few Limitations of Appium

Nothing is perfect in this world, though Appium has many good features to help us in our automation works, but there are certain limitations also.

Let’s discuss some of the limitations of Appium.

  • Appium supports Android versions 4.2 and above, lower than that does not support. That means for the lower versions below Android 4.2 it uses another open-source library called Selendroid instead of UIAutomator.
  • The useful Appium inspector tool cannot run on Microsoft windows but works well on other platforms.
  • On iOS platform, we cannot run multiple iOS devices at the same time using single Mac machine. So, to test on multiple iPhone devices, we need to connect them with multiple Mac machines separately. This is certainly a costly affair to set up many Mac machines to test multiple devices at the same time.

This limitation for iOS platform can be resolved by executing the scripts at Sauce Lab’s mobile cloud.

Let’s see the advantages of using Appium at Sauce Labs mobile cloud

  • No need to setup Appium at your local machines, thus it saves the precious time
  • No need to install and configure emulators and simulators
  • You can test your scripts on multiple iOS simulators simultaneously

Finally, Appium is a wonderful mobile automation tool to test your mobile applications on multiple platforms using the standard automation APIs. And the liberty to use many programming languages as well as it’s association with selenium web-driver enhance its popularity.

Samual Sam
Samual Sam

Learning faster. Every day.